{"version":3,"file":"js/993-28a32471f9f07cdec61f.js","mappings":"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CjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,EAAG,KAAO,EAAG,EAAG,QACzB,KAAQ,CAAC,EAAG,KAAO,EAAG,EAAG,QACzB,KAAQ,CAAC,EAAG,KAAO,EAAG,EAAG,QACzB,KAAQ,CAAC,EAAG,KAAO,EAAG,EAAG,QACzB,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,SAC3B,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAA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AAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,EAAE,OAAS,OAAS,EAAG,EAAG,MAChC,GAAM,EAAE,OAAS,OAAS,EAAG,EAAG,MAChC,GAAM,EAAE,OAAS,OAAS,EAAG,EAAG,MAChC,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,EAAG,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,EAAG,EAAG,EAAG,MACpB,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,EAAG,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,C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K,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,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S,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,EAAG,KAAO,EAAG,EAAG,QACzB,KAAQ,CAAC,EAAG,KAAO,EAAG,EAAG,QACzB,KAAQ,CAAC,EAAG,KAAO,EAAG,EAAG,QACzB,KAAQ,CAAC,EAAG,KAAO,EAAG,EAAG,QACzB,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,QAC3B,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,EAAG,OAAS,EAAG,EAAG,SAC3B,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,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AO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,QAC1B,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,OAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,QAC1B,IAAO,CAAC,OAAS,OAAS,OAAS,EAAG,QACtC,IAAO,CAAC,OAAS,OAAS,OAAS,EAAG,QACtC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,QAC1B,IAAO,CAAC,OAAS,OAAS,OAAS,EAAG,QACtC,IAAO,CAAC,OAAS,OAAS,OAAS,EAAG,IACtC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,OAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,QAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,QAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,QAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,OAAS,OAAS,OAAS,EAAG,QACtC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,QAC1B,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,OAChC,IAAO,CAAC,OAAS,OAAS,OAAS,EAAG,QACtC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,QAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,QAChC,IAAO,CAAC,OAAS,OAAS,OAAS,EAAG,QACtC,IAAO,CAAC,EAAG,OAAS,OAAS,EAAG,QAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,QAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,OAChC,IAAO,CAAC,EAAG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,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,EAAG,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,EAAG,EAAG,EAAG,MACpB,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,EAAG,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAA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ACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAA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","sources":["webpack://tyb/../../shared/node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","webpack://tyb/../../shared/node_modules/@react-google-maps/api/dist/esm.js","webpack://tyb/../../shared/node_modules/@remix-run/router/dist/router.js","webpack://tyb/../../shared/node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","webpack://tyb/../../shared/node_modules/extend/index.js","webpack://tyb/../../shared/node_modules/inline-style-parser/index.js","webpack://tyb/../../shared/node_modules/katex/dist/katex.js","webpack://tyb/../../shared/node_modules/logrocket/dist/build.umd.js","webpack://tyb/../../shared/node_modules/prop-types/factoryWithThrowingShims.js","webpack://tyb/../../shared/node_modules/prop-types/index.js","webpack://tyb/../../shared/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://tyb/../../shared/node_modules/react-katex/dist/react-katex.js","webpack://tyb/../../shared/node_modules/react-router-dom/dist/index.js","webpack://tyb/../../shared/node_modules/react-router/dist/index.js","webpack://tyb/../../shared/node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://tyb/../../shared/node_modules/react/jsx-runtime.js","webpack://tyb/../../shared/node_modules/style-to-object/cjs/index.js","webpack://tyb/../../shared/node_modules/@stripe/stripe-js/dist/index.mjs","webpack://tyb/../../shared/node_modules/@ungap/structured-clone/esm/types.js","webpack://tyb/../../shared/node_modules/@ungap/structured-clone/esm/deserialize.js","webpack://tyb/../../shared/node_modules/@ungap/structured-clone/esm/serialize.js","webpack://tyb/../../shared/node_modules/@ungap/structured-clone/esm/index.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/bind.js","webpack://tyb/../../shared/node_modules/axios/lib/utils.js","webpack://tyb/../../shared/node_modules/axios/lib/core/AxiosError.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/toFormData.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/buildURL.js","webpack://tyb/../../shared/node_modules/axios/lib/core/InterceptorManager.js","webpack://tyb/../../shared/node_modules/axios/lib/defaults/transitional.js","webpack://tyb/../../shared/node_modules/axios/lib/platform/browser/index.js","webpack://tyb/../../shared/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://tyb/../../shared/node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://tyb/../../shared/node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://tyb/../../shared/node_modules/axios/lib/platform/common/utils.js","webpack://tyb/../../shared/node_modules/axios/lib/platform/index.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/formDataToJSON.js","webpack://tyb/../../shared/node_modules/axios/lib/defaults/index.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/parseHeaders.js","webpack://tyb/../../shared/node_modules/axios/lib/core/AxiosHeaders.js","webpack://tyb/../../shared/node_modules/axios/lib/core/transformData.js","webpack://tyb/../../shared/node_modules/axios/lib/cancel/isCancel.js","webpack://tyb/../../shared/node_modules/axios/lib/cancel/CanceledError.js","webpack://tyb/../../shared/node_modules/axios/lib/core/settle.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/speedometer.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/throttle.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/progressEventReducer.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/cookies.js","webpack://tyb/../../shared/node_modules/axios/lib/core/buildFullPath.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/combineURLs.js","webpack://tyb/../../shared/node_modules/axios/lib/core/mergeConfig.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/resolveConfig.js","webpack://tyb/../../shared/node_modules/axios/lib/adapters/xhr.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/parseProtocol.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/composeSignals.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/trackStream.js","webpack://tyb/../../shared/node_modules/axios/lib/adapters/fetch.js","webpack://tyb/../../shared/node_modules/axios/lib/adapters/adapters.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/null.js","webpack://tyb/../../shared/node_modules/axios/lib/core/dispatchRequest.js","webpack://tyb/../../shared/node_modules/axios/lib/env/data.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/validator.js","webpack://tyb/../../shared/node_modules/axios/lib/core/Axios.js","webpack://tyb/../../shared/node_modules/axios/lib/cancel/CancelToken.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://tyb/../../shared/node_modules/axios/lib/axios.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/spread.js","webpack://tyb/../../shared/node_modules/axios/lib/helpers/isAxiosError.js","webpack://tyb/../../shared/node_modules/comma-separated-tokens/index.js","webpack://tyb/../../shared/node_modules/devlop/lib/default.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/util/schema.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/util/merge.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/normalize.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/util/info.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/util/types.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/util/defined-info.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/util/create.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/aria.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/html.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/svg.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/xlink.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/xmlns.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/xml.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/index.js","webpack://tyb/../../shared/node_modules/hast-util-parse-selector/lib/index.js","webpack://tyb/../../shared/node_modules/hastscript/node_modules/property-information/lib/find.js","webpack://tyb/../../shared/node_modules/hastscript/lib/create-h.js","webpack://tyb/../../shared/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","webpack://tyb/../../shared/node_modules/hastscript/lib/index.js","webpack://tyb/../../shared/node_modules/micromark-factory-space/index.js","webpack://tyb/../../shared/node_modules/micromark-util-character/index.js","webpack://tyb/../../shared/node_modules/property-information/lib/util/schema.js","webpack://tyb/../../shared/node_modules/property-information/lib/util/merge.js","webpack://tyb/../../shared/node_modules/property-information/lib/util/create.js","webpack://tyb/../../shared/node_modules/property-information/lib/xlink.js","webpack://tyb/../../shared/node_modules/property-information/lib/xml.js","webpack://tyb/../../shared/node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://tyb/../../shared/node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://tyb/../../shared/node_modules/property-information/lib/xmlns.js","webpack://tyb/../../shared/node_modules/property-information/lib/aria.js","webpack://tyb/../../shared/node_modules/property-information/lib/html.js","webpack://tyb/../../shared/node_modules/property-information/lib/svg.js","webpack://tyb/../../shared/node_modules/property-information/index.js","webpack://tyb/../../shared/node_modules/property-information/lib/find.js","webpack://tyb/../../shared/node_modules/property-information/lib/normalize.js","webpack://tyb/../../shared/node_modules/property-information/lib/util/defined-info.js","webpack://tyb/../../shared/node_modules/property-information/lib/util/info.js","webpack://tyb/../../shared/node_modules/property-information/lib/util/types.js","webpack://tyb/../../shared/node_modules/react-icons/bs/index.mjs","webpack://tyb/../../shared/node_modules/react-icons/hi2/index.mjs","webpack://tyb/../../shared/node_modules/react-icons/im/index.mjs","webpack://tyb/../../shared/node_modules/react-icons/io/index.mjs","webpack://tyb/../../shared/node_modules/react-intersection-observer/dist/index.mjs","webpack://tyb/../../shared/node_modules/estree-util-is-identifier-name/lib/index.js","webpack://tyb/../../shared/node_modules/hast-util-whitespace/lib/index.js","webpack://tyb/../../shared/node_modules/property-information/lib/hast-to-react.js","webpack://tyb/../../shared/node_modules/style-to-object/esm/index.mjs","webpack://tyb/../../shared/node_modules/unist-util-stringify-position/lib/index.js","webpack://tyb/../../shared/node_modules/vfile-message/lib/index.js","webpack://tyb/../../shared/node_modules/hast-util-to-jsx-runtime/lib/index.js","webpack://tyb/../../shared/node_modules/html-url-attributes/lib/index.js","webpack://tyb/../../shared/node_modules/mdast-util-to-string/lib/index.js","webpack://tyb/../../shared/node_modules/micromark-util-chunked/index.js","webpack://tyb/../../shared/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","webpack://tyb/../../shared/node_modules/micromark-util-subtokenize/index.js","webpack://tyb/../../shared/node_modules/micromark-util-combine-extensions/index.js","webpack://tyb/../../shared/node_modules/micromark/lib/initialize/content.js","webpack://tyb/../../shared/node_modules/micromark/lib/initialize/document.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/blank-line.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/content.js","webpack://tyb/../../shared/node_modules/micromark/lib/initialize/flow.js","webpack://tyb/../../shared/node_modules/micromark/lib/initialize/text.js","webpack://tyb/../../shared/node_modules/micromark-util-resolve-all/index.js","webpack://tyb/../../shared/node_modules/micromark/lib/create-tokenizer.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/list.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/block-quote.js","webpack://tyb/../../shared/node_modules/micromark-factory-destination/index.js","webpack://tyb/../../shared/node_modules/micromark-factory-label/index.js","webpack://tyb/../../shared/node_modules/micromark-factory-title/index.js","webpack://tyb/../../shared/node_modules/micromark-factory-whitespace/index.js","webpack://tyb/../../shared/node_modules/micromark-util-normalize-identifier/index.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/definition.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/code-indented.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack://tyb/../../shared/node_modules/micromark-util-html-tag-name/index.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/html-flow.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack://tyb/../../shared/node_modules/decode-named-character-reference/index.dom.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/character-reference.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/character-escape.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/line-ending.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/label-end.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack://tyb/../../shared/node_modules/micromark-util-classify-character/index.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/attention.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/autolink.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/html-text.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack://tyb/../../shared/node_modules/micromark-core-commonmark/lib/code-text.js","webpack://tyb/../../shared/node_modules/micromark/lib/constructs.js","webpack://tyb/../../shared/node_modules/micromark/lib/parse.js","webpack://tyb/../../shared/node_modules/micromark/lib/preprocess.js","webpack://tyb/../../shared/node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack://tyb/../../shared/node_modules/micromark-util-decode-string/index.js","webpack://tyb/../../shared/node_modules/mdast-util-from-markdown/lib/index.js","webpack://tyb/../../shared/node_modules/micromark/lib/postprocess.js","webpack://tyb/../../shared/node_modules/remark-parse/lib/index.js","webpack://tyb/../../shared/node_modules/micromark-util-sanitize-uri/index.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/footer.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/revert.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack://tyb/../../shared/node_modules/trim-lines/index.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/state.js","webpack://tyb/../../shared/node_modules/mdast-util-to-hast/lib/index.js","webpack://tyb/../../shared/node_modules/remark-rehype/lib/index.js","webpack://tyb/../../shared/node_modules/bail/index.js","webpack://tyb/../../shared/node_modules/unified/node_modules/is-plain-obj/index.js","webpack://tyb/../../shared/node_modules/trough/lib/index.js","webpack://tyb/../../shared/node_modules/vfile/lib/minpath.browser.js","webpack://tyb/../../shared/node_modules/vfile/lib/minproc.browser.js","webpack://tyb/../../shared/node_modules/vfile/lib/minurl.shared.js","webpack://tyb/../../shared/node_modules/vfile/lib/minurl.browser.js","webpack://tyb/../../shared/node_modules/vfile/lib/index.js","webpack://tyb/../../shared/node_modules/unified/lib/callable-instance.js","webpack://tyb/../../shared/node_modules/unified/lib/index.js","webpack://tyb/../../shared/node_modules/react-markdown/lib/index.js","webpack://tyb/../../shared/node_modules/hast-util-from-dom/lib/index.js","webpack://tyb/../../shared/node_modules/hast-util-from-html-isomorphic/lib/browser.js","webpack://tyb/../../shared/node_modules/unist-util-find-after/lib/index.js","webpack://tyb/../../shared/node_modules/hast-util-is-element/lib/index.js","webpack://tyb/../../shared/node_modules/hast-util-to-text/lib/index.js","webpack://tyb/../../shared/node_modules/katex/dist/katex.mjs","webpack://tyb/../../shared/node_modules/rehype-katex/lib/index.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/util/schema.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/util/merge.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/normalize.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/util/info.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/util/types.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/util/defined-info.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/util/create.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/aria.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/html.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/svg.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/xlink.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/xmlns.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/xml.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/index.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/node_modules/property-information/lib/find.js","webpack://tyb/../../shared/node_modules/vfile-location/lib/index.js","webpack://tyb/../../shared/node_modules/hast-util-from-parse5/lib/index.js","webpack://tyb/../../shared/node_modules/zwitch/index.js","webpack://tyb/../../shared/node_modules/hast-util-to-parse5/lib/index.js","webpack://tyb/../../shared/node_modules/html-void-elements/index.js","webpack://tyb/../../shared/node_modules/parse5/dist/common/unicode.js","webpack://tyb/../../shared/node_modules/parse5/dist/common/error-codes.js","webpack://tyb/../../shared/node_modules/parse5/dist/tokenizer/preprocessor.js","webpack://tyb/../../shared/node_modules/parse5/dist/common/token.js","webpack://tyb/../../shared/node_modules/entities/lib/esm/generated/decode-data-html.js","webpack://tyb/../../shared/node_modules/entities/lib/esm/decode_codepoint.js","webpack://tyb/../../shared/node_modules/entities/lib/esm/generated/decode-data-xml.js","webpack://tyb/../../shared/node_modules/entities/lib/esm/decode.js","webpack://tyb/../../shared/node_modules/parse5/dist/common/html.js","webpack://tyb/../../shared/node_modules/parse5/dist/tokenizer/index.js","webpack://tyb/../../shared/node_modules/parse5/dist/parser/open-element-stack.js","webpack://tyb/../../shared/node_modules/parse5/dist/parser/formatting-element-list.js","webpack://tyb/../../shared/node_modules/parse5/dist/tree-adapters/default.js","webpack://tyb/../../shared/node_modules/parse5/dist/common/doctype.js","webpack://tyb/../../shared/node_modules/parse5/dist/common/foreign-content.js","webpack://tyb/../../shared/node_modules/parse5/dist/parser/index.js","webpack://tyb/../../shared/node_modules/entities/lib/esm/escape.js","webpack://tyb/../../shared/node_modules/parse5/dist/serializer/index.js","webpack://tyb/../../shared/node_modules/hast-util-raw/lib/index.js","webpack://tyb/../../shared/node_modules/rehype-raw/lib/index.js","webpack://tyb/../../shared/node_modules/mdast-util-math/lib/index.js","webpack://tyb/../../shared/node_modules/longest-streak/index.js","webpack://tyb/../../shared/node_modules/micromark-extension-math/lib/math-flow.js","webpack://tyb/../../shared/node_modules/micromark-extension-math/lib/math-text.js","webpack://tyb/../../shared/node_modules/remark-math/lib/index.js","webpack://tyb/../../shared/node_modules/micromark-extension-math/lib/syntax.js","webpack://tyb/../../shared/node_modules/space-separated-tokens/index.js","webpack://tyb/../../shared/node_modules/unist-util-is/lib/index.js","webpack://tyb/../../shared/node_modules/unist-util-position/lib/index.js","webpack://tyb/../../shared/node_modules/unist-util-visit-parents/lib/index.js","webpack://tyb/../../shared/node_modules/unist-util-visit/lib/index.js","webpack://tyb/../../shared/node_modules/web-namespaces/index.js"],"sourcesContent":["var adapters = {\n logger: typeof console !== \"undefined\" ? console : undefined,\n WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined\n};\n\nvar logger = {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now());\n adapters.logger.log(\"[ActionCable]\", ...messages);\n }\n }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n }\n }\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n recordMessage() {\n this.pingedAt = now();\n }\n recordConnect() {\n this.reconnectAttempts = 0;\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n startPolling() {\n this.stopPolling();\n this.poll();\n }\n stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n poll() {\n this.pollTimeout = setTimeout((() => {\n this.reconnectIfStale();\n this.poll();\n }), this.getPollInterval());\n }\n getPollInterval() {\n const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n const jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout((() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n this.connection.reopen();\n }\n }), 200);\n }\n }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\",\n remote: \"remote\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n return false;\n } else {\n const socketProtocols = [ ...protocols, ...this.consumer.subprotocols || [] ];\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n close({allowReconnect: allowReconnect} = {\n allowReconnect: true\n }) {\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n isOpen() {\n return this.isState(\"open\");\n }\n isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0;\n }\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0;\n }\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n }\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this);\n this.webSocket[`on${eventName}`] = handler;\n }\n }\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {};\n }\n }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n this.monitor.recordMessage();\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true;\n }\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return null;\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false;\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: true\n });\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: false\n });\n }\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key];\n object[key] = value;\n }\n }\n return object;\n};\n\nclass Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n perform(action, data = {}) {\n data.action = action;\n return this.send(data);\n }\n send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n}\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n }\n this.startGuaranteeing();\n }\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n }\n startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n retrySubscribing() {\n this.retryTimeout = setTimeout((() => {\n if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n this.pendingSubscriptions.map((subscription => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n this.subscriptions.subscribe(subscription);\n }));\n }\n }), 500);\n }\n}\n\nclass Subscriptions {\n constructor(consumer) {\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n create(channelName, mixin) {\n const channel = channelName;\n const params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n const subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n }\n reject(identifier) {\n return this.findAll(identifier).map((subscription => {\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n return subscription;\n }));\n }\n forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n return subscription;\n }\n findAll(identifier) {\n return this.subscriptions.filter((s => s.identifier === identifier));\n }\n reload() {\n return this.subscriptions.map((subscription => this.subscribe(subscription)));\n }\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n }\n notify(subscription, callbackName, ...args) {\n let subscriptions;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n }\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`);\n this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n }\n sendCommand(subscription, command) {\n const {identifier: identifier} = subscription;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n}\n\nclass Consumer {\n constructor(url) {\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n this.subprotocols = [];\n }\n get url() {\n return createWebSocketURL(this._url);\n }\n send(data) {\n return this.connection.send(data);\n }\n connect() {\n return this.connection.open();\n }\n disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n addSubProtocol(subprotocol) {\n this.subprotocols = [ ...this.subprotocols, subprotocol ];\n }\n}\n\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\n\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url);\n}\n\nfunction getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { createContext, useContext, memo, useState, useRef, useEffect, PureComponent, useMemo, Children, isValidElement, cloneElement, createRef } from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPortal } from 'react-dom';\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\n\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\n\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\n\nfunction getDefaultExportFromCjs$1 (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar invariant_1;\nvar hasRequiredInvariant;\nfunction requireInvariant() {\n if (hasRequiredInvariant) return invariant_1;\n hasRequiredInvariant = 1;\n\n /**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\n var NODE_ENV = process.env.NODE_ENV;\n var invariant = function invariant(condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n };\n invariant_1 = invariant;\n return invariant_1;\n}\n\nvar invariantExports = requireInvariant();\nvar invariant = /*@__PURE__*/getDefaultExportFromCjs$1(invariantExports);\n\nvar MapContext = createContext(null);\nfunction useGoogleMap() {\n invariant(!!useContext, 'useGoogleMap is React hook and requires React version 16.8+');\n var map = useContext(MapContext);\n invariant(!!map, 'useGoogleMap needs a GoogleMap available up in the tree');\n return map;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction reduce(obj, fn, acc) {\n return Object.keys(obj).reduce(function reducer(newAcc, key) {\n return fn(newAcc, obj[key], key);\n }, acc);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction forEach(obj, fn) {\n Object.keys(obj).forEach(key => {\n return fn(obj[key], key);\n });\n}\n\n/* global google */\n/* eslint-disable filenames/match-regex */\nfunction applyUpdaterToNextProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nupdaterMap,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprevProps,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nnextProps,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninstance\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var map = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var iter = (fn, key) => {\n var nextValue = nextProps[key];\n if (nextValue !== prevProps[key]) {\n map[key] = nextValue;\n fn(instance, nextValue);\n }\n };\n forEach(updaterMap, iter);\n return map;\n}\nfunction registerEvents(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninstance, eventMap) {\n var registeredList = reduce(eventMap, function reducer(acc, googleEventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onEventName) {\n if (typeof props[onEventName] === 'function') {\n acc.push(google.maps.event.addListener(instance, googleEventName, props[onEventName]));\n }\n return acc;\n }, []);\n return registeredList;\n}\nfunction unregisterEvent(registered) {\n google.maps.event.removeListener(registered);\n}\nfunction unregisterEvents() {\n var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n events.forEach(unregisterEvent);\n}\nfunction applyUpdatersToPropsAndRegisterEvents(_ref) {\n var {\n updaterMap,\n eventMap,\n prevProps,\n nextProps,\n instance\n } = _ref;\n var registeredEvents = registerEvents(nextProps, instance, eventMap);\n applyUpdaterToNextProps(updaterMap, prevProps, nextProps, instance);\n return registeredEvents;\n}\n\nvar eventMap$i = {\n onDblClick: 'dblclick',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMapTypeIdChanged: 'maptypeid_changed',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseDown: 'mousedown',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n onTilesLoaded: 'tilesloaded',\n onBoundsChanged: 'bounds_changed',\n onCenterChanged: 'center_changed',\n onClick: 'click',\n onDrag: 'drag',\n onHeadingChanged: 'heading_changed',\n onIdle: 'idle',\n onProjectionChanged: 'projection_changed',\n onResize: 'resize',\n onTiltChanged: 'tilt_changed',\n onZoomChanged: 'zoom_changed'\n};\nvar updaterMap$i = {\n extraMapTypes(map, extra) {\n extra.forEach(function forEachExtra(it, i) {\n map.mapTypes.set(String(i), it);\n });\n },\n center(map, center) {\n map.setCenter(center);\n },\n clickableIcons(map, clickable) {\n map.setClickableIcons(clickable);\n },\n heading(map, heading) {\n map.setHeading(heading);\n },\n mapTypeId(map, mapTypeId) {\n map.setMapTypeId(mapTypeId);\n },\n options(map, options) {\n map.setOptions(options);\n },\n streetView(map, streetView) {\n map.setStreetView(streetView);\n },\n tilt(map, tilt) {\n map.setTilt(tilt);\n },\n zoom(map, zoom) {\n map.setZoom(zoom);\n }\n};\n// TODO: unfinished!\nfunction GoogleMapFunctional(_ref) {\n var {\n children,\n options,\n id,\n mapContainerStyle,\n mapContainerClassName,\n center,\n // clickableIcons,\n // extraMapTypes,\n // heading,\n // mapTypeId,\n onClick,\n onDblClick,\n onDrag,\n onDragEnd,\n onDragStart,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onRightClick,\n // onMapTypeIdChanged,\n // onTilesLoaded,\n // onBoundsChanged,\n onCenterChanged,\n // onHeadingChanged,\n // onIdle,\n // onProjectionChanged,\n // onResize,\n // onTiltChanged,\n // onZoomChanged,\n onLoad,\n onUnmount\n } = _ref;\n var [map, setMap] = useState(null);\n var ref = useRef(null);\n // const [extraMapTypesListener, setExtraMapTypesListener] = useState(null)\n var [centerChangedListener, setCenterChangedListener] = useState(null);\n var [dblclickListener, setDblclickListener] = useState(null);\n var [dragendListener, setDragendListener] = useState(null);\n var [dragstartListener, setDragstartListener] = useState(null);\n var [mousedownListener, setMousedownListener] = useState(null);\n var [mousemoveListener, setMousemoveListener] = useState(null);\n var [mouseoutListener, setMouseoutListener] = useState(null);\n var [mouseoverListener, setMouseoverListener] = useState(null);\n var [mouseupListener, setMouseupListener] = useState(null);\n var [rightclickListener, setRightclickListener] = useState(null);\n var [clickListener, setClickListener] = useState(null);\n var [dragListener, setDragListener] = useState(null);\n // Order does matter\n useEffect(() => {\n if (options && map !== null) {\n map.setOptions(options);\n }\n }, [map, options]);\n useEffect(() => {\n if (map !== null && typeof center !== 'undefined') {\n map.setCenter(center);\n }\n }, [map, center]);\n useEffect(() => {\n if (map && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(map, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(() => {\n if (map && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(map, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(() => {\n if (map && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(map, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(() => {\n if (map && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(map, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(() => {\n if (map && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(map, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(() => {\n if (map && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(map, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(() => {\n if (map && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(map, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(() => {\n if (map && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(map, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(() => {\n if (map && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(map, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(() => {\n if (map && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(map, 'click', onClick));\n }\n }, [onClick]);\n useEffect(() => {\n if (map && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(map, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(() => {\n if (map && onCenterChanged) {\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n setCenterChangedListener(google.maps.event.addListener(map, 'center_changed', onCenterChanged));\n }\n }, [onClick]);\n useEffect(() => {\n var map = ref.current === null ? null : new google.maps.Map(ref.current, options);\n setMap(map);\n if (map !== null && onLoad) {\n onLoad(map);\n }\n return () => {\n if (map !== null) {\n if (onUnmount) {\n onUnmount(map);\n }\n }\n };\n }, []);\n return jsx(\"div\", {\n id: id,\n ref: ref,\n style: mapContainerStyle,\n className: mapContainerClassName,\n children: jsx(MapContext.Provider, {\n value: map,\n children: map !== null ? children : null\n })\n });\n}\nmemo(GoogleMapFunctional);\nclass GoogleMap extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", {\n map: null\n });\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"mapRef\", null);\n _defineProperty(this, \"getInstance\", () => {\n if (this.mapRef === null) {\n return null;\n }\n return new google.maps.Map(this.mapRef, this.props.options);\n });\n _defineProperty(this, \"panTo\", latLng => {\n var map = this.getInstance();\n if (map) {\n map.panTo(latLng);\n }\n });\n _defineProperty(this, \"setMapCallback\", () => {\n if (this.state.map !== null) {\n if (this.props.onLoad) {\n this.props.onLoad(this.state.map);\n }\n }\n });\n _defineProperty(this, \"getRef\", ref => {\n this.mapRef = ref;\n });\n }\n componentDidMount() {\n var map = this.getInstance();\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$i,\n eventMap: eventMap$i,\n prevProps: {},\n nextProps: this.props,\n instance: map\n });\n this.setState(function setMap() {\n return {\n map\n };\n }, this.setMapCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.map !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$i,\n eventMap: eventMap$i,\n prevProps,\n nextProps: this.props,\n instance: this.state.map\n });\n }\n }\n componentWillUnmount() {\n if (this.state.map !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.map);\n }\n unregisterEvents(this.registeredEvents);\n }\n }\n render() {\n return jsx(\"div\", {\n id: this.props.id,\n ref: this.getRef,\n style: this.props.mapContainerStyle,\n className: this.props.mapContainerClassName,\n children: jsx(MapContext.Provider, {\n value: this.state.map,\n children: this.state.map !== null ? this.props.children : null\n })\n });\n }\n}\n\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\n\nfunction makeLoadScriptUrl(_ref) {\n var {\n googleMapsApiKey,\n googleMapsClientId,\n version = 'weekly',\n language,\n region,\n libraries,\n channel,\n mapIds,\n authReferrerPolicy\n } = _ref;\n var params = [];\n invariant(googleMapsApiKey && googleMapsClientId || !(googleMapsApiKey && googleMapsClientId), 'You need to specify either googleMapsApiKey or googleMapsClientId for @react-google-maps/api load script to work. You cannot use both at the same time.');\n if (googleMapsApiKey) {\n params.push(\"key=\".concat(googleMapsApiKey));\n } else if (googleMapsClientId) {\n params.push(\"client=\".concat(googleMapsClientId));\n }\n if (version) {\n params.push(\"v=\".concat(version));\n }\n if (language) {\n params.push(\"language=\".concat(language));\n }\n if (region) {\n params.push(\"region=\".concat(region));\n }\n if (libraries && libraries.length) {\n params.push(\"libraries=\".concat(libraries.sort().join(',')));\n }\n if (channel) {\n params.push(\"channel=\".concat(channel));\n }\n if (mapIds && mapIds.length) {\n params.push(\"map_ids=\".concat(mapIds.join(',')));\n }\n if (authReferrerPolicy) {\n params.push(\"auth_referrer_policy=\".concat(authReferrerPolicy));\n }\n params.push('loading=async');\n params.push('callback=initMap');\n return \"https://maps.googleapis.com/maps/api/js?\".concat(params.join('&'));\n}\n\nvar isBrowser = typeof document !== 'undefined';\n\nfunction injectScript(_ref) {\n var {\n url,\n id,\n nonce\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = _ref;\n if (!isBrowser) {\n return Promise.reject(new Error('document is undefined'));\n }\n return new Promise(function injectScriptCallback(resolve, reject) {\n var existingScript = document.getElementById(id);\n var windowWithGoogleMap = window;\n if (existingScript) {\n // Same script id/url: keep same script\n var dataStateAttribute = existingScript.getAttribute('data-state');\n if (existingScript.src === url && dataStateAttribute !== 'error') {\n if (dataStateAttribute === 'ready') {\n return resolve(id);\n } else {\n var originalInitMap = windowWithGoogleMap.initMap;\n var originalErrorCallback = existingScript.onerror;\n windowWithGoogleMap.initMap = function initMap() {\n if (originalInitMap) {\n originalInitMap();\n }\n resolve(id);\n };\n existingScript.onerror = function (err) {\n if (originalErrorCallback) {\n originalErrorCallback(err);\n }\n reject(err);\n };\n return;\n }\n }\n // Same script id, but either\n // 1. requested URL is different\n // 2. script failed to load\n else {\n existingScript.remove();\n }\n }\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.id = id;\n script.async = true;\n script.nonce = nonce || '';\n script.onerror = function onerror(err) {\n script.setAttribute('data-state', 'error');\n reject(err);\n };\n windowWithGoogleMap.initMap = function onload() {\n script.setAttribute('data-state', 'ready');\n resolve(id);\n };\n document.head.appendChild(script);\n }).catch(err => {\n console.error('injectScript error: ', err);\n throw err;\n });\n}\n\nfunction isGoogleFontStyle(element) {\n // 'Roboto' or 'Google Sans Text' font download\n var href = element.href;\n if (href && (href.indexOf('https://fonts.googleapis.com/css?family=Roboto') === 0 || href.indexOf('https://fonts.googleapis.com/css?family=Google+Sans+Text') === 0)) {\n return true;\n }\n // font style elements\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText.replace('\\r\\n', '').indexOf('.gm-style') === 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText = '';\n return true;\n }\n // font style elements for other browsers\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML.replace('\\r\\n', '').indexOf('.gm-style') === 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML = '';\n return true;\n }\n // when google tries to add empty style\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n !element.styleSheet &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n !element.innerHTML) {\n return true;\n }\n return false;\n}\n// Preventing the Google Maps library from downloading an extra font\nfunction preventGoogleFonts() {\n // we override these methods only for one particular head element\n // default methods for other elements are not affected\n var head = document.getElementsByTagName('head')[0];\n if (head) {\n var trueInsertBefore = head.insertBefore.bind(head);\n // TODO: adding return before reflect solves the TS issue\n head.insertBefore = function insertBefore(newElement, referenceElement) {\n if (!isGoogleFontStyle(newElement)) {\n Reflect.apply(trueInsertBefore, head, [newElement, referenceElement]);\n }\n return newElement;\n };\n var trueAppend = head.appendChild.bind(head);\n // TODO: adding return before reflect solves the TS issue\n head.appendChild = function appendChild(textNode) {\n if (!isGoogleFontStyle(textNode)) {\n Reflect.apply(trueAppend, head, [textNode]);\n }\n return textNode;\n };\n }\n}\n\nvar cleaningUp = false;\nfunction DefaultLoadingElement() {\n return jsx(\"div\", {\n children: \"Loading...\"\n });\n}\nvar defaultLoadScriptProps = {\n id: 'script-loader',\n version: 'weekly'\n};\nclass LoadScript extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"check\", null);\n _defineProperty(this, \"state\", {\n loaded: false\n });\n _defineProperty(this, \"cleanupCallback\", () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete window.google.maps;\n this.injectScript();\n });\n _defineProperty(this, \"isCleaningUp\", /*#__PURE__*/_asyncToGenerator(function* () {\n function promiseCallback(resolve) {\n if (!cleaningUp) {\n resolve();\n } else {\n if (isBrowser) {\n var timer = window.setInterval(function interval() {\n if (!cleaningUp) {\n window.clearInterval(timer);\n resolve();\n }\n }, 1);\n }\n }\n return;\n }\n return new Promise(promiseCallback);\n }));\n _defineProperty(this, \"cleanup\", () => {\n cleaningUp = true;\n var script = document.getElementById(this.props.id);\n if (script && script.parentNode) {\n script.parentNode.removeChild(script);\n }\n Array.prototype.slice.call(document.getElementsByTagName('script')).filter(function filter(script) {\n return typeof script.src === 'string' && script.src.includes('maps.googleapis');\n }).forEach(function forEach(script) {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n });\n Array.prototype.slice.call(document.getElementsByTagName('link')).filter(function filter(link) {\n return link.href === 'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Google+Sans';\n }).forEach(function forEach(link) {\n if (link.parentNode) {\n link.parentNode.removeChild(link);\n }\n });\n Array.prototype.slice.call(document.getElementsByTagName('style')).filter(function filter(style) {\n return style.innerText !== undefined && style.innerText.length > 0 && style.innerText.includes('.gm-');\n }).forEach(function forEach(style) {\n if (style.parentNode) {\n style.parentNode.removeChild(style);\n }\n });\n });\n _defineProperty(this, \"injectScript\", () => {\n if (this.props.preventGoogleFontsLoading) {\n preventGoogleFonts();\n }\n invariant(!!this.props.id, 'LoadScript requires \"id\" prop to be a string: %s', this.props.id);\n var injectScriptOptions = {\n id: this.props.id,\n nonce: this.props.nonce,\n url: makeLoadScriptUrl(this.props)\n };\n injectScript(injectScriptOptions).then(() => {\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n this.setState(function setLoaded() {\n return {\n loaded: true\n };\n });\n return;\n }).catch(err => {\n if (this.props.onError) {\n this.props.onError(err);\n }\n console.error(\"\\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (\".concat(this.props.googleMapsApiKey || '-', \") or Client ID (\").concat(this.props.googleMapsClientId || '-', \") to \\n Otherwise it is a Network issue.\\n \"));\n });\n });\n _defineProperty(this, \"getRef\", el => {\n this.check = el;\n });\n }\n componentDidMount() {\n if (isBrowser) {\n if (window.google && window.google.maps && !cleaningUp) {\n console.error('google api is already presented');\n return;\n }\n this.isCleaningUp().then(this.injectScript).catch(function error(err) {\n console.error('Error at injecting script after cleaning up: ', err);\n });\n }\n }\n componentDidUpdate(prevProps) {\n if (this.props.libraries !== prevProps.libraries) {\n console.warn('Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables');\n }\n if (isBrowser && prevProps.language !== this.props.language) {\n this.cleanup();\n // TODO: refactor to use gDSFP maybe... wait for hooks refactoring.\n this.setState(function setLoaded() {\n return {\n loaded: false\n };\n }, this.cleanupCallback);\n }\n }\n componentWillUnmount() {\n if (isBrowser) {\n this.cleanup();\n var timeoutCallback = () => {\n if (!this.check) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete window.google;\n cleaningUp = false;\n }\n };\n window.setTimeout(timeoutCallback, 1);\n if (this.props.onUnmount) {\n this.props.onUnmount();\n }\n }\n }\n render() {\n return jsxs(Fragment, {\n children: [jsx(\"div\", {\n ref: this.getRef\n }), this.state.loaded ? this.props.children : this.props.loadingElement || jsx(DefaultLoadingElement, {})]\n });\n }\n}\n_defineProperty(LoadScript, \"defaultProps\", defaultLoadScriptProps);\n\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\n\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\n\n/* eslint-disable filenames/match-regex */\nvar previouslyLoadedUrl;\nfunction useLoadScript(_ref) {\n var {\n id = defaultLoadScriptProps.id,\n version = defaultLoadScriptProps.version,\n nonce,\n googleMapsApiKey,\n googleMapsClientId,\n language,\n region,\n libraries,\n preventGoogleFontsLoading,\n channel,\n mapIds,\n authReferrerPolicy\n } = _ref;\n var isMounted = useRef(false);\n var [isLoaded, setLoaded] = useState(false);\n var [loadError, setLoadError] = useState(undefined);\n useEffect(function trackMountedState() {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n useEffect(function applyPreventGoogleFonts() {\n if (isBrowser && preventGoogleFontsLoading) {\n preventGoogleFonts();\n }\n }, [preventGoogleFontsLoading]);\n useEffect(function validateLoadedState() {\n if (isLoaded) {\n invariant(!!window.google, 'useLoadScript was marked as loaded, but window.google is not present. Something went wrong.');\n }\n }, [isLoaded]);\n var url = makeLoadScriptUrl({\n version,\n googleMapsApiKey,\n googleMapsClientId,\n language,\n region,\n libraries,\n channel,\n mapIds,\n authReferrerPolicy\n });\n useEffect(function loadScriptAndModifyLoadedState() {\n if (!isBrowser) {\n return;\n }\n function setLoadedIfMounted() {\n if (isMounted.current) {\n setLoaded(true);\n previouslyLoadedUrl = url;\n }\n }\n if (window.google && window.google.maps && previouslyLoadedUrl === url) {\n setLoadedIfMounted();\n return;\n }\n injectScript({\n id,\n url,\n nonce\n }).then(setLoadedIfMounted).catch(function handleInjectError(err) {\n if (isMounted.current) {\n setLoadError(err);\n }\n console.warn(\"\\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (\".concat(googleMapsApiKey || '-', \") or Client ID (\").concat(googleMapsClientId || '-', \")\\n Otherwise it is a Network issue.\\n \"));\n console.error(err);\n });\n }, [id, url, nonce]);\n var prevLibraries = useRef(undefined);\n useEffect(function checkPerformance() {\n if (prevLibraries.current && libraries !== prevLibraries.current) {\n console.warn('Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables');\n }\n prevLibraries.current = libraries;\n }, [libraries]);\n return {\n isLoaded,\n loadError,\n url\n };\n}\n\nvar _excluded$1 = [\"loadingElement\", \"onLoad\", \"onError\", \"onUnmount\", \"children\"];\nvar defaultLoadingElement = jsx(DefaultLoadingElement, {});\nfunction LoadScriptNext(_ref) {\n var {\n loadingElement,\n onLoad,\n onError,\n onUnmount,\n children\n } = _ref,\n hookOptions = _objectWithoutProperties(_ref, _excluded$1);\n var {\n isLoaded,\n loadError\n } = useLoadScript(hookOptions);\n useEffect(function handleOnLoad() {\n if (isLoaded && typeof onLoad === 'function') {\n onLoad();\n }\n }, [isLoaded, onLoad]);\n useEffect(function handleOnError() {\n if (loadError && typeof onError === 'function') {\n onError(loadError);\n }\n }, [loadError, onError]);\n useEffect(function handleOnUnmount() {\n return () => {\n if (onUnmount) {\n onUnmount();\n }\n };\n }, [onUnmount]);\n return isLoaded ? children : loadingElement || defaultLoadingElement;\n}\nvar LoadScriptNext$1 = memo(LoadScriptNext);\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, [])).next());\n });\n}\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n// do not edit .js files directly - edit src/index.jst\n\nvar fastDeepEqual$1 = function equal(a, b) {\n if (a === b) return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n return true;\n }\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n if (!equal(a[key], b[key])) return false;\n }\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n};\nvar isEqual = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqual$1);\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor(_ref) {\n var {\n apiKey,\n authReferrerPolicy,\n channel,\n client,\n id = DEFAULT_ID,\n language,\n libraries = [],\n mapIds,\n nonce,\n region,\n retries = 3,\n url = \"https://maps.googleapis.com/maps/api/js\",\n version\n } = _ref;\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!isEqual(this.options, Loader.instance.options)) {\n throw new Error(\"Loader must not be called again with different options. \".concat(JSON.stringify(this.options), \" !== \").concat(JSON.stringify(Loader.instance.options)));\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n var url = this.url;\n url += \"?callback=__googleMapsCallback&loading=async\";\n if (this.apiKey) {\n url += \"&key=\".concat(this.apiKey);\n }\n if (this.channel) {\n url += \"&channel=\".concat(this.channel);\n }\n if (this.client) {\n url += \"&client=\".concat(this.client);\n }\n if (this.libraries.length > 0) {\n url += \"&libraries=\".concat(this.libraries.join(\",\"));\n }\n if (this.language) {\n url += \"&language=\".concat(this.language);\n }\n if (this.region) {\n url += \"®ion=\".concat(this.region);\n }\n if (this.version) {\n url += \"&v=\".concat(this.version);\n }\n if (this.mapIds) {\n url += \"&map_ids=\".concat(this.mapIds.join(\",\"));\n }\n if (this.authReferrerPolicy) {\n url += \"&auth_referrer_policy=\".concat(this.authReferrerPolicy);\n }\n return url;\n }\n deleteScript() {\n var script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback(err => {\n if (!err) {\n resolve(window.google);\n } else {\n reject(err.error);\n }\n });\n });\n }\n importLibrary(name) {\n this.execute();\n return google.maps.importLibrary(name);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var _a, _b;\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n var params = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy\n };\n // keep the URL minimal:\n Object.keys(params).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n key => !params[key] && delete params[key]);\n if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {\n // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import\n // which also sets the base url, the id, and the nonce\n /* eslint-disable */\n (g => {\n // @ts-ignore\n var h,\n a,\n k,\n p = \"The Google Maps JavaScript API\",\n c = \"google\",\n l = \"importLibrary\",\n q = \"__ib__\",\n m = document,\n b = window;\n // @ts-ignore\n b = b[c] || (b[c] = {});\n // @ts-ignore\n var d = b.maps || (b.maps = {}),\n r = new Set(),\n e = new URLSearchParams(),\n u = () =>\n // @ts-ignore\n h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield a = m.createElement(\"script\");\n a.id = this.id;\n e.set(\"libraries\", [...r] + \"\");\n // @ts-ignore\n for (k in g) e.set(k.replace(/[A-Z]/g, t => \"_\" + t[0].toLowerCase()), g[k]);\n e.set(\"callback\", c + \".maps.\" + q);\n a.src = this.url + \"?\" + e;\n d[q] = f;\n a.onerror = () => h = n(Error(p + \" could not load.\"));\n // @ts-ignore\n a.nonce = this.nonce || ((_a = m.querySelector(\"script[nonce]\")) === null || _a === void 0 ? void 0 : _a.nonce) || \"\";\n m.head.append(a);\n })));\n // @ts-ignore\n d[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : d[l] = function (f) {\n for (var _len = arguments.length, n = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n n[_key - 1] = arguments[_key];\n }\n return r.add(f) && u().then(() => d[l](f, ...n));\n };\n })(params);\n /* eslint-enable */\n }\n // While most libraries populate the global namespace when loaded via bootstrap params,\n // this is not the case for \"marker\" when used with the inline bootstrap loader\n // (and maybe others in the future). So ensure there is an importLibrary for each:\n var libraryPromises = this.libraries.map(library => this.importLibrary(library));\n // ensure at least one library, to kick off loading...\n if (!libraryPromises.length) {\n libraryPromises.push(this.importLibrary(\"core\"));\n }\n Promise.all(libraryPromises).then(() => this.callback(), error => {\n var event = new ErrorEvent(\"error\", {\n error\n }); // for backwards compat\n this.loadErrorCallback(event);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n var delay = this.errors.length * Math.pow(2, this.errors.length);\n console.error(\"Failed to load Google Maps script, retrying in \".concat(delay, \" ms.\"));\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n } else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach(cb => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.loading) {\n // do nothing but wait\n return;\n }\n if (this.done) {\n this.callback();\n } else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader. \" + \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n this.loading = true;\n this.setScript();\n }\n }\n}\n\nvar defaultLibraries = ['maps'];\nfunction useJsApiLoader(_ref) {\n var {\n id = defaultLoadScriptProps.id,\n version = defaultLoadScriptProps.version,\n nonce,\n googleMapsApiKey,\n // googleMapsClientId,\n language,\n region,\n libraries = defaultLibraries,\n preventGoogleFontsLoading,\n // channel,\n mapIds,\n authReferrerPolicy\n } = _ref;\n var isMounted = useRef(false);\n var [isLoaded, setLoaded] = useState(false);\n var [loadError, setLoadError] = useState(undefined);\n useEffect(function trackMountedState() {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n var loader = useMemo(() => {\n return new Loader({\n id,\n apiKey: googleMapsApiKey,\n version,\n libraries,\n language: language || 'en',\n region: region || 'US',\n mapIds: mapIds || [],\n nonce: nonce || '',\n authReferrerPolicy: authReferrerPolicy || 'origin'\n });\n }, [id, googleMapsApiKey, version, libraries, language, region, mapIds, nonce, authReferrerPolicy]);\n useEffect(function effect() {\n if (isLoaded) {\n return;\n } else {\n loader.load().then(() => {\n if (isMounted.current) {\n setLoaded(true);\n }\n return;\n }).catch(error => {\n setLoadError(error);\n });\n }\n }, []);\n useEffect(() => {\n if (isBrowser && preventGoogleFontsLoading) {\n preventGoogleFonts();\n }\n }, [preventGoogleFontsLoading]);\n var prevLibraries = useRef();\n useEffect(() => {\n if (prevLibraries.current && libraries !== prevLibraries.current) {\n console.warn('Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables');\n }\n prevLibraries.current = libraries;\n }, [libraries]);\n return {\n isLoaded,\n loadError\n };\n}\n\nfunction ownKeys$f(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$h = {};\nvar updaterMap$h = {\n options(instance, options) {\n instance.setOptions(options);\n }\n};\nfunction TrafficLayerFunctional(_ref) {\n var {\n options,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n var trafficLayer = new google.maps.TrafficLayer(_objectSpread$f(_objectSpread$f({}, options), {}, {\n map\n }));\n setInstance(trafficLayer);\n if (onLoad) {\n onLoad(trafficLayer);\n }\n return () => {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar TrafficLayerF = memo(TrafficLayerFunctional);\nclass TrafficLayer extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", {\n trafficLayer: null\n });\n _defineProperty(this, \"setTrafficLayerCallback\", () => {\n if (this.state.trafficLayer !== null && this.props.onLoad) {\n this.props.onLoad(this.state.trafficLayer);\n }\n });\n _defineProperty(this, \"registeredEvents\", []);\n }\n componentDidMount() {\n var trafficLayer = new google.maps.TrafficLayer(_objectSpread$f(_objectSpread$f({}, this.props.options), {}, {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$h,\n eventMap: eventMap$h,\n prevProps: {},\n nextProps: this.props,\n instance: trafficLayer\n });\n this.setState(function setTrafficLayer() {\n return {\n trafficLayer\n };\n }, this.setTrafficLayerCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.trafficLayer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$h,\n eventMap: eventMap$h,\n prevProps,\n nextProps: this.props,\n instance: this.state.trafficLayer\n });\n }\n }\n componentWillUnmount() {\n if (this.state.trafficLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.trafficLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.trafficLayer.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(TrafficLayer, \"contextType\", MapContext);\n\nfunction BicyclingLayerFunctional(_ref) {\n var {\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n var bicyclingLayer = new google.maps.BicyclingLayer();\n setInstance(bicyclingLayer);\n bicyclingLayer.setMap(map);\n if (onLoad) {\n onLoad(bicyclingLayer);\n }\n return () => {\n if (bicyclingLayer !== null) {\n if (onUnmount) {\n onUnmount(bicyclingLayer);\n }\n bicyclingLayer.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar BicyclingLayerF = memo(BicyclingLayerFunctional);\nclass BicyclingLayer extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", {\n bicyclingLayer: null\n });\n _defineProperty(this, \"setBicyclingLayerCallback\", () => {\n if (this.state.bicyclingLayer !== null) {\n this.state.bicyclingLayer.setMap(this.context);\n if (this.props.onLoad) {\n this.props.onLoad(this.state.bicyclingLayer);\n }\n }\n });\n }\n componentDidMount() {\n var bicyclingLayer = new google.maps.BicyclingLayer();\n this.setState(() => {\n return {\n bicyclingLayer\n };\n }, this.setBicyclingLayerCallback);\n }\n componentWillUnmount() {\n if (this.state.bicyclingLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.bicyclingLayer);\n }\n this.state.bicyclingLayer.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(BicyclingLayer, \"contextType\", MapContext);\n\nfunction TransitLayerFunctional(_ref) {\n var {\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n var transitLayer = new google.maps.TransitLayer();\n setInstance(transitLayer);\n transitLayer.setMap(map);\n if (onLoad) {\n onLoad(transitLayer);\n }\n return () => {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar TransitLayerF = memo(TransitLayerFunctional);\nclass TransitLayer extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", {\n transitLayer: null\n });\n _defineProperty(this, \"setTransitLayerCallback\", () => {\n if (this.state.transitLayer !== null) {\n this.state.transitLayer.setMap(this.context);\n if (this.props.onLoad) {\n this.props.onLoad(this.state.transitLayer);\n }\n }\n });\n }\n componentDidMount() {\n var transitLayer = new google.maps.TransitLayer();\n this.setState(function setTransitLayer() {\n return {\n transitLayer\n };\n }, this.setTransitLayerCallback);\n }\n componentWillUnmount() {\n if (this.state.transitLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.transitLayer);\n }\n this.state.transitLayer.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(TransitLayer, \"contextType\", MapContext);\n\nfunction ownKeys$e(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$g = {\n onCircleComplete: 'circlecomplete',\n onMarkerComplete: 'markercomplete',\n onOverlayComplete: 'overlaycomplete',\n onPolygonComplete: 'polygoncomplete',\n onPolylineComplete: 'polylinecomplete',\n onRectangleComplete: 'rectanglecomplete'\n};\nvar updaterMap$g = {\n drawingMode(instance, drawingMode) {\n instance.setDrawingMode(drawingMode);\n },\n options(instance, options) {\n instance.setOptions(options);\n }\n};\nfunction DrawingManagerFunctional(_ref) {\n var {\n options,\n drawingMode,\n onCircleComplete,\n onMarkerComplete,\n onOverlayComplete,\n onPolygonComplete,\n onPolylineComplete,\n onRectangleComplete,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [circlecompleteListener, setCircleCompleteListener] = useState(null);\n var [markercompleteListener, setMarkerCompleteListener] = useState(null);\n var [overlaycompleteListener, setOverlayCompleteListener] = useState(null);\n var [polygoncompleteListener, setPolygonCompleteListener] = useState(null);\n var [polylinecompleteListener, setPolylineCompleteListener] = useState(null);\n var [rectanglecompleteListener, setRectangleCompleteListener] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n if (instance !== null) {\n instance.setDrawingMode(drawingMode !== null && drawingMode !== void 0 ? drawingMode : null);\n }\n }, [instance, drawingMode]);\n useEffect(() => {\n if (instance && onCircleComplete) {\n if (circlecompleteListener !== null) {\n google.maps.event.removeListener(circlecompleteListener);\n }\n setCircleCompleteListener(google.maps.event.addListener(instance, 'circlecomplete', onCircleComplete));\n }\n }, [instance, onCircleComplete]);\n useEffect(() => {\n if (instance && onMarkerComplete) {\n if (markercompleteListener !== null) {\n google.maps.event.removeListener(markercompleteListener);\n }\n setMarkerCompleteListener(google.maps.event.addListener(instance, 'markercomplete', onMarkerComplete));\n }\n }, [instance, onMarkerComplete]);\n useEffect(() => {\n if (instance && onOverlayComplete) {\n if (overlaycompleteListener !== null) {\n google.maps.event.removeListener(overlaycompleteListener);\n }\n setOverlayCompleteListener(google.maps.event.addListener(instance, 'overlaycomplete', onOverlayComplete));\n }\n }, [instance, onOverlayComplete]);\n useEffect(() => {\n if (instance && onPolygonComplete) {\n if (polygoncompleteListener !== null) {\n google.maps.event.removeListener(polygoncompleteListener);\n }\n setPolygonCompleteListener(google.maps.event.addListener(instance, 'polygoncomplete', onPolygonComplete));\n }\n }, [instance, onPolygonComplete]);\n useEffect(() => {\n if (instance && onPolylineComplete) {\n if (polylinecompleteListener !== null) {\n google.maps.event.removeListener(polylinecompleteListener);\n }\n setPolylineCompleteListener(google.maps.event.addListener(instance, 'polylinecomplete', onPolylineComplete));\n }\n }, [instance, onPolylineComplete]);\n useEffect(() => {\n if (instance && onRectangleComplete) {\n if (rectanglecompleteListener !== null) {\n google.maps.event.removeListener(rectanglecompleteListener);\n }\n setRectangleCompleteListener(google.maps.event.addListener(instance, 'rectanglecomplete', onRectangleComplete));\n }\n }, [instance, onRectangleComplete]);\n useEffect(() => {\n invariant(!!google.maps.drawing, \"Did you include prop libraries={['drawing']} in the URL? %s\", google.maps.drawing);\n var drawingManager = new google.maps.drawing.DrawingManager(_objectSpread$e(_objectSpread$e({}, options), {}, {\n map\n }));\n if (drawingMode) {\n drawingManager.setDrawingMode(drawingMode);\n }\n if (onCircleComplete) {\n setCircleCompleteListener(google.maps.event.addListener(drawingManager, 'circlecomplete', onCircleComplete));\n }\n if (onMarkerComplete) {\n setMarkerCompleteListener(google.maps.event.addListener(drawingManager, 'markercomplete', onMarkerComplete));\n }\n if (onOverlayComplete) {\n setOverlayCompleteListener(google.maps.event.addListener(drawingManager, 'overlaycomplete', onOverlayComplete));\n }\n if (onPolygonComplete) {\n setPolygonCompleteListener(google.maps.event.addListener(drawingManager, 'polygoncomplete', onPolygonComplete));\n }\n if (onPolylineComplete) {\n setPolylineCompleteListener(google.maps.event.addListener(drawingManager, 'polylinecomplete', onPolylineComplete));\n }\n if (onRectangleComplete) {\n setRectangleCompleteListener(google.maps.event.addListener(drawingManager, 'rectanglecomplete', onRectangleComplete));\n }\n setInstance(drawingManager);\n if (onLoad) {\n onLoad(drawingManager);\n }\n return () => {\n if (instance !== null) {\n if (circlecompleteListener) {\n google.maps.event.removeListener(circlecompleteListener);\n }\n if (markercompleteListener) {\n google.maps.event.removeListener(markercompleteListener);\n }\n if (overlaycompleteListener) {\n google.maps.event.removeListener(overlaycompleteListener);\n }\n if (polygoncompleteListener) {\n google.maps.event.removeListener(polygoncompleteListener);\n }\n if (polylinecompleteListener) {\n google.maps.event.removeListener(polylinecompleteListener);\n }\n if (rectanglecompleteListener) {\n google.maps.event.removeListener(rectanglecompleteListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar DrawingManagerF = memo(DrawingManagerFunctional);\nclass DrawingManager extends PureComponent {\n constructor(props) {\n super(props);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n drawingManager: null\n });\n _defineProperty(this, \"setDrawingManagerCallback\", () => {\n if (this.state.drawingManager !== null && this.props.onLoad) {\n this.props.onLoad(this.state.drawingManager);\n }\n });\n invariant(!!google.maps.drawing, \"Did you include prop libraries={['drawing']} in the URL? %s\", google.maps.drawing);\n }\n componentDidMount() {\n var drawingManager = new google.maps.drawing.DrawingManager(_objectSpread$e(_objectSpread$e({}, this.props.options), {}, {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$g,\n eventMap: eventMap$g,\n prevProps: {},\n nextProps: this.props,\n instance: drawingManager\n });\n this.setState(function setDrawingManager() {\n return {\n drawingManager\n };\n }, this.setDrawingManagerCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.drawingManager !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$g,\n eventMap: eventMap$g,\n prevProps,\n nextProps: this.props,\n instance: this.state.drawingManager\n });\n }\n }\n componentWillUnmount() {\n if (this.state.drawingManager !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.drawingManager);\n }\n unregisterEvents(this.registeredEvents);\n this.state.drawingManager.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(DrawingManager, \"contextType\", MapContext);\n\nfunction ownKeys$d(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$f = {\n onAnimationChanged: 'animation_changed',\n onClick: 'click',\n onClickableChanged: 'clickable_changed',\n onCursorChanged: 'cursor_changed',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDraggableChanged: 'draggable_changed',\n onDragStart: 'dragstart',\n onFlatChanged: 'flat_changed',\n onIconChanged: 'icon_changed',\n onMouseDown: 'mousedown',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onPositionChanged: 'position_changed',\n onRightClick: 'rightclick',\n onShapeChanged: 'shape_changed',\n onTitleChanged: 'title_changed',\n onVisibleChanged: 'visible_changed',\n onZindexChanged: 'zindex_changed'\n};\nvar updaterMap$f = {\n animation(instance, animation) {\n instance.setAnimation(animation);\n },\n clickable(instance, clickable) {\n instance.setClickable(clickable);\n },\n cursor(instance, cursor) {\n instance.setCursor(cursor);\n },\n draggable(instance, draggable) {\n instance.setDraggable(draggable);\n },\n icon(instance, icon) {\n instance.setIcon(icon);\n },\n label(instance, label) {\n instance.setLabel(label);\n },\n map(instance, map) {\n instance.setMap(map);\n },\n opacity(instance, opacity) {\n instance.setOpacity(opacity);\n },\n options(instance, options) {\n instance.setOptions(options);\n },\n position(instance, position) {\n instance.setPosition(position);\n },\n shape(instance, shape) {\n instance.setShape(shape);\n },\n title(instance, title) {\n instance.setTitle(title);\n },\n visible(instance, visible) {\n instance.setVisible(visible);\n },\n zIndex(instance, zIndex) {\n instance.setZIndex(zIndex);\n }\n};\nvar defaultOptions$5 = {};\nfunction MarkerFunctional(_ref) {\n var {\n position,\n options,\n clusterer,\n noClustererRedraw,\n children,\n draggable,\n visible,\n animation,\n clickable,\n cursor,\n icon,\n label,\n opacity,\n shape,\n title,\n zIndex,\n onClick,\n onDblClick,\n onDrag,\n onDragEnd,\n onDragStart,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n onMouseDown,\n onRightClick,\n onClickableChanged,\n onCursorChanged,\n onAnimationChanged,\n onDraggableChanged,\n onFlatChanged,\n onIconChanged,\n onPositionChanged,\n onShapeChanged,\n onTitleChanged,\n onVisibleChanged,\n onZindexChanged,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [dblclickListener, setDblclickListener] = useState(null);\n var [dragendListener, setDragendListener] = useState(null);\n var [dragstartListener, setDragstartListener] = useState(null);\n var [mousedownListener, setMousedownListener] = useState(null);\n var [mouseoutListener, setMouseoutListener] = useState(null);\n var [mouseoverListener, setMouseoverListener] = useState(null);\n var [mouseupListener, setMouseupListener] = useState(null);\n var [rightclickListener, setRightclickListener] = useState(null);\n var [clickListener, setClickListener] = useState(null);\n var [dragListener, setDragListener] = useState(null);\n var [clickableChangedListener, setClickableChangedListener] = useState(null);\n var [cursorChangedListener, setCursorChangedListener] = useState(null);\n var [animationChangedListener, setAnimationChangedListener] = useState(null);\n var [draggableChangedListener, setDraggableChangedListener] = useState(null);\n var [flatChangedListener, setFlatChangedListener] = useState(null);\n var [iconChangedListener, setIconChangedListener] = useState(null);\n var [positionChangedListener, setPositionChangedListener] = useState(null);\n var [shapeChangedListener, setShapeChangedListener] = useState(null);\n var [titleChangedListener, setTitleChangedListener] = useState(null);\n var [visibleChangedListener, setVisibleChangedListener] = useState(null);\n var [zIndexChangedListener, setZindexChangedListener] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(() => {\n if (position && instance !== null) {\n instance.setPosition(position);\n }\n }, [instance, position]);\n useEffect(() => {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(() => {\n instance === null || instance === void 0 || instance.setAnimation(animation);\n }, [instance, animation]);\n useEffect(() => {\n if (instance && clickable !== undefined) {\n instance.setClickable(clickable);\n }\n }, [instance, clickable]);\n useEffect(() => {\n if (instance && cursor !== undefined) {\n instance.setCursor(cursor);\n }\n }, [instance, cursor]);\n useEffect(() => {\n if (instance && icon !== undefined) {\n instance.setIcon(icon);\n }\n }, [instance, icon]);\n useEffect(() => {\n if (instance && label !== undefined) {\n instance.setLabel(label);\n }\n }, [instance, label]);\n useEffect(() => {\n if (instance && opacity !== undefined) {\n instance.setOpacity(opacity);\n }\n }, [instance, opacity]);\n useEffect(() => {\n if (instance && shape !== undefined) {\n instance.setShape(shape);\n }\n }, [instance, shape]);\n useEffect(() => {\n if (instance && title !== undefined) {\n instance.setTitle(title);\n }\n }, [instance, title]);\n useEffect(() => {\n if (instance && zIndex !== undefined) {\n instance.setZIndex(zIndex);\n }\n }, [instance, zIndex]);\n useEffect(() => {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(() => {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(() => {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(() => {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(() => {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(() => {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(() => {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(() => {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(() => {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(() => {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(() => {\n if (instance && onClickableChanged) {\n if (clickableChangedListener !== null) {\n google.maps.event.removeListener(clickableChangedListener);\n }\n setClickableChangedListener(google.maps.event.addListener(instance, 'clickable_changed', onClickableChanged));\n }\n }, [onClickableChanged]);\n useEffect(() => {\n if (instance && onCursorChanged) {\n if (cursorChangedListener !== null) {\n google.maps.event.removeListener(cursorChangedListener);\n }\n setCursorChangedListener(google.maps.event.addListener(instance, 'cursor_changed', onCursorChanged));\n }\n }, [onCursorChanged]);\n useEffect(() => {\n if (instance && onAnimationChanged) {\n if (animationChangedListener !== null) {\n google.maps.event.removeListener(animationChangedListener);\n }\n setAnimationChangedListener(google.maps.event.addListener(instance, 'animation_changed', onAnimationChanged));\n }\n }, [onAnimationChanged]);\n useEffect(() => {\n if (instance && onDraggableChanged) {\n if (draggableChangedListener !== null) {\n google.maps.event.removeListener(draggableChangedListener);\n }\n setDraggableChangedListener(google.maps.event.addListener(instance, 'draggable_changed', onDraggableChanged));\n }\n }, [onDraggableChanged]);\n useEffect(() => {\n if (instance && onFlatChanged) {\n if (flatChangedListener !== null) {\n google.maps.event.removeListener(flatChangedListener);\n }\n setFlatChangedListener(google.maps.event.addListener(instance, 'flat_changed', onFlatChanged));\n }\n }, [onFlatChanged]);\n useEffect(() => {\n if (instance && onIconChanged) {\n if (iconChangedListener !== null) {\n google.maps.event.removeListener(iconChangedListener);\n }\n setIconChangedListener(google.maps.event.addListener(instance, 'icon_changed', onIconChanged));\n }\n }, [onIconChanged]);\n useEffect(() => {\n if (instance && onPositionChanged) {\n if (positionChangedListener !== null) {\n google.maps.event.removeListener(positionChangedListener);\n }\n setPositionChangedListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(() => {\n if (instance && onShapeChanged) {\n if (shapeChangedListener !== null) {\n google.maps.event.removeListener(shapeChangedListener);\n }\n setShapeChangedListener(google.maps.event.addListener(instance, 'shape_changed', onShapeChanged));\n }\n }, [onShapeChanged]);\n useEffect(() => {\n if (instance && onTitleChanged) {\n if (titleChangedListener !== null) {\n google.maps.event.removeListener(titleChangedListener);\n }\n setTitleChangedListener(google.maps.event.addListener(instance, 'title_changed', onTitleChanged));\n }\n }, [onTitleChanged]);\n useEffect(() => {\n if (instance && onVisibleChanged) {\n if (visibleChangedListener !== null) {\n google.maps.event.removeListener(visibleChangedListener);\n }\n setVisibleChangedListener(google.maps.event.addListener(instance, 'visible_changed', onVisibleChanged));\n }\n }, [onVisibleChanged]);\n useEffect(() => {\n if (instance && onZindexChanged) {\n if (zIndexChangedListener !== null) {\n google.maps.event.removeListener(zIndexChangedListener);\n }\n setZindexChangedListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(() => {\n var markerOptions = _objectSpread$d(_objectSpread$d(_objectSpread$d({}, options || defaultOptions$5), clusterer ? defaultOptions$5 : {\n map\n }), {}, {\n position\n });\n var marker = new google.maps.Marker(markerOptions);\n if (clusterer) {\n clusterer.addMarker(marker, !!noClustererRedraw);\n } else {\n marker.setMap(map);\n }\n if (position) {\n marker.setPosition(position);\n }\n if (typeof visible !== 'undefined') {\n marker.setVisible(visible);\n }\n if (typeof draggable !== 'undefined') {\n marker.setDraggable(draggable);\n }\n if (typeof clickable !== 'undefined') {\n marker.setClickable(clickable);\n }\n if (typeof cursor === 'string') {\n marker.setCursor(cursor);\n }\n if (icon) {\n marker.setIcon(icon);\n }\n if (typeof label !== 'undefined') {\n marker.setLabel(label);\n }\n if (typeof opacity !== 'undefined') {\n marker.setOpacity(opacity);\n }\n if (shape) {\n marker.setShape(shape);\n }\n if (typeof title === 'string') {\n marker.setTitle(title);\n }\n if (typeof zIndex === 'number') {\n marker.setZIndex(zIndex);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(marker, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(marker, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(marker, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(marker, 'mousedown', onMouseDown));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(marker, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(marker, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(marker, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(marker, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(marker, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(marker, 'drag', onDrag));\n }\n if (onClickableChanged) {\n setClickableChangedListener(google.maps.event.addListener(marker, 'clickable_changed', onClickableChanged));\n }\n if (onCursorChanged) {\n setCursorChangedListener(google.maps.event.addListener(marker, 'cursor_changed', onCursorChanged));\n }\n if (onAnimationChanged) {\n setAnimationChangedListener(google.maps.event.addListener(marker, 'animation_changed', onAnimationChanged));\n }\n if (onDraggableChanged) {\n setDraggableChangedListener(google.maps.event.addListener(marker, 'draggable_changed', onDraggableChanged));\n }\n if (onFlatChanged) {\n setFlatChangedListener(google.maps.event.addListener(marker, 'flat_changed', onFlatChanged));\n }\n if (onIconChanged) {\n setIconChangedListener(google.maps.event.addListener(marker, 'icon_changed', onIconChanged));\n }\n if (onPositionChanged) {\n setPositionChangedListener(google.maps.event.addListener(marker, 'position_changed', onPositionChanged));\n }\n if (onShapeChanged) {\n setShapeChangedListener(google.maps.event.addListener(marker, 'shape_changed', onShapeChanged));\n }\n if (onTitleChanged) {\n setTitleChangedListener(google.maps.event.addListener(marker, 'title_changed', onTitleChanged));\n }\n if (onVisibleChanged) {\n setVisibleChangedListener(google.maps.event.addListener(marker, 'visible_changed', onVisibleChanged));\n }\n if (onZindexChanged) {\n setZindexChangedListener(google.maps.event.addListener(marker, 'zindex_changed', onZindexChanged));\n }\n setInstance(marker);\n if (onLoad) {\n onLoad(marker);\n }\n return () => {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (clickableChangedListener !== null) {\n google.maps.event.removeListener(clickableChangedListener);\n }\n if (cursorChangedListener !== null) {\n google.maps.event.removeListener(cursorChangedListener);\n }\n if (animationChangedListener !== null) {\n google.maps.event.removeListener(animationChangedListener);\n }\n if (draggableChangedListener !== null) {\n google.maps.event.removeListener(draggableChangedListener);\n }\n if (flatChangedListener !== null) {\n google.maps.event.removeListener(flatChangedListener);\n }\n if (iconChangedListener !== null) {\n google.maps.event.removeListener(iconChangedListener);\n }\n if (positionChangedListener !== null) {\n google.maps.event.removeListener(positionChangedListener);\n }\n if (titleChangedListener !== null) {\n google.maps.event.removeListener(titleChangedListener);\n }\n if (visibleChangedListener !== null) {\n google.maps.event.removeListener(visibleChangedListener);\n }\n if (zIndexChangedListener !== null) {\n google.maps.event.removeListener(zIndexChangedListener);\n }\n if (onUnmount) {\n onUnmount(marker);\n }\n if (clusterer) {\n clusterer.removeMarker(marker, !!noClustererRedraw);\n } else if (marker) {\n marker.setMap(null);\n }\n };\n }, []);\n var chx = useMemo(() => {\n return children ? Children.map(children, child => {\n if (!isValidElement(child)) {\n return child;\n }\n var elementChild = child;\n return cloneElement(elementChild, {\n anchor: instance\n });\n }) : null;\n }, [children, instance]);\n return jsx(Fragment, {\n children: chx\n }) || null;\n}\nvar MarkerF = memo(MarkerFunctional);\nclass Marker extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n }\n componentDidMount() {\n var _this = this;\n return _asyncToGenerator(function* () {\n var markerOptions = _objectSpread$d(_objectSpread$d(_objectSpread$d({}, _this.props.options || defaultOptions$5), _this.props.clusterer ? defaultOptions$5 : {\n map: _this.context\n }), {}, {\n position: _this.props.position\n });\n // Unfortunately we can't just do this in the contstructor, because the\n // `MapContext` might not be filled in yet.\n _this.marker = new google.maps.Marker(markerOptions);\n if (_this.props.clusterer) {\n _this.props.clusterer.addMarker(_this.marker, !!_this.props.noClustererRedraw);\n } else {\n _this.marker.setMap(_this.context);\n }\n _this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$f,\n eventMap: eventMap$f,\n prevProps: {},\n nextProps: _this.props,\n instance: _this.marker\n });\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.marker);\n }\n })();\n }\n componentDidUpdate(prevProps) {\n if (this.marker) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$f,\n eventMap: eventMap$f,\n prevProps,\n nextProps: this.props,\n instance: this.marker\n });\n }\n }\n componentWillUnmount() {\n if (!this.marker) {\n return;\n }\n if (this.props.onUnmount) {\n this.props.onUnmount(this.marker);\n }\n unregisterEvents(this.registeredEvents);\n if (this.props.clusterer) {\n this.props.clusterer.removeMarker(this.marker, !!this.props.noClustererRedraw);\n } else if (this.marker) {\n this.marker.setMap(null);\n }\n }\n render() {\n var children = this.props.children ? Children.map(this.props.children, child => {\n if (!isValidElement(child)) {\n return child;\n }\n var elementChild = child;\n return cloneElement(elementChild, {\n anchor: this.marker\n });\n }) : null;\n return children || null;\n }\n}\n_defineProperty(Marker, \"contextType\", MapContext);\n\nvar ClusterIcon = /** @class */function () {\n function ClusterIcon(cluster, styles) {\n cluster.getClusterer().extend(ClusterIcon, google.maps.OverlayView);\n this.cluster = cluster;\n this.clusterClassName = this.cluster.getClusterer().getClusterClass();\n this.className = this.clusterClassName;\n this.styles = styles;\n this.center = undefined;\n this.div = null;\n this.sums = null;\n this.visible = false;\n this.boundsChangedListener = null;\n this.url = '';\n this.height = 0;\n this.width = 0;\n this.anchorText = [0, 0];\n this.anchorIcon = [0, 0];\n this.textColor = 'black';\n this.textSize = 11;\n this.textDecoration = 'none';\n this.fontWeight = 'bold';\n this.fontStyle = 'normal';\n this.fontFamily = 'Arial,sans-serif';\n this.backgroundPosition = '0 0';\n this.cMouseDownInCluster = null;\n this.cDraggingMapByCluster = null;\n this.timeOut = null;\n this.setMap(cluster.getMap()); // Note: this causes onAdd to be called\n this.onBoundsChanged = this.onBoundsChanged.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onMouseOver = this.onMouseOver.bind(this);\n this.onMouseOut = this.onMouseOut.bind(this);\n this.onAdd = this.onAdd.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.draw = this.draw.bind(this);\n this.hide = this.hide.bind(this);\n this.show = this.show.bind(this);\n this.useStyle = this.useStyle.bind(this);\n this.setCenter = this.setCenter.bind(this);\n this.getPosFromLatLng = this.getPosFromLatLng.bind(this);\n }\n ClusterIcon.prototype.onBoundsChanged = function () {\n this.cDraggingMapByCluster = this.cMouseDownInCluster;\n };\n ClusterIcon.prototype.onMouseDown = function () {\n this.cMouseDownInCluster = true;\n this.cDraggingMapByCluster = false;\n };\n ClusterIcon.prototype.onClick = function (event) {\n this.cMouseDownInCluster = false;\n if (!this.cDraggingMapByCluster) {\n var markerClusterer_1 = this.cluster.getClusterer();\n /**\n * This event is fired when a cluster marker is clicked.\n * @name MarkerClusterer#click\n * @param {Cluster} c The cluster that was clicked.\n * @event\n */\n google.maps.event.trigger(markerClusterer_1, 'click', this.cluster);\n google.maps.event.trigger(markerClusterer_1, 'clusterclick', this.cluster); // deprecated name\n // The default click handler follows. Disable it by setting\n // the zoomOnClick property to false.\n if (markerClusterer_1.getZoomOnClick()) {\n // Zoom into the cluster.\n var maxZoom_1 = markerClusterer_1.getMaxZoom();\n var bounds_1 = this.cluster.getBounds();\n var map = markerClusterer_1.getMap();\n if (map !== null && 'fitBounds' in map) {\n map.fitBounds(bounds_1);\n }\n // There is a fix for Issue 170 here:\n this.timeOut = window.setTimeout(function () {\n var map = markerClusterer_1.getMap();\n if (map !== null) {\n if ('fitBounds' in map) {\n map.fitBounds(bounds_1);\n }\n var zoom = map.getZoom() || 0;\n // Don't zoom beyond the max zoom level\n if (maxZoom_1 !== null && zoom > maxZoom_1) {\n map.setZoom(maxZoom_1 + 1);\n }\n }\n }, 100);\n }\n // Prevent event propagation to the map:\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n };\n ClusterIcon.prototype.onMouseOver = function () {\n /**\n * This event is fired when the mouse moves over a cluster marker.\n * @name MarkerClusterer#mouseover\n * @param {Cluster} c The cluster that the mouse moved over.\n * @event\n */\n google.maps.event.trigger(this.cluster.getClusterer(), 'mouseover', this.cluster);\n };\n ClusterIcon.prototype.onMouseOut = function () {\n /**\n * This event is fired when the mouse moves out of a cluster marker.\n * @name MarkerClusterer#mouseout\n * @param {Cluster} c The cluster that the mouse moved out of.\n * @event\n */\n google.maps.event.trigger(this.cluster.getClusterer(), 'mouseout', this.cluster);\n };\n ClusterIcon.prototype.onAdd = function () {\n var _a;\n this.div = document.createElement('div');\n this.div.className = this.className;\n if (this.visible) {\n this.show();\n }\n (_a = this.getPanes()) === null || _a === void 0 ? void 0 : _a.overlayMouseTarget.appendChild(this.div);\n var map = this.getMap();\n if (map !== null) {\n // Fix for Issue 157\n this.boundsChangedListener = google.maps.event.addListener(map, 'bounds_changed', this.onBoundsChanged);\n this.div.addEventListener('mousedown', this.onMouseDown);\n this.div.addEventListener('click', this.onClick);\n this.div.addEventListener('mouseover', this.onMouseOver);\n this.div.addEventListener('mouseout', this.onMouseOut);\n }\n };\n ClusterIcon.prototype.onRemove = function () {\n if (this.div && this.div.parentNode) {\n this.hide();\n if (this.boundsChangedListener !== null) {\n google.maps.event.removeListener(this.boundsChangedListener);\n }\n this.div.removeEventListener('mousedown', this.onMouseDown);\n this.div.removeEventListener('click', this.onClick);\n this.div.removeEventListener('mouseover', this.onMouseOver);\n this.div.removeEventListener('mouseout', this.onMouseOut);\n this.div.parentNode.removeChild(this.div);\n if (this.timeOut !== null) {\n window.clearTimeout(this.timeOut);\n this.timeOut = null;\n }\n this.div = null;\n }\n };\n ClusterIcon.prototype.draw = function () {\n if (this.visible && this.div !== null && this.center) {\n var pos = this.getPosFromLatLng(this.center);\n this.div.style.top = pos !== null ? \"\".concat(pos.y, \"px\") : '0';\n this.div.style.left = pos !== null ? \"\".concat(pos.x, \"px\") : '0';\n }\n };\n ClusterIcon.prototype.hide = function () {\n if (this.div) {\n this.div.style.display = 'none';\n }\n this.visible = false;\n };\n ClusterIcon.prototype.show = function () {\n var _a, _b, _c, _d, _e, _f;\n if (this.div && this.center) {\n var divTitle = this.sums === null || typeof this.sums.title === 'undefined' || this.sums.title === '' ? this.cluster.getClusterer().getTitle() : this.sums.title;\n // NOTE: values must be specified in px units\n var bp = this.backgroundPosition.split(' ');\n var spriteH = parseInt(((_a = bp[0]) === null || _a === void 0 ? void 0 : _a.replace(/^\\s+|\\s+$/g, '')) || '0', 10);\n var spriteV = parseInt(((_b = bp[1]) === null || _b === void 0 ? void 0 : _b.replace(/^\\s+|\\s+$/g, '')) || '0', 10);\n var pos = this.getPosFromLatLng(this.center);\n this.div.className = this.className;\n this.div.setAttribute('style', \"cursor: pointer; position: absolute; top: \".concat(pos !== null ? \"\".concat(pos.y, \"px\") : '0', \"; left: \").concat(pos !== null ? \"\".concat(pos.x, \"px\") : '0', \"; width: \").concat(this.width, \"px; height: \").concat(this.height, \"px; \"));\n var img = document.createElement('img');\n img.alt = divTitle;\n img.src = this.url;\n img.width = this.width;\n img.height = this.height;\n img.setAttribute('style', \"position: absolute; top: \".concat(spriteV, \"px; left: \").concat(spriteH, \"px\"));\n if (!this.cluster.getClusterer().enableRetinaIcons) {\n img.style.clip = \"rect(-\".concat(spriteV, \"px, -\").concat(spriteH + this.width, \"px, -\").concat(spriteV + this.height, \", -\").concat(spriteH, \")\");\n }\n var textElm = document.createElement('div');\n textElm.setAttribute('style', \"position: absolute; top: \".concat(this.anchorText[0], \"px; left: \").concat(this.anchorText[1], \"px; color: \").concat(this.textColor, \"; font-size: \").concat(this.textSize, \"px; font-family: \").concat(this.fontFamily, \"; font-weight: \").concat(this.fontWeight, \"; fontStyle: \").concat(this.fontStyle, \"; text-decoration: \").concat(this.textDecoration, \"; text-align: center; width: \").concat(this.width, \"px; line-height: \").concat(this.height, \"px\"));\n if ((_c = this.sums) === null || _c === void 0 ? void 0 : _c.text) textElm.innerText = \"\".concat((_d = this.sums) === null || _d === void 0 ? void 0 : _d.text);\n if ((_e = this.sums) === null || _e === void 0 ? void 0 : _e.html) textElm.innerHTML = \"\".concat((_f = this.sums) === null || _f === void 0 ? void 0 : _f.html);\n this.div.innerHTML = '';\n this.div.appendChild(img);\n this.div.appendChild(textElm);\n this.div.title = divTitle;\n this.div.style.display = '';\n }\n this.visible = true;\n };\n ClusterIcon.prototype.useStyle = function (sums) {\n this.sums = sums;\n var styles = this.cluster.getClusterer().getStyles();\n var style = styles[Math.min(styles.length - 1, Math.max(0, sums.index - 1))];\n if (style) {\n this.url = style.url;\n this.height = style.height;\n this.width = style.width;\n if (style.className) {\n this.className = \"\".concat(this.clusterClassName, \" \").concat(style.className);\n }\n this.anchorText = style.anchorText || [0, 0];\n this.anchorIcon = style.anchorIcon || [this.height / 2, this.width / 2];\n this.textColor = style.textColor || 'black';\n this.textSize = style.textSize || 11;\n this.textDecoration = style.textDecoration || 'none';\n this.fontWeight = style.fontWeight || 'bold';\n this.fontStyle = style.fontStyle || 'normal';\n this.fontFamily = style.fontFamily || 'Arial,sans-serif';\n this.backgroundPosition = style.backgroundPosition || '0 0';\n }\n };\n ClusterIcon.prototype.setCenter = function (center) {\n this.center = center;\n };\n ClusterIcon.prototype.getPosFromLatLng = function (latlng) {\n var pos = this.getProjection().fromLatLngToDivPixel(latlng);\n if (pos !== null) {\n pos.x -= this.anchorIcon[1];\n pos.y -= this.anchorIcon[0];\n }\n return pos;\n };\n return ClusterIcon;\n}();\n\n/* global google */\nvar Cluster$1 = /** @class */function () {\n function Cluster(markerClusterer) {\n this.markerClusterer = markerClusterer;\n this.map = this.markerClusterer.getMap();\n this.gridSize = this.markerClusterer.getGridSize();\n this.minClusterSize = this.markerClusterer.getMinimumClusterSize();\n this.averageCenter = this.markerClusterer.getAverageCenter();\n this.markers = [];\n this.center = undefined;\n this.bounds = null;\n this.clusterIcon = new ClusterIcon(this, this.markerClusterer.getStyles());\n this.getSize = this.getSize.bind(this);\n this.getMarkers = this.getMarkers.bind(this);\n this.getCenter = this.getCenter.bind(this);\n this.getMap = this.getMap.bind(this);\n this.getClusterer = this.getClusterer.bind(this);\n this.getBounds = this.getBounds.bind(this);\n this.remove = this.remove.bind(this);\n this.addMarker = this.addMarker.bind(this);\n this.isMarkerInClusterBounds = this.isMarkerInClusterBounds.bind(this);\n this.calculateBounds = this.calculateBounds.bind(this);\n this.updateIcon = this.updateIcon.bind(this);\n this.isMarkerAlreadyAdded = this.isMarkerAlreadyAdded.bind(this);\n }\n Cluster.prototype.getSize = function () {\n return this.markers.length;\n };\n Cluster.prototype.getMarkers = function () {\n return this.markers;\n };\n Cluster.prototype.getCenter = function () {\n return this.center;\n };\n Cluster.prototype.getMap = function () {\n return this.map;\n };\n Cluster.prototype.getClusterer = function () {\n return this.markerClusterer;\n };\n Cluster.prototype.getBounds = function () {\n var bounds = new google.maps.LatLngBounds(this.center, this.center);\n var markers = this.getMarkers();\n for (var _i = 0, markers_1 = markers; _i < markers_1.length; _i++) {\n var marker = markers_1[_i];\n var position = marker.getPosition();\n if (position) {\n bounds.extend(position);\n }\n }\n return bounds;\n };\n Cluster.prototype.remove = function () {\n this.clusterIcon.setMap(null);\n this.markers = [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete this.markers;\n };\n Cluster.prototype.addMarker = function (marker) {\n var _a;\n if (this.isMarkerAlreadyAdded(marker)) {\n return false;\n }\n if (!this.center) {\n var position = marker.getPosition();\n if (position) {\n this.center = position;\n this.calculateBounds();\n }\n } else {\n if (this.averageCenter) {\n var position = marker.getPosition();\n if (position) {\n var length_1 = this.markers.length + 1;\n this.center = new google.maps.LatLng((this.center.lat() * (length_1 - 1) + position.lat()) / length_1, (this.center.lng() * (length_1 - 1) + position.lng()) / length_1);\n this.calculateBounds();\n }\n }\n }\n marker.isAdded = true;\n this.markers.push(marker);\n var mCount = this.markers.length;\n var maxZoom = this.markerClusterer.getMaxZoom();\n var zoom = (_a = this.map) === null || _a === void 0 ? void 0 : _a.getZoom();\n if (maxZoom !== null && typeof zoom !== 'undefined' && zoom > maxZoom) {\n // Zoomed in past max zoom, so show the marker.\n if (marker.getMap() !== this.map) {\n marker.setMap(this.map);\n }\n } else if (mCount < this.minClusterSize) {\n // Min cluster size not reached so show the marker.\n if (marker.getMap() !== this.map) {\n marker.setMap(this.map);\n }\n } else if (mCount === this.minClusterSize) {\n // Hide the markers that were showing.\n for (var _i = 0, _b = this.markers; _i < _b.length; _i++) {\n var markerElement = _b[_i];\n markerElement.setMap(null);\n }\n } else {\n marker.setMap(null);\n }\n return true;\n };\n Cluster.prototype.isMarkerInClusterBounds = function (marker) {\n if (this.bounds !== null) {\n var position = marker.getPosition();\n if (position) {\n return this.bounds.contains(position);\n }\n }\n return false;\n };\n Cluster.prototype.calculateBounds = function () {\n this.bounds = this.markerClusterer.getExtendedBounds(new google.maps.LatLngBounds(this.center, this.center));\n };\n Cluster.prototype.updateIcon = function () {\n var _a;\n var mCount = this.markers.length;\n var maxZoom = this.markerClusterer.getMaxZoom();\n var zoom = (_a = this.map) === null || _a === void 0 ? void 0 : _a.getZoom();\n if (maxZoom !== null && typeof zoom !== 'undefined' && zoom > maxZoom) {\n this.clusterIcon.hide();\n return;\n }\n if (mCount < this.minClusterSize) {\n // Min cluster size not yet reached.\n this.clusterIcon.hide();\n return;\n }\n if (this.center) {\n this.clusterIcon.setCenter(this.center);\n }\n this.clusterIcon.useStyle(this.markerClusterer.getCalculator()(this.markers, this.markerClusterer.getStyles().length));\n this.clusterIcon.show();\n };\n Cluster.prototype.isMarkerAlreadyAdded = function (marker) {\n if (this.markers.includes) {\n return this.markers.includes(marker);\n }\n for (var i = 0; i < this.markers.length; i++) {\n if (marker === this.markers[i]) {\n return true;\n }\n }\n return false;\n };\n return Cluster;\n}();\n\n/* global google */\n/* eslint-disable filenames/match-regex */\n/**\n * Supports up to 9007199254740991 (Number.MAX_SAFE_INTEGER) markers\n * which is not a problem as max array length is 4294967296 (2**32)\n */\nfunction CALCULATOR(markers, numStyles) {\n var count = markers.length;\n var numberOfDigits = count.toString().length;\n var index = Math.min(numberOfDigits, numStyles);\n return {\n text: count.toString(),\n index: index,\n title: ''\n };\n}\nvar BATCH_SIZE = 2000;\nvar BATCH_SIZE_IE = 500;\nvar IMAGE_PATH = 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m';\nvar IMAGE_EXTENSION = 'png';\nvar IMAGE_SIZES = [53, 56, 66, 78, 90];\nvar CLUSTERER_CLASS = 'cluster';\nvar Clusterer = /** @class */function () {\n function Clusterer(map, optMarkers, optOptions) {\n if (optMarkers === void 0) {\n optMarkers = [];\n }\n if (optOptions === void 0) {\n optOptions = {};\n }\n this.getMinimumClusterSize = this.getMinimumClusterSize.bind(this);\n this.setMinimumClusterSize = this.setMinimumClusterSize.bind(this);\n this.getEnableRetinaIcons = this.getEnableRetinaIcons.bind(this);\n this.setEnableRetinaIcons = this.setEnableRetinaIcons.bind(this);\n this.addToClosestCluster = this.addToClosestCluster.bind(this);\n this.getImageExtension = this.getImageExtension.bind(this);\n this.setImageExtension = this.setImageExtension.bind(this);\n this.getExtendedBounds = this.getExtendedBounds.bind(this);\n this.getAverageCenter = this.getAverageCenter.bind(this);\n this.setAverageCenter = this.setAverageCenter.bind(this);\n this.getTotalClusters = this.getTotalClusters.bind(this);\n this.fitMapToMarkers = this.fitMapToMarkers.bind(this);\n this.getIgnoreHidden = this.getIgnoreHidden.bind(this);\n this.setIgnoreHidden = this.setIgnoreHidden.bind(this);\n this.getClusterClass = this.getClusterClass.bind(this);\n this.setClusterClass = this.setClusterClass.bind(this);\n this.getTotalMarkers = this.getTotalMarkers.bind(this);\n this.getZoomOnClick = this.getZoomOnClick.bind(this);\n this.setZoomOnClick = this.setZoomOnClick.bind(this);\n this.getBatchSizeIE = this.getBatchSizeIE.bind(this);\n this.setBatchSizeIE = this.setBatchSizeIE.bind(this);\n this.createClusters = this.createClusters.bind(this);\n this.onZoomChanged = this.onZoomChanged.bind(this);\n this.getImageSizes = this.getImageSizes.bind(this);\n this.setImageSizes = this.setImageSizes.bind(this);\n this.getCalculator = this.getCalculator.bind(this);\n this.setCalculator = this.setCalculator.bind(this);\n this.removeMarkers = this.removeMarkers.bind(this);\n this.resetViewport = this.resetViewport.bind(this);\n this.getImagePath = this.getImagePath.bind(this);\n this.setImagePath = this.setImagePath.bind(this);\n this.pushMarkerTo = this.pushMarkerTo.bind(this);\n this.removeMarker = this.removeMarker.bind(this);\n this.clearMarkers = this.clearMarkers.bind(this);\n this.setupStyles = this.setupStyles.bind(this);\n this.getGridSize = this.getGridSize.bind(this);\n this.setGridSize = this.setGridSize.bind(this);\n this.getClusters = this.getClusters.bind(this);\n this.getMaxZoom = this.getMaxZoom.bind(this);\n this.setMaxZoom = this.setMaxZoom.bind(this);\n this.getMarkers = this.getMarkers.bind(this);\n this.addMarkers = this.addMarkers.bind(this);\n this.getStyles = this.getStyles.bind(this);\n this.setStyles = this.setStyles.bind(this);\n this.addMarker = this.addMarker.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.getTitle = this.getTitle.bind(this);\n this.setTitle = this.setTitle.bind(this);\n this.repaint = this.repaint.bind(this);\n this.onIdle = this.onIdle.bind(this);\n this.redraw = this.redraw.bind(this);\n this.onAdd = this.onAdd.bind(this);\n this.draw = this.draw.bind(this);\n this.extend = this.extend.bind(this);\n this.extend(Clusterer, google.maps.OverlayView);\n this.markers = [];\n this.clusters = [];\n this.listeners = [];\n this.activeMap = null;\n this.ready = false;\n this.gridSize = optOptions.gridSize || 60;\n this.minClusterSize = optOptions.minimumClusterSize || 2;\n this.maxZoom = optOptions.maxZoom || null;\n this.styles = optOptions.styles || [];\n this.title = optOptions.title || '';\n this.zoomOnClick = true;\n if (optOptions.zoomOnClick !== undefined) {\n this.zoomOnClick = optOptions.zoomOnClick;\n }\n this.averageCenter = false;\n if (optOptions.averageCenter !== undefined) {\n this.averageCenter = optOptions.averageCenter;\n }\n this.ignoreHidden = false;\n if (optOptions.ignoreHidden !== undefined) {\n this.ignoreHidden = optOptions.ignoreHidden;\n }\n this.enableRetinaIcons = false;\n if (optOptions.enableRetinaIcons !== undefined) {\n this.enableRetinaIcons = optOptions.enableRetinaIcons;\n }\n this.imagePath = optOptions.imagePath || IMAGE_PATH;\n this.imageExtension = optOptions.imageExtension || IMAGE_EXTENSION;\n this.imageSizes = optOptions.imageSizes || IMAGE_SIZES;\n this.calculator = optOptions.calculator || CALCULATOR;\n this.batchSize = optOptions.batchSize || BATCH_SIZE;\n this.batchSizeIE = optOptions.batchSizeIE || BATCH_SIZE_IE;\n this.clusterClass = optOptions.clusterClass || CLUSTERER_CLASS;\n if (navigator.userAgent.toLowerCase().indexOf('msie') !== -1) {\n // Try to avoid IE timeout when processing a huge number of markers:\n this.batchSize = this.batchSizeIE;\n }\n this.timerRefStatic = null;\n this.setupStyles();\n this.addMarkers(optMarkers, true);\n this.setMap(map); // Note: this causes onAdd to be called\n }\n Clusterer.prototype.onZoomChanged = function () {\n var _a, _b;\n this.resetViewport(false);\n // Workaround for this Google bug: when map is at level 0 and \"-\" of\n // zoom slider is clicked, a \"zoom_changed\" event is fired even though\n // the map doesn't zoom out any further. In this situation, no \"idle\"\n // event is triggered so the cluster markers that have been removed\n // do not get redrawn. Same goes for a zoom in at maxZoom.\n if (((_a = this.getMap()) === null || _a === void 0 ? void 0 : _a.getZoom()) === (this.get('minZoom') || 0) || ((_b = this.getMap()) === null || _b === void 0 ? void 0 : _b.getZoom()) === this.get('maxZoom')) {\n google.maps.event.trigger(this, 'idle');\n }\n };\n Clusterer.prototype.onIdle = function () {\n this.redraw();\n };\n Clusterer.prototype.onAdd = function () {\n var map = this.getMap();\n this.activeMap = map;\n this.ready = true;\n this.repaint();\n if (map !== null) {\n // Add the map event listeners\n this.listeners = [google.maps.event.addListener(map, 'zoom_changed', this.onZoomChanged), google.maps.event.addListener(map, 'idle', this.onIdle)];\n }\n };\n Clusterer.prototype.onRemove = function () {\n // Put all the managed markers back on the map:\n for (var _i = 0, _a = this.markers; _i < _a.length; _i++) {\n var marker = _a[_i];\n if (marker.getMap() !== this.activeMap) {\n marker.setMap(this.activeMap);\n }\n }\n // Remove all clusters:\n for (var _b = 0, _c = this.clusters; _b < _c.length; _b++) {\n var cluster = _c[_b];\n cluster.remove();\n }\n this.clusters = [];\n // Remove map event listeners:\n for (var _d = 0, _e = this.listeners; _d < _e.length; _d++) {\n var listener = _e[_d];\n google.maps.event.removeListener(listener);\n }\n this.listeners = [];\n this.activeMap = null;\n this.ready = false;\n };\n Clusterer.prototype.draw = function () {\n return;\n };\n Clusterer.prototype.getMap = function () {\n return null;\n };\n Clusterer.prototype.getPanes = function () {\n return null;\n };\n Clusterer.prototype.getProjection = function () {\n return {\n fromContainerPixelToLatLng: function fromContainerPixelToLatLng() {\n return null;\n },\n fromDivPixelToLatLng: function fromDivPixelToLatLng() {\n return null;\n },\n fromLatLngToContainerPixel: function fromLatLngToContainerPixel() {\n return null;\n },\n fromLatLngToDivPixel: function fromLatLngToDivPixel() {\n return null;\n },\n getVisibleRegion: function getVisibleRegion() {\n return null;\n },\n getWorldWidth: function getWorldWidth() {\n return 0;\n }\n };\n };\n Clusterer.prototype.setMap = function () {\n return;\n };\n Clusterer.prototype.addListener = function () {\n return {\n remove: function remove() {\n return;\n }\n };\n };\n Clusterer.prototype.bindTo = function () {\n return;\n };\n Clusterer.prototype.get = function () {\n return;\n };\n Clusterer.prototype.notify = function () {\n return;\n };\n Clusterer.prototype.set = function () {\n return;\n };\n Clusterer.prototype.setValues = function () {\n return;\n };\n Clusterer.prototype.unbind = function () {\n return;\n };\n Clusterer.prototype.unbindAll = function () {\n return;\n };\n Clusterer.prototype.setupStyles = function () {\n if (this.styles.length > 0) {\n return;\n }\n for (var i = 0; i < this.imageSizes.length; i++) {\n this.styles.push({\n url: \"\".concat(this.imagePath + (i + 1), \".\").concat(this.imageExtension),\n height: this.imageSizes[i] || 0,\n width: this.imageSizes[i] || 0\n });\n }\n };\n Clusterer.prototype.fitMapToMarkers = function () {\n var markers = this.getMarkers();\n var bounds = new google.maps.LatLngBounds();\n for (var _i = 0, markers_1 = markers; _i < markers_1.length; _i++) {\n var marker = markers_1[_i];\n var position = marker.getPosition();\n if (position) {\n bounds.extend(position);\n }\n }\n var map = this.getMap();\n if (map !== null && 'fitBounds' in map) {\n map.fitBounds(bounds);\n }\n };\n Clusterer.prototype.getGridSize = function () {\n return this.gridSize;\n };\n Clusterer.prototype.setGridSize = function (gridSize) {\n this.gridSize = gridSize;\n };\n Clusterer.prototype.getMinimumClusterSize = function () {\n return this.minClusterSize;\n };\n Clusterer.prototype.setMinimumClusterSize = function (minimumClusterSize) {\n this.minClusterSize = minimumClusterSize;\n };\n Clusterer.prototype.getMaxZoom = function () {\n return this.maxZoom;\n };\n Clusterer.prototype.setMaxZoom = function (maxZoom) {\n this.maxZoom = maxZoom;\n };\n Clusterer.prototype.getStyles = function () {\n return this.styles;\n };\n Clusterer.prototype.setStyles = function (styles) {\n this.styles = styles;\n };\n Clusterer.prototype.getTitle = function () {\n return this.title;\n };\n Clusterer.prototype.setTitle = function (title) {\n this.title = title;\n };\n Clusterer.prototype.getZoomOnClick = function () {\n return this.zoomOnClick;\n };\n Clusterer.prototype.setZoomOnClick = function (zoomOnClick) {\n this.zoomOnClick = zoomOnClick;\n };\n Clusterer.prototype.getAverageCenter = function () {\n return this.averageCenter;\n };\n Clusterer.prototype.setAverageCenter = function (averageCenter) {\n this.averageCenter = averageCenter;\n };\n Clusterer.prototype.getIgnoreHidden = function () {\n return this.ignoreHidden;\n };\n Clusterer.prototype.setIgnoreHidden = function (ignoreHidden) {\n this.ignoreHidden = ignoreHidden;\n };\n Clusterer.prototype.getEnableRetinaIcons = function () {\n return this.enableRetinaIcons;\n };\n Clusterer.prototype.setEnableRetinaIcons = function (enableRetinaIcons) {\n this.enableRetinaIcons = enableRetinaIcons;\n };\n Clusterer.prototype.getImageExtension = function () {\n return this.imageExtension;\n };\n Clusterer.prototype.setImageExtension = function (imageExtension) {\n this.imageExtension = imageExtension;\n };\n Clusterer.prototype.getImagePath = function () {\n return this.imagePath;\n };\n Clusterer.prototype.setImagePath = function (imagePath) {\n this.imagePath = imagePath;\n };\n Clusterer.prototype.getImageSizes = function () {\n return this.imageSizes;\n };\n Clusterer.prototype.setImageSizes = function (imageSizes) {\n this.imageSizes = imageSizes;\n };\n Clusterer.prototype.getCalculator = function () {\n return this.calculator;\n };\n Clusterer.prototype.setCalculator = function (calculator) {\n this.calculator = calculator;\n };\n Clusterer.prototype.getBatchSizeIE = function () {\n return this.batchSizeIE;\n };\n Clusterer.prototype.setBatchSizeIE = function (batchSizeIE) {\n this.batchSizeIE = batchSizeIE;\n };\n Clusterer.prototype.getClusterClass = function () {\n return this.clusterClass;\n };\n Clusterer.prototype.setClusterClass = function (clusterClass) {\n this.clusterClass = clusterClass;\n };\n Clusterer.prototype.getMarkers = function () {\n return this.markers;\n };\n Clusterer.prototype.getTotalMarkers = function () {\n return this.markers.length;\n };\n Clusterer.prototype.getClusters = function () {\n return this.clusters;\n };\n Clusterer.prototype.getTotalClusters = function () {\n return this.clusters.length;\n };\n Clusterer.prototype.addMarker = function (marker, optNoDraw) {\n this.pushMarkerTo(marker);\n if (!optNoDraw) {\n this.redraw();\n }\n };\n Clusterer.prototype.addMarkers = function (markers, optNoDraw) {\n for (var key in markers) {\n if (Object.prototype.hasOwnProperty.call(markers, key)) {\n var marker = markers[key];\n if (marker) {\n this.pushMarkerTo(marker);\n }\n }\n }\n if (!optNoDraw) {\n this.redraw();\n }\n };\n Clusterer.prototype.pushMarkerTo = function (marker) {\n var _this = this;\n // If the marker is draggable add a listener so we can update the clusters on the dragend:\n if (marker.getDraggable()) {\n google.maps.event.addListener(marker, 'dragend', function () {\n if (_this.ready) {\n marker.isAdded = false;\n _this.repaint();\n }\n });\n }\n marker.isAdded = false;\n this.markers.push(marker);\n };\n Clusterer.prototype.removeMarker_ = function (marker) {\n var index = -1;\n if (this.markers.indexOf) {\n index = this.markers.indexOf(marker);\n } else {\n for (var i = 0; i < this.markers.length; i++) {\n if (marker === this.markers[i]) {\n index = i;\n break;\n }\n }\n }\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n marker.setMap(null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n return true;\n };\n Clusterer.prototype.removeMarker = function (marker, optNoDraw) {\n var removed = this.removeMarker_(marker);\n if (!optNoDraw && removed) {\n this.repaint();\n }\n return removed;\n };\n Clusterer.prototype.removeMarkers = function (markers, optNoDraw) {\n var removed = false;\n for (var _i = 0, markers_2 = markers; _i < markers_2.length; _i++) {\n var marker = markers_2[_i];\n removed = removed || this.removeMarker_(marker);\n }\n if (!optNoDraw && removed) {\n this.repaint();\n }\n return removed;\n };\n Clusterer.prototype.clearMarkers = function () {\n this.resetViewport(true);\n this.markers = [];\n };\n Clusterer.prototype.repaint = function () {\n var oldClusters = this.clusters.slice();\n this.clusters = [];\n this.resetViewport(false);\n this.redraw();\n // Remove the old clusters.\n // Do it in a timeout to prevent blinking effect.\n setTimeout(function timeout() {\n for (var _i = 0, oldClusters_1 = oldClusters; _i < oldClusters_1.length; _i++) {\n var oldCluster = oldClusters_1[_i];\n oldCluster.remove();\n }\n }, 0);\n };\n Clusterer.prototype.getExtendedBounds = function (bounds) {\n var projection = this.getProjection();\n // Convert the points to pixels and the extend out by the grid size.\n var trPix = projection.fromLatLngToDivPixel(\n // Turn the bounds into latlng.\n new google.maps.LatLng(bounds.getNorthEast().lat(), bounds.getNorthEast().lng()));\n if (trPix !== null) {\n trPix.x += this.gridSize;\n trPix.y -= this.gridSize;\n }\n var blPix = projection.fromLatLngToDivPixel(\n // Turn the bounds into latlng.\n new google.maps.LatLng(bounds.getSouthWest().lat(), bounds.getSouthWest().lng()));\n if (blPix !== null) {\n blPix.x -= this.gridSize;\n blPix.y += this.gridSize;\n }\n // Extend the bounds to contain the new bounds.\n if (trPix !== null) {\n // Convert the pixel points back to LatLng nw\n var point1 = projection.fromDivPixelToLatLng(trPix);\n if (point1 !== null) {\n bounds.extend(point1);\n }\n }\n if (blPix !== null) {\n // Convert the pixel points back to LatLng sw\n var point2 = projection.fromDivPixelToLatLng(blPix);\n if (point2 !== null) {\n bounds.extend(point2);\n }\n }\n return bounds;\n };\n Clusterer.prototype.redraw = function () {\n // Redraws all the clusters.\n this.createClusters(0);\n };\n Clusterer.prototype.resetViewport = function (optHide) {\n // Remove all the clusters\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var cluster = _a[_i];\n cluster.remove();\n }\n this.clusters = [];\n // Reset the markers to not be added and to be removed from the map.\n for (var _b = 0, _c = this.markers; _b < _c.length; _b++) {\n var marker = _c[_b];\n marker.isAdded = false;\n if (optHide) {\n marker.setMap(null);\n }\n }\n };\n Clusterer.prototype.distanceBetweenPoints = function (p1, p2) {\n var R = 6371; // Radius of the Earth in km\n var dLat = (p2.lat() - p1.lat()) * Math.PI / 180;\n var dLon = (p2.lng() - p1.lng()) * Math.PI / 180;\n var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(p1.lat() * Math.PI / 180) * Math.cos(p2.lat() * Math.PI / 180) * Math.sin(dLon / 2) * Math.sin(dLon / 2);\n return R * (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)));\n };\n Clusterer.prototype.isMarkerInBounds = function (marker, bounds) {\n var position = marker.getPosition();\n if (position) {\n return bounds.contains(position);\n }\n return false;\n };\n Clusterer.prototype.addToClosestCluster = function (marker) {\n var cluster;\n var distance = 40000; // Some large number\n var clusterToAddTo = null;\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var clusterElement = _a[_i];\n cluster = clusterElement;\n var center = cluster.getCenter();\n var position = marker.getPosition();\n if (center && position) {\n var d = this.distanceBetweenPoints(center, position);\n if (d < distance) {\n distance = d;\n clusterToAddTo = cluster;\n }\n }\n }\n if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\n clusterToAddTo.addMarker(marker);\n } else {\n cluster = new Cluster$1(this);\n cluster.addMarker(marker);\n this.clusters.push(cluster);\n }\n };\n Clusterer.prototype.createClusters = function (iFirst) {\n var _this = this;\n if (!this.ready) {\n return;\n }\n // Cancel previous batch processing if we're working on the first batch:\n if (iFirst === 0) {\n /**\n * This event is fired when the Clusterer begins\n * clustering markers.\n * @name Clusterer#clusteringbegin\n * @param {Clusterer} mc The Clusterer whose markers are being clustered.\n * @event\n */\n google.maps.event.trigger(this, 'clusteringbegin', this);\n if (this.timerRefStatic !== null) {\n window.clearTimeout(this.timerRefStatic);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete this.timerRefStatic;\n }\n }\n var map = this.getMap();\n var bounds = map !== null && 'getBounds' in map ? map.getBounds() : null;\n var zoom = (map === null || map === void 0 ? void 0 : map.getZoom()) || 0;\n // Get our current map view bounds.\n // Create a new bounds object so we don't affect the map.\n //\n // See Comments 9 & 11 on Issue 3651 relating to this workaround for a Google Maps bug:\n var mapBounds = zoom > 3 ? new google.maps.LatLngBounds(bounds === null || bounds === void 0 ? void 0 : bounds.getSouthWest(), bounds === null || bounds === void 0 ? void 0 : bounds.getNorthEast()) : new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472, -178.48388434375), new google.maps.LatLng(-85.08136444384544, 178.00048865625));\n var extendedMapBounds = this.getExtendedBounds(mapBounds);\n var iLast = Math.min(iFirst + this.batchSize, this.markers.length);\n for (var i = iFirst; i < iLast; i++) {\n var marker = this.markers[i];\n if (marker && !marker.isAdded && this.isMarkerInBounds(marker, extendedMapBounds) && (!this.ignoreHidden || this.ignoreHidden && marker.getVisible())) {\n this.addToClosestCluster(marker);\n }\n }\n if (iLast < this.markers.length) {\n this.timerRefStatic = window.setTimeout(function () {\n _this.createClusters(iLast);\n }, 0);\n } else {\n this.timerRefStatic = null;\n /**\n * This event is fired when the Clusterer stops\n * clustering markers.\n * @name Clusterer#clusteringend\n * @param {Clusterer} mc The Clusterer whose markers are being clustered.\n * @event\n */\n google.maps.event.trigger(this, 'clusteringend', this);\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var cluster = _a[_i];\n cluster.updateIcon();\n }\n }\n };\n Clusterer.prototype.extend = function (obj1, obj2) {\n return function applyExtend(object) {\n for (var property in object.prototype) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var prop = property;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.prototype[prop] = object.prototype[prop];\n }\n return this;\n }.apply(obj1, [obj2]);\n };\n return Clusterer;\n}();\n\nfunction ownKeys$c(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$e = {\n onClick: 'click',\n onClusteringBegin: 'clusteringbegin',\n onClusteringEnd: 'clusteringend',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover'\n};\nvar updaterMap$e = {\n averageCenter(instance, averageCenter) {\n instance.setAverageCenter(averageCenter);\n },\n batchSizeIE(instance, batchSizeIE) {\n instance.setBatchSizeIE(batchSizeIE);\n },\n calculator(instance, calculator) {\n instance.setCalculator(calculator);\n },\n clusterClass(instance, clusterClass) {\n instance.setClusterClass(clusterClass);\n },\n enableRetinaIcons(instance, enableRetinaIcons) {\n instance.setEnableRetinaIcons(enableRetinaIcons);\n },\n gridSize(instance, gridSize) {\n instance.setGridSize(gridSize);\n },\n ignoreHidden(instance, ignoreHidden) {\n instance.setIgnoreHidden(ignoreHidden);\n },\n imageExtension(instance, imageExtension) {\n instance.setImageExtension(imageExtension);\n },\n imagePath(instance, imagePath) {\n instance.setImagePath(imagePath);\n },\n imageSizes(instance, imageSizes) {\n instance.setImageSizes(imageSizes);\n },\n maxZoom(instance, maxZoom) {\n instance.setMaxZoom(maxZoom);\n },\n minimumClusterSize(instance, minimumClusterSize) {\n instance.setMinimumClusterSize(minimumClusterSize);\n },\n styles(instance, styles) {\n instance.setStyles(styles);\n },\n title(instance, title) {\n instance.setTitle(title);\n },\n zoomOnClick(instance, zoomOnClick) {\n instance.setZoomOnClick(zoomOnClick);\n }\n};\nvar defaultOptions$4 = {};\nfunction MarkerClustererFunctional(props) {\n var {\n children,\n options,\n averageCenter,\n batchSizeIE,\n calculator,\n clusterClass,\n enableRetinaIcons,\n gridSize,\n ignoreHidden,\n imageExtension,\n imagePath,\n imageSizes,\n maxZoom,\n minimumClusterSize,\n styles,\n title,\n zoomOnClick,\n onClick,\n onClusteringBegin,\n onClusteringEnd,\n onMouseOver,\n onMouseOut,\n onLoad,\n onUnmount\n } = props;\n var [instance, setInstance] = useState(null);\n var map = useContext(MapContext);\n var [clickListener, setClickListener] = useState(null);\n var [clusteringBeginListener, setClusteringBeginListener] = useState(null);\n var [clusteringEndListener, setClusteringEndListener] = useState(null);\n var [mouseoutListener, setMouseoutListener] = useState(null);\n var [mouseoverListener, setMouseoverListener] = useState(null);\n useEffect(() => {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, eventMap$e.onMouseOut, onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(() => {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, eventMap$e.onMouseOver, onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(() => {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, eventMap$e.onClick, onClick));\n }\n }, [onClick]);\n useEffect(() => {\n if (instance && onClusteringBegin) {\n if (clusteringBeginListener !== null) {\n google.maps.event.removeListener(clusteringBeginListener);\n }\n setClusteringBeginListener(google.maps.event.addListener(instance, eventMap$e.onClusteringBegin, onClusteringBegin));\n }\n }, [onClusteringBegin]);\n useEffect(() => {\n if (instance && onClusteringEnd) {\n if (clusteringEndListener !== null) {\n google.maps.event.removeListener(clusteringEndListener);\n }\n setClusteringBeginListener(google.maps.event.addListener(instance, eventMap$e.onClusteringEnd, onClusteringEnd));\n }\n }, [onClusteringEnd]);\n useEffect(() => {\n if (typeof averageCenter !== 'undefined' && instance !== null) {\n updaterMap$e.averageCenter(instance, averageCenter);\n }\n }, [instance, averageCenter]);\n useEffect(() => {\n if (typeof batchSizeIE !== 'undefined' && instance !== null) {\n updaterMap$e.batchSizeIE(instance, batchSizeIE);\n }\n }, [instance, batchSizeIE]);\n useEffect(() => {\n if (typeof calculator !== 'undefined' && instance !== null) {\n updaterMap$e.calculator(instance, calculator);\n }\n }, [instance, calculator]);\n useEffect(() => {\n if (typeof clusterClass !== 'undefined' && instance !== null) {\n updaterMap$e.clusterClass(instance, clusterClass);\n }\n }, [instance, clusterClass]);\n useEffect(() => {\n if (typeof enableRetinaIcons !== 'undefined' && instance !== null) {\n updaterMap$e.enableRetinaIcons(instance, enableRetinaIcons);\n }\n }, [instance, enableRetinaIcons]);\n useEffect(() => {\n if (typeof gridSize !== 'undefined' && instance !== null) {\n updaterMap$e.gridSize(instance, gridSize);\n }\n }, [instance, gridSize]);\n useEffect(() => {\n if (typeof ignoreHidden !== 'undefined' && instance !== null) {\n updaterMap$e.ignoreHidden(instance, ignoreHidden);\n }\n }, [instance, ignoreHidden]);\n useEffect(() => {\n if (typeof imageExtension !== 'undefined' && instance !== null) {\n updaterMap$e.imageExtension(instance, imageExtension);\n }\n }, [instance, imageExtension]);\n useEffect(() => {\n if (typeof imagePath !== 'undefined' && instance !== null) {\n updaterMap$e.imagePath(instance, imagePath);\n }\n }, [instance, imagePath]);\n useEffect(() => {\n if (typeof imageSizes !== 'undefined' && instance !== null) {\n updaterMap$e.imageSizes(instance, imageSizes);\n }\n }, [instance, imageSizes]);\n useEffect(() => {\n if (typeof maxZoom !== 'undefined' && instance !== null) {\n updaterMap$e.maxZoom(instance, maxZoom);\n }\n }, [instance, maxZoom]);\n useEffect(() => {\n if (typeof minimumClusterSize !== 'undefined' && instance !== null) {\n updaterMap$e.minimumClusterSize(instance, minimumClusterSize);\n }\n }, [instance, minimumClusterSize]);\n useEffect(() => {\n if (typeof styles !== 'undefined' && instance !== null) {\n updaterMap$e.styles(instance, styles);\n }\n }, [instance, styles]);\n useEffect(() => {\n if (typeof title !== 'undefined' && instance !== null) {\n updaterMap$e.title(instance, title);\n }\n }, [instance, title]);\n useEffect(() => {\n if (typeof zoomOnClick !== 'undefined' && instance !== null) {\n updaterMap$e.zoomOnClick(instance, zoomOnClick);\n }\n }, [instance, zoomOnClick]);\n useEffect(() => {\n if (!map) return;\n var clustererOptions = _objectSpread$c({}, options || defaultOptions$4);\n var clusterer = new Clusterer(map, [], clustererOptions);\n if (averageCenter) {\n updaterMap$e.averageCenter(clusterer, averageCenter);\n }\n if (batchSizeIE) {\n updaterMap$e.batchSizeIE(clusterer, batchSizeIE);\n }\n if (calculator) {\n updaterMap$e.calculator(clusterer, calculator);\n }\n if (clusterClass) {\n updaterMap$e.clusterClass(clusterer, clusterClass);\n }\n if (enableRetinaIcons) {\n updaterMap$e.enableRetinaIcons(clusterer, enableRetinaIcons);\n }\n if (gridSize) {\n updaterMap$e.gridSize(clusterer, gridSize);\n }\n if (ignoreHidden) {\n updaterMap$e.ignoreHidden(clusterer, ignoreHidden);\n }\n if (imageExtension) {\n updaterMap$e.imageExtension(clusterer, imageExtension);\n }\n if (imagePath) {\n updaterMap$e.imagePath(clusterer, imagePath);\n }\n if (imageSizes) {\n updaterMap$e.imageSizes(clusterer, imageSizes);\n }\n if (maxZoom) {\n updaterMap$e.maxZoom(clusterer, maxZoom);\n }\n if (minimumClusterSize) {\n updaterMap$e.minimumClusterSize(clusterer, minimumClusterSize);\n }\n if (styles) {\n updaterMap$e.styles(clusterer, styles);\n }\n if (title) {\n updaterMap$e.title(clusterer, title);\n }\n if (zoomOnClick) {\n updaterMap$e.zoomOnClick(clusterer, zoomOnClick);\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(clusterer, eventMap$e.onMouseOut, onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(clusterer, eventMap$e.onMouseOver, onMouseOver));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(clusterer, eventMap$e.onClick, onClick));\n }\n if (onClusteringBegin) {\n setClusteringBeginListener(google.maps.event.addListener(clusterer, eventMap$e.onClusteringBegin, onClusteringBegin));\n }\n if (onClusteringEnd) {\n setClusteringEndListener(google.maps.event.addListener(clusterer, eventMap$e.onClusteringEnd, onClusteringEnd));\n }\n setInstance(clusterer);\n if (onLoad) {\n onLoad(clusterer);\n }\n return () => {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (clusteringBeginListener !== null) {\n google.maps.event.removeListener(clusteringBeginListener);\n }\n if (clusteringEndListener !== null) {\n google.maps.event.removeListener(clusteringEndListener);\n }\n if (onUnmount) {\n onUnmount(clusterer);\n }\n };\n }, []);\n return instance !== null ? children(instance) || null : null;\n}\nvar MarkerClustererF = memo(MarkerClustererFunctional);\nclass ClustererComponent extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n markerClusterer: null\n });\n _defineProperty(this, \"setClustererCallback\", () => {\n if (this.state.markerClusterer !== null && this.props.onLoad) {\n this.props.onLoad(this.state.markerClusterer);\n }\n });\n }\n componentDidMount() {\n if (this.context) {\n var markerClusterer = new Clusterer(this.context, [], this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$e,\n eventMap: eventMap$e,\n prevProps: {},\n nextProps: this.props,\n instance: markerClusterer\n });\n this.setState(() => {\n return {\n markerClusterer\n };\n }, this.setClustererCallback);\n }\n }\n componentDidUpdate(prevProps) {\n if (this.state.markerClusterer) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$e,\n eventMap: eventMap$e,\n prevProps,\n nextProps: this.props,\n instance: this.state.markerClusterer\n });\n }\n }\n componentWillUnmount() {\n if (this.state.markerClusterer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.markerClusterer);\n }\n unregisterEvents(this.registeredEvents);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.state.markerClusterer.setMap(null);\n }\n }\n render() {\n return this.state.markerClusterer !== null ? this.props.children(this.state.markerClusterer) : null;\n }\n}\n_defineProperty(ClustererComponent, \"contextType\", MapContext);\n\n// This handler prevents an event in the InfoBox from being passed on to the map.\nfunction cancelHandler(event) {\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n}\nvar InfoBox = /** @class */function () {\n function InfoBox(options) {\n if (options === void 0) {\n options = {};\n }\n this.getCloseClickHandler = this.getCloseClickHandler.bind(this);\n this.closeClickHandler = this.closeClickHandler.bind(this);\n this.createInfoBoxDiv = this.createInfoBoxDiv.bind(this);\n this.addClickHandler = this.addClickHandler.bind(this);\n this.getCloseBoxImg = this.getCloseBoxImg.bind(this);\n this.getBoxWidths = this.getBoxWidths.bind(this);\n this.setBoxStyle = this.setBoxStyle.bind(this);\n this.setPosition = this.setPosition.bind(this);\n this.getPosition = this.getPosition.bind(this);\n this.setOptions = this.setOptions.bind(this);\n this.setContent = this.setContent.bind(this);\n this.setVisible = this.setVisible.bind(this);\n this.getContent = this.getContent.bind(this);\n this.getVisible = this.getVisible.bind(this);\n this.setZIndex = this.setZIndex.bind(this);\n this.getZIndex = this.getZIndex.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.panBox = this.panBox.bind(this);\n this.extend = this.extend.bind(this);\n this.close = this.close.bind(this);\n this.draw = this.draw.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.open = this.open.bind(this);\n this.extend(InfoBox, google.maps.OverlayView);\n // Standard options (in common with google.maps.InfoWindow):\n this.content = options.content || '';\n this.disableAutoPan = options.disableAutoPan || false;\n this.maxWidth = options.maxWidth || 0;\n this.pixelOffset = options.pixelOffset || new google.maps.Size(0, 0);\n this.position = options.position || new google.maps.LatLng(0, 0);\n this.zIndex = options.zIndex || null;\n // Additional options (unique to InfoBox):\n this.boxClass = options.boxClass || 'infoBox';\n this.boxStyle = options.boxStyle || {};\n this.closeBoxMargin = options.closeBoxMargin || '2px';\n this.closeBoxURL = options.closeBoxURL || 'http://www.google.com/intl/en_us/mapfiles/close.gif';\n if (options.closeBoxURL === '') {\n this.closeBoxURL = '';\n }\n this.infoBoxClearance = options.infoBoxClearance || new google.maps.Size(1, 1);\n if (typeof options.visible === 'undefined') {\n if (typeof options.isHidden === 'undefined') {\n options.visible = true;\n } else {\n options.visible = !options.isHidden;\n }\n }\n this.isHidden = !options.visible;\n this.alignBottom = options.alignBottom || false;\n this.pane = options.pane || 'floatPane';\n this.enableEventPropagation = options.enableEventPropagation || false;\n this.div = null;\n this.closeListener = null;\n this.moveListener = null;\n this.mapListener = null;\n this.contextListener = null;\n this.eventListeners = null;\n this.fixedWidthSet = null;\n }\n InfoBox.prototype.createInfoBoxDiv = function () {\n var _this = this;\n // This handler ignores the current event in the InfoBox and conditionally prevents\n // the event from being passed on to the map. It is used for the contextmenu event.\n var ignoreHandler = function ignoreHandler(event) {\n event.returnValue = false;\n if (event.preventDefault) {\n event.preventDefault();\n }\n if (!_this.enableEventPropagation) {\n cancelHandler(event);\n }\n };\n if (!this.div) {\n this.div = document.createElement('div');\n this.setBoxStyle();\n if (typeof this.content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + this.content;\n } else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(this.content);\n }\n var panes = this.getPanes();\n if (panes !== null) {\n panes[this.pane].appendChild(this.div); // Add the InfoBox div to the DOM\n }\n this.addClickHandler();\n if (this.div.style.width) {\n this.fixedWidthSet = true;\n } else {\n if (this.maxWidth !== 0 && this.div.offsetWidth > this.maxWidth) {\n this.div.style.width = this.maxWidth + 'px';\n this.fixedWidthSet = true;\n } else {\n // The following code is needed to overcome problems with MSIE\n var bw = this.getBoxWidths();\n this.div.style.width = this.div.offsetWidth - bw.left - bw.right + 'px';\n this.fixedWidthSet = false;\n }\n }\n this.panBox(this.disableAutoPan);\n if (!this.enableEventPropagation) {\n this.eventListeners = [];\n // Cancel event propagation.\n // Note: mousemove not included (to resolve Issue 152)\n var events = ['mousedown', 'mouseover', 'mouseout', 'mouseup', 'click', 'dblclick', 'touchstart', 'touchend', 'touchmove'];\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\n var event_1 = events_1[_i];\n this.eventListeners.push(google.maps.event.addListener(this.div, event_1, cancelHandler));\n }\n // Workaround for Google bug that causes the cursor to change to a pointer\n // when the mouse moves over a marker underneath InfoBox.\n this.eventListeners.push(google.maps.event.addListener(this.div, 'mouseover', function () {\n if (_this.div) {\n _this.div.style.cursor = 'default';\n }\n }));\n }\n this.contextListener = google.maps.event.addListener(this.div, 'contextmenu', ignoreHandler);\n /**\n * This event is fired when the DIV containing the InfoBox's content is attached to the DOM.\n * @name InfoBox#domready\n * @event\n */\n google.maps.event.trigger(this, 'domready');\n }\n };\n InfoBox.prototype.getCloseBoxImg = function () {\n var img = '';\n if (this.closeBoxURL !== '') {\n img = '\"\"';\n\";\n }\n return img;\n };\n InfoBox.prototype.addClickHandler = function () {\n this.closeListener = this.div && this.div.firstChild && this.closeBoxURL !== '' ? google.maps.event.addListener(this.div.firstChild, 'click', this.getCloseClickHandler()) : null;\n };\n InfoBox.prototype.closeClickHandler = function (event) {\n // 1.0.3 fix: Always prevent propagation of a close box click to the map:\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n /**\n * This event is fired when the InfoBox's close box is clicked.\n * @name InfoBox#closeclick\n * @event\n */\n google.maps.event.trigger(this, 'closeclick');\n this.close();\n };\n InfoBox.prototype.getCloseClickHandler = function () {\n return this.closeClickHandler;\n };\n InfoBox.prototype.panBox = function (disablePan) {\n if (this.div && !disablePan) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var map = this.getMap();\n // Only pan if attached to map, not panorama\n if (map instanceof google.maps.Map) {\n var xOffset = 0;\n var yOffset = 0;\n var bounds = map.getBounds();\n if (bounds && !bounds.contains(this.position)) {\n // Marker not in visible area of map, so set center\n // of map to the marker position first.\n map.setCenter(this.position);\n }\n var mapDiv = map.getDiv();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var mapWidth = mapDiv.offsetWidth;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var mapHeight = mapDiv.offsetHeight;\n var iwOffsetX = this.pixelOffset.width;\n var iwOffsetY = this.pixelOffset.height;\n var iwWidth = this.div.offsetWidth;\n var iwHeight = this.div.offsetHeight;\n var padX = this.infoBoxClearance.width;\n var padY = this.infoBoxClearance.height;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var projection = this.getProjection();\n var pixPosition = projection.fromLatLngToContainerPixel(this.position);\n if (pixPosition !== null) {\n if (pixPosition.x < -iwOffsetX + padX) {\n xOffset = pixPosition.x + iwOffsetX - padX;\n } else if (pixPosition.x + iwWidth + iwOffsetX + padX > mapWidth) {\n xOffset = pixPosition.x + iwWidth + iwOffsetX + padX - mapWidth;\n }\n if (this.alignBottom) {\n if (pixPosition.y < -iwOffsetY + padY + iwHeight) {\n yOffset = pixPosition.y + iwOffsetY - padY - iwHeight;\n } else if (pixPosition.y + iwOffsetY + padY > mapHeight) {\n yOffset = pixPosition.y + iwOffsetY + padY - mapHeight;\n }\n } else {\n if (pixPosition.y < -iwOffsetY + padY) {\n yOffset = pixPosition.y + iwOffsetY - padY;\n } else if (pixPosition.y + iwHeight + iwOffsetY + padY > mapHeight) {\n yOffset = pixPosition.y + iwHeight + iwOffsetY + padY - mapHeight;\n }\n }\n }\n if (!(xOffset === 0 && yOffset === 0)) {\n // Move the map to the shifted center.\n map.panBy(xOffset, yOffset);\n }\n }\n }\n };\n InfoBox.prototype.setBoxStyle = function () {\n if (this.div) {\n // Apply style values from the style sheet defined in the boxClass parameter:\n this.div.className = this.boxClass;\n // Clear existing inline style values:\n this.div.style.cssText = '';\n // Apply style values defined in the boxStyle parameter:\n var boxStyle = this.boxStyle;\n for (var i in boxStyle) {\n if (Object.prototype.hasOwnProperty.call(boxStyle, i)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.div.style[i] = boxStyle[i];\n }\n }\n // Fix for iOS disappearing InfoBox problem\n // See http://stackoverflow.com/questions/9229535/google-maps-markers-disappear-at-certain-zoom-level-only-on-iphone-ipad\n this.div.style.webkitTransform = 'translateZ(0)';\n // Fix up opacity style for benefit of MSIE\n if (typeof this.div.style.opacity !== 'undefined' && this.div.style.opacity !== '') {\n // See http://www.quirksmode.org/css/opacity.html\n var opacity = parseFloat(this.div.style.opacity || '');\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.div.style.msFilter = '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')\"';\n this.div.style.filter = 'alpha(opacity=' + opacity * 100 + ')';\n }\n // Apply required styles\n this.div.style.position = 'absolute';\n this.div.style.visibility = 'hidden';\n if (this.zIndex !== null) {\n this.div.style.zIndex = this.zIndex + '';\n }\n if (!this.div.style.overflow) {\n this.div.style.overflow = 'auto';\n }\n }\n };\n InfoBox.prototype.getBoxWidths = function () {\n var bw = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n if (!this.div) {\n return bw;\n }\n if (document.defaultView) {\n var ownerDocument = this.div.ownerDocument;\n var computedStyle = ownerDocument && ownerDocument.defaultView ? ownerDocument.defaultView.getComputedStyle(this.div, '') : null;\n if (computedStyle) {\n // The computed styles are always in pixel units (good!)\n bw.top = parseInt(computedStyle.borderTopWidth || '', 10) || 0;\n bw.bottom = parseInt(computedStyle.borderBottomWidth || '', 10) || 0;\n bw.left = parseInt(computedStyle.borderLeftWidth || '', 10) || 0;\n bw.right = parseInt(computedStyle.borderRightWidth || '', 10) || 0;\n }\n } else if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n document.documentElement.currentStyle // MSIE\n ) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var currentStyle = this.div.currentStyle;\n if (currentStyle) {\n // The current styles may not be in pixel units, but assume they are (bad!)\n bw.top = parseInt(currentStyle.borderTopWidth || '', 10) || 0;\n bw.bottom = parseInt(currentStyle.borderBottomWidth || '', 10) || 0;\n bw.left = parseInt(currentStyle.borderLeftWidth || '', 10) || 0;\n bw.right = parseInt(currentStyle.borderRightWidth || '', 10) || 0;\n }\n }\n return bw;\n };\n InfoBox.prototype.onRemove = function () {\n if (this.div && this.div.parentNode) {\n this.div.parentNode.removeChild(this.div);\n this.div = null;\n }\n };\n InfoBox.prototype.draw = function () {\n this.createInfoBoxDiv();\n if (this.div) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var projection = this.getProjection();\n var pixPosition = projection.fromLatLngToDivPixel(this.position);\n if (pixPosition !== null) {\n this.div.style.left = pixPosition.x + this.pixelOffset.width + 'px';\n if (this.alignBottom) {\n this.div.style.bottom = -(pixPosition.y + this.pixelOffset.height) + 'px';\n } else {\n this.div.style.top = pixPosition.y + this.pixelOffset.height + 'px';\n }\n }\n if (this.isHidden) {\n this.div.style.visibility = 'hidden';\n } else {\n this.div.style.visibility = 'visible';\n }\n }\n };\n InfoBox.prototype.setOptions = function (options) {\n if (options === void 0) {\n options = {};\n }\n if (typeof options.boxClass !== 'undefined') {\n // Must be first\n this.boxClass = options.boxClass;\n this.setBoxStyle();\n }\n if (typeof options.boxStyle !== 'undefined') {\n // Must be second\n this.boxStyle = options.boxStyle;\n this.setBoxStyle();\n }\n if (typeof options.content !== 'undefined') {\n this.setContent(options.content);\n }\n if (typeof options.disableAutoPan !== 'undefined') {\n this.disableAutoPan = options.disableAutoPan;\n }\n if (typeof options.maxWidth !== 'undefined') {\n this.maxWidth = options.maxWidth;\n }\n if (typeof options.pixelOffset !== 'undefined') {\n this.pixelOffset = options.pixelOffset;\n }\n if (typeof options.alignBottom !== 'undefined') {\n this.alignBottom = options.alignBottom;\n }\n if (typeof options.position !== 'undefined') {\n this.setPosition(options.position);\n }\n if (typeof options.zIndex !== 'undefined') {\n this.setZIndex(options.zIndex);\n }\n if (typeof options.closeBoxMargin !== 'undefined') {\n this.closeBoxMargin = options.closeBoxMargin;\n }\n if (typeof options.closeBoxURL !== 'undefined') {\n this.closeBoxURL = options.closeBoxURL;\n }\n if (typeof options.infoBoxClearance !== 'undefined') {\n this.infoBoxClearance = options.infoBoxClearance;\n }\n if (typeof options.isHidden !== 'undefined') {\n this.isHidden = options.isHidden;\n }\n if (typeof options.visible !== 'undefined') {\n this.isHidden = !options.visible;\n }\n if (typeof options.enableEventPropagation !== 'undefined') {\n this.enableEventPropagation = options.enableEventPropagation;\n }\n if (this.div) {\n this.draw();\n }\n };\n InfoBox.prototype.setContent = function (content) {\n this.content = content;\n if (this.div) {\n if (this.closeListener) {\n google.maps.event.removeListener(this.closeListener);\n this.closeListener = null;\n }\n // Odd code required to make things work with MSIE.\n if (!this.fixedWidthSet) {\n this.div.style.width = '';\n }\n if (typeof content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + content;\n } else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(content);\n }\n // Perverse code required to make things work with MSIE.\n // (Ensures the close box does, in fact, float to the right.)\n if (!this.fixedWidthSet) {\n this.div.style.width = this.div.offsetWidth + 'px';\n if (typeof content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + content;\n } else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(content);\n }\n }\n this.addClickHandler();\n }\n /**\n * This event is fired when the content of the InfoBox changes.\n * @name InfoBox#content_changed\n * @event\n */\n google.maps.event.trigger(this, 'content_changed');\n };\n InfoBox.prototype.setPosition = function (latLng) {\n this.position = latLng;\n if (this.div) {\n this.draw();\n }\n /**\n * This event is fired when the position of the InfoBox changes.\n * @name InfoBox#position_changed\n * @event\n */\n google.maps.event.trigger(this, 'position_changed');\n };\n InfoBox.prototype.setVisible = function (isVisible) {\n this.isHidden = !isVisible;\n if (this.div) {\n this.div.style.visibility = this.isHidden ? 'hidden' : 'visible';\n }\n };\n InfoBox.prototype.setZIndex = function (index) {\n this.zIndex = index;\n if (this.div) {\n this.div.style.zIndex = index + '';\n }\n /**\n * This event is fired when the zIndex of the InfoBox changes.\n * @name InfoBox#zindex_changed\n * @event\n */\n google.maps.event.trigger(this, 'zindex_changed');\n };\n InfoBox.prototype.getContent = function () {\n return this.content;\n };\n InfoBox.prototype.getPosition = function () {\n return this.position;\n };\n InfoBox.prototype.getZIndex = function () {\n return this.zIndex;\n };\n InfoBox.prototype.getVisible = function () {\n var map = this.getMap();\n return typeof map === 'undefined' || map === null ? false : !this.isHidden;\n };\n InfoBox.prototype.show = function () {\n this.isHidden = false;\n if (this.div) {\n this.div.style.visibility = 'visible';\n }\n };\n InfoBox.prototype.hide = function () {\n this.isHidden = true;\n if (this.div) {\n this.div.style.visibility = 'hidden';\n }\n };\n InfoBox.prototype.open = function (map, anchor) {\n var _this = this;\n if (anchor) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.position = anchor.getPosition();\n this.moveListener = google.maps.event.addListener(anchor, 'position_changed', function () {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var position = anchor.getPosition();\n _this.setPosition(position);\n });\n this.mapListener = google.maps.event.addListener(anchor, 'map_changed', function () {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n _this.setMap(anchor.map);\n });\n }\n this.setMap(map);\n if (this.div) {\n this.panBox();\n }\n };\n InfoBox.prototype.close = function () {\n if (this.closeListener) {\n google.maps.event.removeListener(this.closeListener);\n this.closeListener = null;\n }\n if (this.eventListeners) {\n for (var _i = 0, _a = this.eventListeners; _i < _a.length; _i++) {\n var eventListener = _a[_i];\n google.maps.event.removeListener(eventListener);\n }\n this.eventListeners = null;\n }\n if (this.moveListener) {\n google.maps.event.removeListener(this.moveListener);\n this.moveListener = null;\n }\n if (this.mapListener) {\n google.maps.event.removeListener(this.mapListener);\n this.mapListener = null;\n }\n if (this.contextListener) {\n google.maps.event.removeListener(this.contextListener);\n this.contextListener = null;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.setMap(null);\n };\n InfoBox.prototype.extend = function (obj1, obj2) {\n return function applyExtend(object) {\n for (var property in object.prototype) {\n if (!Object.prototype.hasOwnProperty.call(this, property)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.prototype[property] = object.prototype[property];\n }\n }\n return this;\n }.apply(obj1, [obj2]);\n };\n return InfoBox;\n}();\n\nvar _excluded = [\"position\"],\n _excluded2 = [\"position\"];\nfunction ownKeys$b(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$d = {\n onCloseClick: 'closeclick',\n onContentChanged: 'content_changed',\n onDomReady: 'domready',\n onPositionChanged: 'position_changed',\n onZindexChanged: 'zindex_changed'\n};\nvar updaterMap$d = {\n options(instance, options) {\n instance.setOptions(options);\n },\n position(instance, position) {\n if (position instanceof google.maps.LatLng) {\n instance.setPosition(position);\n } else {\n instance.setPosition(new google.maps.LatLng(position.lat, position.lng));\n }\n },\n visible(instance, visible) {\n instance.setVisible(visible);\n },\n zIndex(instance, zIndex) {\n instance.setZIndex(zIndex);\n }\n};\nvar defaultOptions$3 = {};\nfunction InfoBoxFunctional(_ref) {\n var {\n children,\n anchor,\n options,\n position,\n zIndex,\n onCloseClick,\n onDomReady,\n onContentChanged,\n onPositionChanged,\n onZindexChanged,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [closeClickListener, setCloseClickListener] = useState(null);\n var [domReadyClickListener, setDomReadyClickListener] = useState(null);\n var [contentChangedClickListener, setContentChangedClickListener] = useState(null);\n var [positionChangedClickListener, setPositionChangedClickListener] = useState(null);\n var [zIndexChangedClickListener, setZindexChangedClickListener] = useState(null);\n var containerElementRef = useRef(null);\n // Order does matter\n useEffect(() => {\n if (map && instance !== null) {\n instance.close();\n if (anchor) {\n instance.open(map, anchor);\n } else if (instance.getPosition()) {\n instance.open(map);\n }\n }\n }, [map, instance, anchor]);\n useEffect(() => {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n if (position && instance !== null) {\n var positionLatLng = position instanceof google.maps.LatLng ? position :\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n new google.maps.LatLng(position.lat, position.lng);\n instance.setPosition(positionLatLng);\n }\n }, [position]);\n useEffect(() => {\n if (typeof zIndex === 'number' && instance !== null) {\n instance.setZIndex(zIndex);\n }\n }, [zIndex]);\n useEffect(() => {\n if (instance && onCloseClick) {\n if (closeClickListener !== null) {\n google.maps.event.removeListener(closeClickListener);\n }\n setCloseClickListener(google.maps.event.addListener(instance, 'closeclick', onCloseClick));\n }\n }, [onCloseClick]);\n useEffect(() => {\n if (instance && onDomReady) {\n if (domReadyClickListener !== null) {\n google.maps.event.removeListener(domReadyClickListener);\n }\n setDomReadyClickListener(google.maps.event.addListener(instance, 'domready', onDomReady));\n }\n }, [onDomReady]);\n useEffect(() => {\n if (instance && onContentChanged) {\n if (contentChangedClickListener !== null) {\n google.maps.event.removeListener(contentChangedClickListener);\n }\n setContentChangedClickListener(google.maps.event.addListener(instance, 'content_changed', onContentChanged));\n }\n }, [onContentChanged]);\n useEffect(() => {\n if (instance && onPositionChanged) {\n if (positionChangedClickListener !== null) {\n google.maps.event.removeListener(positionChangedClickListener);\n }\n setPositionChangedClickListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(() => {\n if (instance && onZindexChanged) {\n if (zIndexChangedClickListener !== null) {\n google.maps.event.removeListener(zIndexChangedClickListener);\n }\n setZindexChangedClickListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(() => {\n if (map) {\n var _ref2 = options || defaultOptions$3,\n {\n position: _position\n } = _ref2,\n infoBoxOptions = _objectWithoutProperties(_ref2, _excluded);\n var positionLatLng;\n if (_position && !(_position instanceof google.maps.LatLng)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n positionLatLng = new google.maps.LatLng(_position.lat, _position.lng);\n }\n var infoBox = new InfoBox(_objectSpread$b(_objectSpread$b({}, infoBoxOptions), positionLatLng ? {\n position: positionLatLng\n } : {}));\n containerElementRef.current = document.createElement('div');\n setInstance(infoBox);\n if (onCloseClick) {\n setCloseClickListener(google.maps.event.addListener(infoBox, 'closeclick', onCloseClick));\n }\n if (onDomReady) {\n setDomReadyClickListener(google.maps.event.addListener(infoBox, 'domready', onDomReady));\n }\n if (onContentChanged) {\n setContentChangedClickListener(google.maps.event.addListener(infoBox, 'content_changed', onContentChanged));\n }\n if (onPositionChanged) {\n setPositionChangedClickListener(google.maps.event.addListener(infoBox, 'position_changed', onPositionChanged));\n }\n if (onZindexChanged) {\n setZindexChangedClickListener(google.maps.event.addListener(infoBox, 'zindex_changed', onZindexChanged));\n }\n infoBox.setContent(containerElementRef.current);\n if (anchor) {\n infoBox.open(map, anchor);\n } else if (infoBox.getPosition()) {\n infoBox.open(map);\n } else {\n invariant(false, 'You must provide either an anchor or a position prop for .');\n }\n if (onLoad) {\n onLoad(infoBox);\n }\n }\n return () => {\n if (instance !== null) {\n if (closeClickListener) {\n google.maps.event.removeListener(closeClickListener);\n }\n if (contentChangedClickListener) {\n google.maps.event.removeListener(contentChangedClickListener);\n }\n if (domReadyClickListener) {\n google.maps.event.removeListener(domReadyClickListener);\n }\n if (positionChangedClickListener) {\n google.maps.event.removeListener(positionChangedClickListener);\n }\n if (zIndexChangedClickListener) {\n google.maps.event.removeListener(zIndexChangedClickListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.close();\n }\n };\n }, []);\n return containerElementRef.current ? createPortal(Children.only(children), containerElementRef.current) : null;\n}\nvar InfoBoxF = memo(InfoBoxFunctional);\nclass InfoBoxComponent extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"containerElement\", null);\n _defineProperty(this, \"state\", {\n infoBox: null\n });\n _defineProperty(this, \"open\", (infoBox, anchor) => {\n if (anchor) {\n if (this.context !== null) {\n infoBox.open(this.context, anchor);\n }\n } else if (infoBox.getPosition()) {\n if (this.context !== null) {\n infoBox.open(this.context);\n }\n } else {\n invariant(false, 'You must provide either an anchor or a position prop for .');\n }\n });\n _defineProperty(this, \"setInfoBoxCallback\", () => {\n if (this.state.infoBox !== null && this.containerElement !== null) {\n this.state.infoBox.setContent(this.containerElement);\n this.open(this.state.infoBox, this.props.anchor);\n if (this.props.onLoad) {\n this.props.onLoad(this.state.infoBox);\n }\n }\n });\n }\n componentDidMount() {\n var _ref3 = this.props.options || {},\n {\n position\n } = _ref3,\n infoBoxOptions = _objectWithoutProperties(_ref3, _excluded2);\n var positionLatLng;\n if (position && !(position instanceof google.maps.LatLng)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n positionLatLng = new google.maps.LatLng(position.lat, position.lng);\n }\n var infoBox = new InfoBox(_objectSpread$b(_objectSpread$b({}, infoBoxOptions), positionLatLng ? {\n position: positionLatLng\n } : {}));\n this.containerElement = document.createElement('div');\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$d,\n eventMap: eventMap$d,\n prevProps: {},\n nextProps: this.props,\n instance: infoBox\n });\n this.setState({\n infoBox\n }, this.setInfoBoxCallback);\n }\n componentDidUpdate(prevProps) {\n var {\n infoBox\n } = this.state;\n if (infoBox !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$d,\n eventMap: eventMap$d,\n prevProps,\n nextProps: this.props,\n instance: infoBox\n });\n }\n }\n componentWillUnmount() {\n var {\n onUnmount\n } = this.props;\n var {\n infoBox\n } = this.state;\n if (infoBox !== null) {\n if (onUnmount) {\n onUnmount(infoBox);\n }\n unregisterEvents(this.registeredEvents);\n infoBox.close();\n }\n }\n render() {\n return this.containerElement ? createPortal(Children.only(this.props.children), this.containerElement) : null;\n }\n}\n_defineProperty(InfoBoxComponent, \"contextType\", MapContext);\n\nvar fastDeepEqual;\nvar hasRequiredFastDeepEqual;\nfunction requireFastDeepEqual() {\n if (hasRequiredFastDeepEqual) return fastDeepEqual;\n hasRequiredFastDeepEqual = 1;\n\n // do not edit .js files directly - edit src/index.jst\n\n fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n return true;\n }\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n if (!equal(a[key], b[key])) return false;\n }\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n };\n return fastDeepEqual;\n}\n\nvar fastDeepEqualExports = requireFastDeepEqual();\nvar equal = /*@__PURE__*/getDefaultExportFromCjs$1(fastDeepEqualExports);\n\nvar ARRAY_TYPES = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\n\n/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */\n\nvar VERSION = 1; // serialized format version\nvar HEADER_SIZE = 8;\nclass KDBush {\n /**\n * Creates an index from raw `ArrayBuffer` data.\n * @param {ArrayBuffer} data\n */\n static from(data) {\n if (!(data instanceof ArrayBuffer)) {\n throw new Error('Data must be an instance of ArrayBuffer.');\n }\n var [magic, versionAndType] = new Uint8Array(data, 0, 2);\n if (magic !== 0xdb) {\n throw new Error('Data does not appear to be in a KDBush format.');\n }\n var version = versionAndType >> 4;\n if (version !== VERSION) {\n throw new Error(\"Got v\".concat(version, \" data when expected v\").concat(VERSION, \".\"));\n }\n var ArrayType = ARRAY_TYPES[versionAndType & 0x0f];\n if (!ArrayType) {\n throw new Error('Unrecognized array type.');\n }\n var [nodeSize] = new Uint16Array(data, 2, 1);\n var [numItems] = new Uint32Array(data, 4, 1);\n return new KDBush(numItems, nodeSize, ArrayType, data);\n }\n\n /**\n * Creates an index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBuffer} [data] (For internal use only)\n */\n constructor(numItems) {\n var nodeSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 64;\n var ArrayType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Float64Array;\n var data = arguments.length > 3 ? arguments[3] : undefined;\n if (isNaN(numItems) || numItems < 0) throw new Error(\"Unpexpected numItems value: \".concat(numItems, \".\"));\n this.numItems = +numItems;\n this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);\n this.ArrayType = ArrayType;\n this.IndexArrayType = numItems < 65536 ? Uint16Array : Uint32Array;\n var arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);\n var coordsByteSize = numItems * 2 * this.ArrayType.BYTES_PER_ELEMENT;\n var idsByteSize = numItems * this.IndexArrayType.BYTES_PER_ELEMENT;\n var padCoords = (8 - idsByteSize % 8) % 8;\n if (arrayTypeIndex < 0) {\n throw new Error(\"Unexpected typed array class: \".concat(ArrayType, \".\"));\n }\n if (data && data instanceof ArrayBuffer) {\n // reconstruct an index from a buffer\n this.data = data;\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = numItems * 2;\n this._finished = true;\n } else {\n // initialize a new index\n this.data = new ArrayBuffer(HEADER_SIZE + coordsByteSize + idsByteSize + padCoords);\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = 0;\n this._finished = false;\n\n // set header\n new Uint8Array(this.data, 0, 2).set([0xdb, (VERSION << 4) + arrayTypeIndex]);\n new Uint16Array(this.data, 2, 1)[0] = nodeSize;\n new Uint32Array(this.data, 4, 1)[0] = numItems;\n }\n }\n\n /**\n * Add a point to the index.\n * @param {number} x\n * @param {number} y\n * @returns {number} An incremental index associated with the added item (starting from `0`).\n */\n add(x, y) {\n var index = this._pos >> 1;\n this.ids[index] = index;\n this.coords[this._pos++] = x;\n this.coords[this._pos++] = y;\n return index;\n }\n\n /**\n * Perform indexing of the added points.\n */\n finish() {\n var numAdded = this._pos >> 1;\n if (numAdded !== this.numItems) {\n throw new Error(\"Added \".concat(numAdded, \" items when expected \").concat(this.numItems, \".\"));\n }\n // kd-sort both arrays for efficient search\n sort(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0);\n this._finished = true;\n return this;\n }\n\n /**\n * Search the index for items within a given bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number[]} An array of indices correponding to the found items.\n */\n range(minX, minY, maxX, maxY) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n var {\n ids,\n coords,\n nodeSize\n } = this;\n var stack = [0, ids.length - 1, 0];\n var result = [];\n\n // recursively search for items in range in the kd-sorted arrays\n while (stack.length) {\n var axis = stack.pop() || 0;\n var right = stack.pop() || 0;\n var left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n var _x = coords[2 * i];\n var _y = coords[2 * i + 1];\n if (_x >= minX && _x <= maxX && _y >= minY && _y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n var m = left + right >> 1;\n\n // include the middle item if it's in range\n var x = coords[2 * m];\n var y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n return result;\n }\n\n /**\n * Search the index for items within a given radius.\n * @param {number} qx\n * @param {number} qy\n * @param {number} r Query radius.\n * @returns {number[]} An array of indices correponding to the found items.\n */\n within(qx, qy, r) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n var {\n ids,\n coords,\n nodeSize\n } = this;\n var stack = [0, ids.length - 1, 0];\n var result = [];\n var r2 = r * r;\n\n // recursively search for items within radius in the kd-sorted arrays\n while (stack.length) {\n var axis = stack.pop() || 0;\n var right = stack.pop() || 0;\n var left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n var m = left + right >> 1;\n\n // include the middle item if it's in range\n var x = coords[2 * m];\n var y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n return result;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType} coords\n * @param {number} nodeSize\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction sort(ids, coords, nodeSize, left, right, axis) {\n if (right - left <= nodeSize) return;\n var m = left + right >> 1; // middle index\n\n // sort ids and coords around the middle index so that the halves lie\n // either left/right or top/bottom correspondingly (taking turns)\n select(ids, coords, m, left, right, axis);\n\n // recursively kd-sort first half and second half on the opposite axis\n sort(ids, coords, nodeSize, left, m - 1, 1 - axis);\n sort(ids, coords, nodeSize, m + 1, right, 1 - axis);\n}\n\n/**\n * Custom Floyd-Rivest selection algorithm: sort ids and coords so that\n * [left..k-1] items are smaller than k-th item (on either x or y axis)\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType} coords\n * @param {number} k\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction select(ids, coords, k, left, right, axis) {\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, axis);\n }\n var t = coords[2 * k + axis];\n var i = left;\n var j = right;\n swapItem(ids, coords, left, k);\n if (coords[2 * right + axis] > t) swapItem(ids, coords, left, right);\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + axis] < t) i++;\n while (coords[2 * j + axis] > t) j--;\n }\n if (coords[2 * left + axis] === t) swapItem(ids, coords, left, j);else {\n j++;\n swapItem(ids, coords, j, right);\n }\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType} coords\n * @param {number} i\n * @param {number} j\n */\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\n/**\n * @param {InstanceType} arr\n * @param {number} i\n * @param {number} j\n */\nfunction swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\n/**\n * @param {number} ax\n * @param {number} ay\n * @param {number} bx\n * @param {number} by\n */\nfunction sqDist(ax, ay, bx, by) {\n var dx = ax - bx;\n var dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nvar defaultOptions$2 = {\n minZoom: 0,\n // min zoom to generate clusters on\n maxZoom: 16,\n // max zoom level to cluster the points on\n minPoints: 2,\n // minimum points to form a cluster\n radius: 40,\n // cluster radius in pixels\n extent: 512,\n // tile extent (radius is calculated relative to it)\n nodeSize: 64,\n // size of the KD-tree leaf node, affects performance\n log: false,\n // whether to log timing info\n\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n // a reduce function for calculating custom cluster properties\n reduce: null,\n // (accumulated, props) => { accumulated.sum += props.sum; }\n\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n};\nvar fround = Math.fround || (tmp => x => {\n tmp[0] = +x;\n return tmp[0];\n})(new Float32Array(1));\nvar OFFSET_ZOOM = 2;\nvar OFFSET_ID = 3;\nvar OFFSET_PARENT = 4;\nvar OFFSET_NUM = 5;\nvar OFFSET_PROP = 6;\nclass Supercluster {\n constructor(options) {\n this.options = Object.assign(Object.create(defaultOptions$2), options);\n this.trees = new Array(this.options.maxZoom + 1);\n this.stride = this.options.reduce ? 7 : 6;\n this.clusterProps = [];\n }\n load(points) {\n var {\n log,\n minZoom,\n maxZoom\n } = this.options;\n if (log) console.time('total time');\n var timerId = \"prepare \".concat(points.length, \" points\");\n if (log) console.time(timerId);\n this.points = points;\n\n // generate a cluster object for each point and index input points into a KD-tree\n var data = [];\n for (var i = 0; i < points.length; i++) {\n var p = points[i];\n if (!p.geometry) continue;\n var [lng, lat] = p.geometry.coordinates;\n var x = fround(lngX(lng));\n var y = fround(latY(lat));\n // store internal point/cluster data in flat numeric arrays for performance\n data.push(x, y,\n // projected point coordinates\n Infinity,\n // the last zoom the point was processed at\n i,\n // index of the source feature in the original input array\n -1,\n // parent cluster id\n 1 // number of points in a cluster\n );\n if (this.options.reduce) data.push(0); // noop\n }\n var tree = this.trees[maxZoom + 1] = this._createTree(data);\n if (log) console.timeEnd(timerId);\n\n // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n for (var z = maxZoom; z >= minZoom; z--) {\n var now = +Date.now();\n\n // create a new set of clusters for the zoom and index them with a KD-tree\n tree = this.trees[z] = this._createTree(this._cluster(tree, z));\n if (log) console.log('z%d: %d clusters in %dms', z, tree.numItems, +Date.now() - now);\n }\n if (log) console.timeEnd('total time');\n return this;\n }\n getClusters(bbox, zoom) {\n var minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n var minLat = Math.max(-90, Math.min(90, bbox[1]));\n var maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n var maxLat = Math.max(-90, Math.min(90, bbox[3]));\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n var easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n var westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n var tree = this.trees[this._limitZoom(zoom)];\n var ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n var data = tree.data;\n var clusters = [];\n for (var id of ids) {\n var k = this.stride * id;\n clusters.push(data[k + OFFSET_NUM] > 1 ? getClusterJSON(data, k, this.clusterProps) : this.points[data[k + OFFSET_ID]]);\n }\n return clusters;\n }\n getChildren(clusterId) {\n var originId = this._getOriginId(clusterId);\n var originZoom = this._getOriginZoom(clusterId);\n var errorMsg = 'No cluster with the specified id.';\n var tree = this.trees[originZoom];\n if (!tree) throw new Error(errorMsg);\n var data = tree.data;\n if (originId * this.stride >= data.length) throw new Error(errorMsg);\n var r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n var x = data[originId * this.stride];\n var y = data[originId * this.stride + 1];\n var ids = tree.within(x, y, r);\n var children = [];\n for (var id of ids) {\n var k = id * this.stride;\n if (data[k + OFFSET_PARENT] === clusterId) {\n children.push(data[k + OFFSET_NUM] > 1 ? getClusterJSON(data, k, this.clusterProps) : this.points[data[k + OFFSET_ID]]);\n }\n }\n if (children.length === 0) throw new Error(errorMsg);\n return children;\n }\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n var leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n return leaves;\n }\n getTile(z, x, y) {\n var tree = this.trees[this._limitZoom(z)];\n var z2 = Math.pow(2, z);\n var {\n extent,\n radius\n } = this.options;\n var p = radius / extent;\n var top = (y - p) / z2;\n var bottom = (y + 1 + p) / z2;\n var tile = {\n features: []\n };\n this._addTileFeatures(tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom), tree.data, x, y, z2, tile);\n if (x === 0) {\n this._addTileFeatures(tree.range(1 - p / z2, top, 1, bottom), tree.data, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(tree.range(0, top, p / z2, bottom), tree.data, -1, y, z2, tile);\n }\n return tile.features.length ? tile : null;\n }\n getClusterExpansionZoom(clusterId) {\n var expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n var children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n }\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n var children = this.getChildren(clusterId);\n for (var child of children) {\n var props = child.properties;\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n if (result.length === limit) break;\n }\n return skipped;\n }\n _createTree(data) {\n var tree = new KDBush(data.length / this.stride | 0, this.options.nodeSize, Float32Array);\n for (var i = 0; i < data.length; i += this.stride) tree.add(data[i], data[i + 1]);\n tree.finish();\n tree.data = data;\n return tree;\n }\n _addTileFeatures(ids, data, x, y, z2, tile) {\n for (var i of ids) {\n var k = i * this.stride;\n var isCluster = data[k + OFFSET_NUM] > 1;\n var tags = void 0,\n px = void 0,\n py = void 0;\n if (isCluster) {\n tags = getClusterProperties(data, k, this.clusterProps);\n px = data[k];\n py = data[k + 1];\n } else {\n var p = this.points[data[k + OFFSET_ID]];\n tags = p.properties;\n var [lng, lat] = p.geometry.coordinates;\n px = lngX(lng);\n py = latY(lat);\n }\n var f = {\n type: 1,\n geometry: [[Math.round(this.options.extent * (px * z2 - x)), Math.round(this.options.extent * (py * z2 - y))]],\n tags\n };\n\n // assign id\n var id = void 0;\n if (isCluster || this.options.generateId) {\n // optionally generate id for points\n id = data[k + OFFSET_ID];\n } else {\n // keep id if already assigned\n id = this.points[data[k + OFFSET_ID]].id;\n }\n if (id !== undefined) f.id = id;\n tile.features.push(f);\n }\n }\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+z), this.options.maxZoom + 1));\n }\n _cluster(tree, zoom) {\n var {\n radius,\n extent,\n reduce,\n minPoints\n } = this.options;\n var r = radius / (extent * Math.pow(2, zoom));\n var data = tree.data;\n var nextData = [];\n var stride = this.stride;\n\n // loop through each point\n for (var i = 0; i < data.length; i += stride) {\n // if we've already visited the point at this zoom level, skip it\n if (data[i + OFFSET_ZOOM] <= zoom) continue;\n data[i + OFFSET_ZOOM] = zoom;\n\n // find all nearby points\n var x = data[i];\n var y = data[i + 1];\n var neighborIds = tree.within(data[i], data[i + 1], r);\n var numPointsOrigin = data[i + OFFSET_NUM];\n var numPoints = numPointsOrigin;\n\n // count the number of points in a potential cluster\n for (var neighborId of neighborIds) {\n var k = neighborId * stride;\n // filter out neighbors that are already processed\n if (data[k + OFFSET_ZOOM] > zoom) numPoints += data[k + OFFSET_NUM];\n }\n\n // if there were neighbors to merge, and there are enough points to form a cluster\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n var wx = x * numPointsOrigin;\n var wy = y * numPointsOrigin;\n var clusterProperties = void 0;\n var clusterPropIndex = -1;\n\n // encode both zoom and point index on which the cluster originated -- offset by total length of features\n var id = ((i / stride | 0) << 5) + (zoom + 1) + this.points.length;\n for (var _neighborId of neighborIds) {\n var _k = _neighborId * stride;\n if (data[_k + OFFSET_ZOOM] <= zoom) continue;\n data[_k + OFFSET_ZOOM] = zoom; // save the zoom (so it doesn't get processed twice)\n\n var numPoints2 = data[_k + OFFSET_NUM];\n wx += data[_k] * numPoints2; // accumulate coordinates for calculating weighted center\n wy += data[_k + 1] * numPoints2;\n data[_k + OFFSET_PARENT] = id;\n if (reduce) {\n if (!clusterProperties) {\n clusterProperties = this._map(data, i, true);\n clusterPropIndex = this.clusterProps.length;\n this.clusterProps.push(clusterProperties);\n }\n reduce(clusterProperties, this._map(data, _k));\n }\n }\n data[i + OFFSET_PARENT] = id;\n nextData.push(wx / numPoints, wy / numPoints, Infinity, id, -1, numPoints);\n if (reduce) nextData.push(clusterPropIndex);\n } else {\n // left points as unclustered\n for (var j = 0; j < stride; j++) nextData.push(data[i + j]);\n if (numPoints > 1) {\n for (var _neighborId2 of neighborIds) {\n var _k2 = _neighborId2 * stride;\n if (data[_k2 + OFFSET_ZOOM] <= zoom) continue;\n data[_k2 + OFFSET_ZOOM] = zoom;\n for (var _j = 0; _j < stride; _j++) nextData.push(data[_k2 + _j]);\n }\n }\n }\n }\n return nextData;\n }\n\n // get index of the point from which the cluster originated\n _getOriginId(clusterId) {\n return clusterId - this.points.length >> 5;\n }\n\n // get zoom of the point from which the cluster originated\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n _map(data, i, clone) {\n if (data[i + OFFSET_NUM] > 1) {\n var props = this.clusterProps[data[i + OFFSET_PROP]];\n return clone ? Object.assign({}, props) : props;\n }\n var original = this.points[data[i + OFFSET_ID]].properties;\n var result = this.options.map(original);\n return clone && result === original ? Object.assign({}, result) : result;\n }\n}\nfunction getClusterJSON(data, i, clusterProps) {\n return {\n type: 'Feature',\n id: data[i + OFFSET_ID],\n properties: getClusterProperties(data, i, clusterProps),\n geometry: {\n type: 'Point',\n coordinates: [xLng(data[i]), yLat(data[i + 1])]\n }\n };\n}\nfunction getClusterProperties(data, i, clusterProps) {\n var count = data[i + OFFSET_NUM];\n var abbrev = count >= 10000 ? \"\".concat(Math.round(count / 1000), \"k\") : count >= 1000 ? \"\".concat(Math.round(count / 100) / 10, \"k\") : count;\n var propIndex = data[i + OFFSET_PROP];\n var properties = propIndex === -1 ? {} : Object.assign({}, clusterProps[propIndex]);\n return Object.assign(properties, {\n cluster: true,\n cluster_id: data[i + OFFSET_ID],\n point_count: count,\n point_count_abbreviated: abbrev\n });\n}\n\n// longitude/latitude to spherical mercator in [0..1] range\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\nfunction latY(lat) {\n var sin = Math.sin(lat * Math.PI / 180);\n var y = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y < 0 ? 0 : y > 1 ? 1 : y;\n}\n\n// spherical mercator to longitude/latitude\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\nfunction yLat(y) {\n var y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\n/**\n * Copyright 2023 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * util class that creates a common set of convenience functions to wrap\n * shared behavior of Advanced Markers and Markers.\n */\nclass MarkerUtils {\n static isAdvancedMarkerAvailable(map) {\n return google.maps.marker && map.getMapCapabilities().isAdvancedMarkersAvailable === true;\n }\n static isAdvancedMarker(marker) {\n return google.maps.marker && marker instanceof google.maps.marker.AdvancedMarkerElement;\n }\n static setMap(marker, map) {\n if (this.isAdvancedMarker(marker)) {\n marker.map = map;\n } else {\n marker.setMap(map);\n }\n }\n static getPosition(marker) {\n // SuperClusterAlgorithm.calculate expects a LatLng instance so we fake it for Adv Markers\n if (this.isAdvancedMarker(marker)) {\n if (marker.position) {\n if (marker.position instanceof google.maps.LatLng) {\n return marker.position;\n }\n // since we can't cast to LatLngLiteral for reasons =(\n if (marker.position.lat && marker.position.lng) {\n return new google.maps.LatLng(marker.position.lat, marker.position.lng);\n }\n }\n return new google.maps.LatLng(null);\n }\n return marker.getPosition();\n }\n static getVisible(marker) {\n if (this.isAdvancedMarker(marker)) {\n /**\n * Always return true for Advanced Markers because the clusterer\n * uses getVisible as a way to count legacy markers not as an actual\n * indicator of visibility for some reason. Even when markers are hidden\n * Marker.getVisible returns `true` and this is used to set the marker count\n * on the cluster. See the behavior of Cluster.count\n */\n return true;\n }\n return marker.getVisible();\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Cluster {\n constructor(_ref) {\n var {\n markers,\n position\n } = _ref;\n this.markers = markers;\n if (position) {\n if (position instanceof google.maps.LatLng) {\n this._position = position;\n } else {\n this._position = new google.maps.LatLng(position);\n }\n }\n }\n get bounds() {\n if (this.markers.length === 0 && !this._position) {\n return;\n }\n var bounds = new google.maps.LatLngBounds(this._position, this._position);\n for (var marker of this.markers) {\n bounds.extend(MarkerUtils.getPosition(marker));\n }\n return bounds;\n }\n get position() {\n return this._position || this.bounds.getCenter();\n }\n /**\n * Get the count of **visible** markers.\n */\n get count() {\n return this.markers.filter(m => MarkerUtils.getVisible(m)).length;\n }\n /**\n * Add a marker to the cluster.\n */\n push(marker) {\n this.markers.push(marker);\n }\n /**\n * Cleanup references and remove marker from map.\n */\n delete() {\n if (this.marker) {\n MarkerUtils.setMap(this.marker, null);\n this.marker = undefined;\n }\n this.markers.length = 0;\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns the markers visible in a padded map viewport\n *\n * @param map\n * @param mapCanvasProjection\n * @param markers The list of marker to filter\n * @param viewportPaddingPixels The padding in pixel\n * @returns The list of markers in the padded viewport\n */\nvar filterMarkersToPaddedViewport = (map, mapCanvasProjection, markers, viewportPaddingPixels) => {\n var extendedMapBounds = extendBoundsToPaddedViewport(map.getBounds(), mapCanvasProjection, viewportPaddingPixels);\n return markers.filter(marker => extendedMapBounds.contains(MarkerUtils.getPosition(marker)));\n};\n/**\n * Extends a bounds by a number of pixels in each direction\n */\nvar extendBoundsToPaddedViewport = (bounds, projection, numPixels) => {\n var {\n northEast,\n southWest\n } = latLngBoundsToPixelBounds(bounds, projection);\n var extendedPixelBounds = extendPixelBounds({\n northEast,\n southWest\n }, numPixels);\n return pixelBoundsToLatLngBounds(extendedPixelBounds, projection);\n};\n/**\n * Gets the extended bounds as a bbox [westLng, southLat, eastLng, northLat]\n */\nvar getPaddedViewport = (bounds, projection, pixels) => {\n var extended = extendBoundsToPaddedViewport(bounds, projection, pixels);\n var ne = extended.getNorthEast();\n var sw = extended.getSouthWest();\n return [sw.lng(), sw.lat(), ne.lng(), ne.lat()];\n};\n/**\n * Returns the distance between 2 positions.\n *\n * @hidden\n */\nvar distanceBetweenPoints = (p1, p2) => {\n var R = 6371; // Radius of the Earth in km\n var dLat = (p2.lat - p1.lat) * Math.PI / 180;\n var dLon = (p2.lng - p1.lng) * Math.PI / 180;\n var sinDLat = Math.sin(dLat / 2);\n var sinDLon = Math.sin(dLon / 2);\n var a = sinDLat * sinDLat + Math.cos(p1.lat * Math.PI / 180) * Math.cos(p2.lat * Math.PI / 180) * sinDLon * sinDLon;\n var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n};\n/**\n * Converts a LatLng bound to pixels.\n *\n * @hidden\n */\nvar latLngBoundsToPixelBounds = (bounds, projection) => {\n return {\n northEast: projection.fromLatLngToDivPixel(bounds.getNorthEast()),\n southWest: projection.fromLatLngToDivPixel(bounds.getSouthWest())\n };\n};\n/**\n * Extends a pixel bounds by numPixels in all directions.\n *\n * @hidden\n */\nvar extendPixelBounds = (_ref2, numPixels) => {\n var {\n northEast,\n southWest\n } = _ref2;\n northEast.x += numPixels;\n northEast.y -= numPixels;\n southWest.x -= numPixels;\n southWest.y += numPixels;\n return {\n northEast,\n southWest\n };\n};\n/**\n * @hidden\n */\nvar pixelBoundsToLatLngBounds = (_ref3, projection) => {\n var {\n northEast,\n southWest\n } = _ref3;\n var sw = projection.fromDivPixelToLatLng(southWest);\n var ne = projection.fromDivPixelToLatLng(northEast);\n return new google.maps.LatLngBounds(sw, ne);\n};\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @hidden\n */\nclass AbstractAlgorithm {\n constructor(_ref4) {\n var {\n maxZoom = 16\n } = _ref4;\n this.maxZoom = maxZoom;\n }\n /**\n * Helper function to bypass clustering based upon some map state such as\n * zoom, number of markers, etc.\n *\n * ```typescript\n * cluster({markers, map}: AlgorithmInput): Cluster[] {\n * if (shouldBypassClustering(map)) {\n * return this.noop({markers})\n * }\n * }\n * ```\n */\n noop(_ref5) {\n var {\n markers\n } = _ref5;\n return noop$1(markers);\n }\n}\n/**\n * Abstract viewport algorithm proves a class to filter markers by a padded\n * viewport. This is a common optimization.\n *\n * @hidden\n */\nclass AbstractViewportAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var {\n viewportPadding = 60\n } = _a,\n options = __rest(_a, [\"viewportPadding\"]);\n super(options);\n this.viewportPadding = 60;\n this.viewportPadding = viewportPadding;\n }\n calculate(_ref6) {\n var {\n markers,\n map,\n mapCanvasProjection\n } = _ref6;\n if (map.getZoom() >= this.maxZoom) {\n return {\n clusters: this.noop({\n markers\n }),\n changed: false\n };\n }\n return {\n clusters: this.cluster({\n markers: filterMarkersToPaddedViewport(map, mapCanvasProjection, markers, this.viewportPadding),\n map,\n mapCanvasProjection\n })\n };\n }\n}\n/**\n * @hidden\n */\nvar noop$1 = markers => {\n var clusters = markers.map(marker => new Cluster({\n position: MarkerUtils.getPosition(marker),\n markers: [marker]\n }));\n return clusters;\n};\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The default Grid algorithm historically used in Google Maps marker\n * clustering.\n *\n * The Grid algorithm does not implement caching and markers may flash as the\n * viewport changes. Instead use {@link SuperClusterAlgorithm}.\n */\nclass GridAlgorithm extends AbstractViewportAlgorithm {\n constructor(_a) {\n var {\n maxDistance = 40000,\n gridSize = 40\n } = _a,\n options = __rest(_a, [\"maxDistance\", \"gridSize\"]);\n super(options);\n this.clusters = [];\n this.state = {\n zoom: -1\n };\n this.maxDistance = maxDistance;\n this.gridSize = gridSize;\n }\n calculate(_ref7) {\n var {\n markers,\n map,\n mapCanvasProjection\n } = _ref7;\n var state = {\n zoom: map.getZoom()\n };\n var changed = false;\n if (this.state.zoom >= this.maxZoom && state.zoom >= this.maxZoom) ;else {\n changed = !equal(this.state, state);\n }\n this.state = state;\n if (map.getZoom() >= this.maxZoom) {\n return {\n clusters: this.noop({\n markers\n }),\n changed\n };\n }\n return {\n clusters: this.cluster({\n markers: filterMarkersToPaddedViewport(map, mapCanvasProjection, markers, this.viewportPadding),\n map,\n mapCanvasProjection\n })\n };\n }\n cluster(_ref8) {\n var {\n markers,\n map,\n mapCanvasProjection\n } = _ref8;\n this.clusters = [];\n markers.forEach(marker => {\n this.addToClosestCluster(marker, map, mapCanvasProjection);\n });\n return this.clusters;\n }\n addToClosestCluster(marker, map, projection) {\n var maxDistance = this.maxDistance; // Some large number\n var cluster = null;\n for (var i = 0; i < this.clusters.length; i++) {\n var candidate = this.clusters[i];\n var distance = distanceBetweenPoints(candidate.bounds.getCenter().toJSON(), MarkerUtils.getPosition(marker).toJSON());\n if (distance < maxDistance) {\n maxDistance = distance;\n cluster = candidate;\n }\n }\n if (cluster && extendBoundsToPaddedViewport(cluster.bounds, projection, this.gridSize).contains(MarkerUtils.getPosition(marker))) {\n cluster.push(marker);\n } else {\n var _cluster = new Cluster({\n markers: [marker]\n });\n this.clusters.push(_cluster);\n }\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Noop algorithm does not generate any clusters or filter markers by the an extended viewport.\n */\nclass NoopAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var options = __rest(_a, []);\n super(options);\n }\n calculate(_ref9) {\n var {\n markers,\n map,\n mapCanvasProjection\n } = _ref9;\n return {\n clusters: this.cluster({\n markers,\n map,\n mapCanvasProjection\n }),\n changed: false\n };\n }\n cluster(input) {\n return this.noop(input);\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A very fast JavaScript algorithm for geospatial point clustering using KD trees.\n *\n * @see https://www.npmjs.com/package/supercluster for more information on options.\n */\nclass SuperClusterAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var {\n maxZoom,\n radius = 60\n } = _a,\n options = __rest(_a, [\"maxZoom\", \"radius\"]);\n super({\n maxZoom\n });\n this.state = {\n zoom: -1\n };\n this.superCluster = new Supercluster(Object.assign({\n maxZoom: this.maxZoom,\n radius\n }, options));\n }\n calculate(input) {\n var changed = false;\n var state = {\n zoom: input.map.getZoom()\n };\n if (!equal(input.markers, this.markers)) {\n changed = true;\n // TODO use proxy to avoid copy?\n this.markers = [...input.markers];\n var points = this.markers.map(marker => {\n var position = MarkerUtils.getPosition(marker);\n var coordinates = [position.lng(), position.lat()];\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates\n },\n properties: {\n marker\n }\n };\n });\n this.superCluster.load(points);\n }\n if (!changed) {\n if (this.state.zoom <= this.maxZoom || state.zoom <= this.maxZoom) {\n changed = !equal(this.state, state);\n }\n }\n this.state = state;\n if (changed) {\n this.clusters = this.cluster(input);\n }\n return {\n clusters: this.clusters,\n changed\n };\n }\n cluster(_ref10) {\n var {\n map\n } = _ref10;\n return this.superCluster.getClusters([-180, -90, 180, 90], Math.round(map.getZoom())).map(feature => this.transformCluster(feature));\n }\n transformCluster(_ref11) {\n var {\n geometry: {\n coordinates: [lng, lat]\n },\n properties\n } = _ref11;\n if (properties.cluster) {\n return new Cluster({\n markers: this.superCluster.getLeaves(properties.cluster_id, Infinity).map(leaf => leaf.properties.marker),\n position: {\n lat,\n lng\n }\n });\n }\n var marker = properties.marker;\n return new Cluster({\n markers: [marker],\n position: MarkerUtils.getPosition(marker)\n });\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A very fast JavaScript algorithm for geospatial point clustering using KD trees.\n *\n * @see https://www.npmjs.com/package/supercluster for more information on options.\n */\nclass SuperClusterViewportAlgorithm extends AbstractViewportAlgorithm {\n constructor(_a) {\n var {\n maxZoom,\n radius = 60,\n viewportPadding = 60\n } = _a,\n options = __rest(_a, [\"maxZoom\", \"radius\", \"viewportPadding\"]);\n super({\n maxZoom,\n viewportPadding\n });\n this.superCluster = new Supercluster(Object.assign({\n maxZoom: this.maxZoom,\n radius\n }, options));\n this.state = {\n zoom: -1,\n view: [0, 0, 0, 0]\n };\n }\n calculate(input) {\n var state = {\n zoom: Math.round(input.map.getZoom()),\n view: getPaddedViewport(input.map.getBounds(), input.mapCanvasProjection, this.viewportPadding)\n };\n var changed = !equal(this.state, state);\n if (!equal(input.markers, this.markers)) {\n changed = true;\n // TODO use proxy to avoid copy?\n this.markers = [...input.markers];\n var points = this.markers.map(marker => {\n var position = MarkerUtils.getPosition(marker);\n var coordinates = [position.lng(), position.lat()];\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates\n },\n properties: {\n marker\n }\n };\n });\n this.superCluster.load(points);\n }\n if (changed) {\n this.clusters = this.cluster(input);\n this.state = state;\n }\n return {\n clusters: this.clusters,\n changed\n };\n }\n cluster(_ref12) {\n var {\n map,\n mapCanvasProjection\n } = _ref12;\n /* recalculate new state because we can't use the cached version. */\n var state = {\n zoom: Math.round(map.getZoom()),\n view: getPaddedViewport(map.getBounds(), mapCanvasProjection, this.viewportPadding)\n };\n return this.superCluster.getClusters(state.view, state.zoom).map(feature => this.transformCluster(feature));\n }\n transformCluster(_ref13) {\n var {\n geometry: {\n coordinates: [lng, lat]\n },\n properties\n } = _ref13;\n if (properties.cluster) {\n return new Cluster({\n markers: this.superCluster.getLeaves(properties.cluster_id, Infinity).map(leaf => leaf.properties.marker),\n position: {\n lat,\n lng\n }\n });\n }\n var marker = properties.marker;\n return new Cluster({\n markers: [marker],\n position: MarkerUtils.getPosition(marker)\n });\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provides statistics on all clusters in the current render cycle for use in {@link Renderer.render}.\n */\nclass ClusterStats {\n constructor(markers, clusters) {\n this.markers = {\n sum: markers.length\n };\n var clusterMarkerCounts = clusters.map(a => a.count);\n var clusterMarkerSum = clusterMarkerCounts.reduce((a, b) => a + b, 0);\n this.clusters = {\n count: clusters.length,\n markers: {\n mean: clusterMarkerSum / clusters.length,\n sum: clusterMarkerSum,\n min: Math.min(...clusterMarkerCounts),\n max: Math.max(...clusterMarkerCounts)\n }\n };\n }\n}\nclass DefaultRenderer {\n /**\n * The default render function for the library used by {@link MarkerClusterer}.\n *\n * Currently set to use the following:\n *\n * ```typescript\n * // change color if this cluster has more markers than the mean cluster\n * const color =\n * count > Math.max(10, stats.clusters.markers.mean)\n * ? \"#ff0000\"\n * : \"#0000ff\";\n *\n * // create svg url with fill color\n * const svg = window.btoa(`\n * \n * \n * \n * \n * \n * `);\n *\n * // create marker using svg icon\n * return new google.maps.Marker({\n * position,\n * icon: {\n * url: `data:image/svg+xml;base64,${svg}`,\n * scaledSize: new google.maps.Size(45, 45),\n * },\n * label: {\n * text: String(count),\n * color: \"rgba(255,255,255,0.9)\",\n * fontSize: \"12px\",\n * },\n * // adjust zIndex to be above other markers\n * zIndex: 1000 + count,\n * });\n * ```\n */\n render(_ref14, stats, map) {\n var {\n count,\n position\n } = _ref14;\n // change color if this cluster has more markers than the mean cluster\n var color = count > Math.max(10, stats.clusters.markers.mean) ? \"#ff0000\" : \"#0000ff\";\n // create svg literal with fill color\n var svg = \"\\n\\n\\n\\n\").concat(count, \"\\n\");\n var title = \"Cluster of \".concat(count, \" markers\"),\n // adjust zIndex to be above other markers\n zIndex = Number(google.maps.Marker.MAX_ZINDEX) + count;\n if (MarkerUtils.isAdvancedMarkerAvailable(map)) {\n // create cluster SVG element\n var parser = new DOMParser();\n var svgEl = parser.parseFromString(svg, \"image/svg+xml\").documentElement;\n svgEl.setAttribute(\"transform\", \"translate(0 25)\");\n var _clusterOptions = {\n map,\n position,\n zIndex,\n title,\n content: svgEl\n };\n return new google.maps.marker.AdvancedMarkerElement(_clusterOptions);\n }\n var clusterOptions = {\n position,\n zIndex,\n title,\n icon: {\n url: \"data:image/svg+xml;base64,\".concat(btoa(svg)),\n anchor: new google.maps.Point(25, 25)\n }\n };\n return new google.maps.Marker(clusterOptions);\n }\n}\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Extends an object's prototype by another's.\n *\n * @param type1 The Type to be extended.\n * @param type2 The Type to extend with.\n * @ignore\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extend(type1, type2) {\n /* istanbul ignore next */\n // eslint-disable-next-line prefer-const\n for (var property in type2.prototype) {\n type1.prototype[property] = type2.prototype[property];\n }\n}\n/**\n * @ignore\n */\nclass OverlayViewSafe {\n constructor() {\n // MarkerClusterer implements google.maps.OverlayView interface. We use the\n // extend function to extend MarkerClusterer with google.maps.OverlayView\n // because it might not always be available when the code is defined so we\n // look for it at the last possible moment. If it doesn't exist now then\n // there is no point going ahead :)\n extend(OverlayViewSafe, google.maps.OverlayView);\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MarkerClustererEvents;\n(function (MarkerClustererEvents) {\n MarkerClustererEvents[\"CLUSTERING_BEGIN\"] = \"clusteringbegin\";\n MarkerClustererEvents[\"CLUSTERING_END\"] = \"clusteringend\";\n MarkerClustererEvents[\"CLUSTER_CLICK\"] = \"click\";\n})(MarkerClustererEvents || (MarkerClustererEvents = {}));\nvar defaultOnClusterClickHandler = (_, cluster, map) => {\n map.fitBounds(cluster.bounds);\n};\n/**\n * MarkerClusterer creates and manages per-zoom-level clusters for large amounts\n * of markers. See {@link MarkerClustererOptions} for more details.\n *\n */\nclass MarkerClusterer extends OverlayViewSafe {\n constructor(_ref15) {\n var {\n map,\n markers = [],\n algorithmOptions = {},\n algorithm = new SuperClusterAlgorithm(algorithmOptions),\n renderer = new DefaultRenderer(),\n onClusterClick = defaultOnClusterClickHandler\n } = _ref15;\n super();\n this.markers = [...markers];\n this.clusters = [];\n this.algorithm = algorithm;\n this.renderer = renderer;\n this.onClusterClick = onClusterClick;\n if (map) {\n this.setMap(map);\n }\n }\n addMarker(marker, noDraw) {\n if (this.markers.includes(marker)) {\n return;\n }\n this.markers.push(marker);\n if (!noDraw) {\n this.render();\n }\n }\n addMarkers(markers, noDraw) {\n markers.forEach(marker => {\n this.addMarker(marker, true);\n });\n if (!noDraw) {\n this.render();\n }\n }\n removeMarker(marker, noDraw) {\n var index = this.markers.indexOf(marker);\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n MarkerUtils.setMap(marker, null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n if (!noDraw) {\n this.render();\n }\n return true;\n }\n removeMarkers(markers, noDraw) {\n var removed = false;\n markers.forEach(marker => {\n removed = this.removeMarker(marker, true) || removed;\n });\n if (removed && !noDraw) {\n this.render();\n }\n return removed;\n }\n clearMarkers(noDraw) {\n this.markers.length = 0;\n if (!noDraw) {\n this.render();\n }\n }\n /**\n * Recalculates and draws all the marker clusters.\n */\n render() {\n var map = this.getMap();\n if (map instanceof google.maps.Map && map.getProjection()) {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_BEGIN, this);\n var {\n clusters,\n changed\n } = this.algorithm.calculate({\n markers: this.markers,\n map,\n mapCanvasProjection: this.getProjection()\n });\n // Allow algorithms to return flag on whether the clusters/markers have changed.\n if (changed || changed == undefined) {\n // Accumulate the markers of the clusters composed of a single marker.\n // Those clusters directly use the marker.\n // Clusters with more than one markers use a group marker generated by a renderer.\n var singleMarker = new Set();\n for (var cluster of clusters) {\n if (cluster.markers.length == 1) {\n singleMarker.add(cluster.markers[0]);\n }\n }\n var groupMarkers = [];\n // Iterate the clusters that are currently rendered.\n for (var _cluster2 of this.clusters) {\n if (_cluster2.marker == null) {\n continue;\n }\n if (_cluster2.markers.length == 1) {\n if (!singleMarker.has(_cluster2.marker)) {\n // The marker:\n // - was previously rendered because it is from a cluster with 1 marker,\n // - should no more be rendered as it is not in singleMarker.\n MarkerUtils.setMap(_cluster2.marker, null);\n }\n } else {\n // Delay the removal of old group markers to avoid flickering.\n groupMarkers.push(_cluster2.marker);\n }\n }\n this.clusters = clusters;\n this.renderClusters();\n // Delayed removal of the markers of the former groups.\n requestAnimationFrame(() => groupMarkers.forEach(marker => MarkerUtils.setMap(marker, null)));\n }\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_END, this);\n }\n }\n onAdd() {\n this.idleListener = this.getMap().addListener(\"idle\", this.render.bind(this));\n this.render();\n }\n onRemove() {\n google.maps.event.removeListener(this.idleListener);\n this.reset();\n }\n reset() {\n this.markers.forEach(marker => MarkerUtils.setMap(marker, null));\n this.clusters.forEach(cluster => cluster.delete());\n this.clusters = [];\n }\n renderClusters() {\n // Generate stats to pass to renderers.\n var stats = new ClusterStats(this.markers, this.clusters);\n var map = this.getMap();\n this.clusters.forEach(cluster => {\n if (cluster.markers.length === 1) {\n cluster.marker = cluster.markers[0];\n } else {\n // Generate the marker to represent the group.\n cluster.marker = this.renderer.render(cluster, stats, map);\n // Make sure all individual markers are removed from the map.\n cluster.markers.forEach(marker => MarkerUtils.setMap(marker, null));\n if (this.onClusterClick) {\n cluster.marker.addListener(\"click\", /* istanbul ignore next */\n event => {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTER_CLICK, cluster);\n this.onClusterClick(event, cluster, map);\n });\n }\n }\n MarkerUtils.setMap(cluster.marker, map);\n });\n }\n}\n\nvar index_esm = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AbstractAlgorithm: AbstractAlgorithm,\n AbstractViewportAlgorithm: AbstractViewportAlgorithm,\n Cluster: Cluster,\n ClusterStats: ClusterStats,\n DefaultRenderer: DefaultRenderer,\n GridAlgorithm: GridAlgorithm,\n MarkerClusterer: MarkerClusterer,\n get MarkerClustererEvents () { return MarkerClustererEvents; },\n MarkerUtils: MarkerUtils,\n NoopAlgorithm: NoopAlgorithm,\n SuperClusterAlgorithm: SuperClusterAlgorithm,\n SuperClusterViewportAlgorithm: SuperClusterViewportAlgorithm,\n defaultOnClusterClickHandler: defaultOnClusterClickHandler,\n distanceBetweenPoints: distanceBetweenPoints,\n extendBoundsToPaddedViewport: extendBoundsToPaddedViewport,\n extendPixelBounds: extendPixelBounds,\n filterMarkersToPaddedViewport: filterMarkersToPaddedViewport,\n getPaddedViewport: getPaddedViewport,\n noop: noop$1,\n pixelBoundsToLatLngBounds: pixelBoundsToLatLngBounds\n});\n\nfunction ownKeys$a(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction useGoogleMarkerClusterer(options) {\n var map = useGoogleMap();\n var [markerClusterer, setMarkerClusterer] = useState(null);\n useEffect(() => {\n if (map && markerClusterer === null) {\n var markerCluster = new MarkerClusterer(_objectSpread$a(_objectSpread$a({}, options), {}, {\n map\n }));\n setMarkerClusterer(markerCluster);\n }\n }, [map]);\n return markerClusterer;\n}\n/** Wrapper around [@googlemaps/markerclusterer](https://github.com/googlemaps/js-markerclusterer)\n *\n * Accepts {@link MarkerClustererOptionsSubset} which is a subset of {@link MarkerClustererOptions}\n */\nfunction GoogleMarkerClusterer(_ref) {\n var {\n children,\n options\n } = _ref;\n var markerClusterer = useGoogleMarkerClusterer(options);\n return markerClusterer !== null ? children(markerClusterer) : null;\n}\nvar GoogleMarkerClusterer$1 = memo(GoogleMarkerClusterer);\n\nvar eventMap$c = {\n onCloseClick: 'closeclick',\n onContentChanged: 'content_changed',\n onDomReady: 'domready',\n onPositionChanged: 'position_changed',\n onZindexChanged: 'zindex_changed'\n};\nvar updaterMap$c = {\n options(instance, options) {\n instance.setOptions(options);\n },\n position(instance, position) {\n instance.setPosition(position);\n },\n zIndex(instance, zIndex) {\n instance.setZIndex(zIndex);\n }\n};\nfunction InfoWindowFunctional(_ref) {\n var {\n children,\n anchor,\n options,\n position,\n zIndex,\n onCloseClick,\n onDomReady,\n onContentChanged,\n onPositionChanged,\n onZindexChanged,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [closeclickListener, setCloseClickListener] = useState(null);\n var [domreadyclickListener, setDomReadyClickListener] = useState(null);\n var [contentchangedclickListener, setContentChangedClickListener] = useState(null);\n var [positionchangedclickListener, setPositionChangedClickListener] = useState(null);\n var [zindexchangedclickListener, setZindexChangedClickListener] = useState(null);\n var containerElementRef = useRef(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.close();\n if (anchor) {\n instance.open(map, anchor);\n } else if (instance.getPosition()) {\n instance.open(map);\n }\n }\n }, [map, instance, anchor]);\n useEffect(() => {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n if (position && instance !== null) {\n instance.setPosition(position);\n }\n }, [position]);\n useEffect(() => {\n if (typeof zIndex === 'number' && instance !== null) {\n instance.setZIndex(zIndex);\n }\n }, [zIndex]);\n useEffect(() => {\n if (instance && onCloseClick) {\n if (closeclickListener !== null) {\n google.maps.event.removeListener(closeclickListener);\n }\n setCloseClickListener(google.maps.event.addListener(instance, 'closeclick', onCloseClick));\n }\n }, [onCloseClick]);\n useEffect(() => {\n if (instance && onDomReady) {\n if (domreadyclickListener !== null) {\n google.maps.event.removeListener(domreadyclickListener);\n }\n setDomReadyClickListener(google.maps.event.addListener(instance, 'domready', onDomReady));\n }\n }, [onDomReady]);\n useEffect(() => {\n if (instance && onContentChanged) {\n if (contentchangedclickListener !== null) {\n google.maps.event.removeListener(contentchangedclickListener);\n }\n setContentChangedClickListener(google.maps.event.addListener(instance, 'content_changed', onContentChanged));\n }\n }, [onContentChanged]);\n useEffect(() => {\n if (instance && onPositionChanged) {\n if (positionchangedclickListener !== null) {\n google.maps.event.removeListener(positionchangedclickListener);\n }\n setPositionChangedClickListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(() => {\n if (instance && onZindexChanged) {\n if (zindexchangedclickListener !== null) {\n google.maps.event.removeListener(zindexchangedclickListener);\n }\n setZindexChangedClickListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(() => {\n var infoWindow = new google.maps.InfoWindow(options);\n setInstance(infoWindow);\n containerElementRef.current = document.createElement('div');\n if (onCloseClick) {\n setCloseClickListener(google.maps.event.addListener(infoWindow, 'closeclick', onCloseClick));\n }\n if (onDomReady) {\n setDomReadyClickListener(google.maps.event.addListener(infoWindow, 'domready', onDomReady));\n }\n if (onContentChanged) {\n setContentChangedClickListener(google.maps.event.addListener(infoWindow, 'content_changed', onContentChanged));\n }\n if (onPositionChanged) {\n setPositionChangedClickListener(google.maps.event.addListener(infoWindow, 'position_changed', onPositionChanged));\n }\n if (onZindexChanged) {\n setZindexChangedClickListener(google.maps.event.addListener(infoWindow, 'zindex_changed', onZindexChanged));\n }\n infoWindow.setContent(containerElementRef.current);\n if (position) {\n infoWindow.setPosition(position);\n }\n if (zIndex) {\n infoWindow.setZIndex(zIndex);\n }\n if (anchor) {\n infoWindow.open(map, anchor);\n } else if (infoWindow.getPosition()) {\n infoWindow.open(map);\n } else {\n invariant(false, \"You must provide either an anchor (typically render it inside a ) or a position props for .\");\n }\n if (onLoad) {\n onLoad(infoWindow);\n }\n return () => {\n if (closeclickListener) {\n google.maps.event.removeListener(closeclickListener);\n }\n if (contentchangedclickListener) {\n google.maps.event.removeListener(contentchangedclickListener);\n }\n if (domreadyclickListener) {\n google.maps.event.removeListener(domreadyclickListener);\n }\n if (positionchangedclickListener) {\n google.maps.event.removeListener(positionchangedclickListener);\n }\n if (zindexchangedclickListener) {\n google.maps.event.removeListener(zindexchangedclickListener);\n }\n if (onUnmount) {\n onUnmount(infoWindow);\n }\n infoWindow.close();\n };\n }, []);\n return containerElementRef.current ? createPortal(Children.only(children), containerElementRef.current) : null;\n}\nvar InfoWindowF = memo(InfoWindowFunctional);\nclass InfoWindow extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"containerElement\", null);\n _defineProperty(this, \"state\", {\n infoWindow: null\n });\n _defineProperty(this, \"open\", (infoWindow, anchor) => {\n if (anchor) {\n infoWindow.open(this.context, anchor);\n } else if (infoWindow.getPosition()) {\n infoWindow.open(this.context);\n } else {\n invariant(false, \"You must provide either an anchor (typically render it inside a ) or a position props for .\");\n }\n });\n _defineProperty(this, \"setInfoWindowCallback\", () => {\n if (this.state.infoWindow !== null && this.containerElement !== null) {\n this.state.infoWindow.setContent(this.containerElement);\n this.open(this.state.infoWindow, this.props.anchor);\n if (this.props.onLoad) {\n this.props.onLoad(this.state.infoWindow);\n }\n }\n });\n }\n componentDidMount() {\n var infoWindow = new google.maps.InfoWindow(this.props.options);\n this.containerElement = document.createElement('div');\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$c,\n eventMap: eventMap$c,\n prevProps: {},\n nextProps: this.props,\n instance: infoWindow\n });\n this.setState(() => {\n return {\n infoWindow\n };\n }, this.setInfoWindowCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.infoWindow !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$c,\n eventMap: eventMap$c,\n prevProps,\n nextProps: this.props,\n instance: this.state.infoWindow\n });\n }\n }\n componentWillUnmount() {\n if (this.state.infoWindow !== null) {\n unregisterEvents(this.registeredEvents);\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.infoWindow);\n }\n this.state.infoWindow.close();\n }\n }\n render() {\n return this.containerElement ? createPortal(Children.only(this.props.children), this.containerElement) : null;\n }\n}\n_defineProperty(InfoWindow, \"contextType\", MapContext);\n\nfunction ownKeys$9(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$b = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick'\n};\nvar updaterMap$b = {\n draggable(instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable(instance, editable) {\n instance.setEditable(editable);\n },\n map(instance, map) {\n instance.setMap(map);\n },\n options(instance, options) {\n instance.setOptions(options);\n },\n path(instance, path) {\n instance.setPath(path);\n },\n visible(instance, visible) {\n instance.setVisible(visible);\n }\n};\nvar defaultOptions$1 = {};\nfunction PolylineFunctional(_ref) {\n var {\n options,\n draggable,\n editable,\n visible,\n path,\n onDblClick,\n onDragEnd,\n onDragStart,\n onMouseDown,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n onRightClick,\n onClick,\n onDrag,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [dblclickListener, setDblclickListener] = useState(null);\n var [dragendListener, setDragendListener] = useState(null);\n var [dragstartListener, setDragstartListener] = useState(null);\n var [mousedownListener, setMousedownListener] = useState(null);\n var [mousemoveListener, setMousemoveListener] = useState(null);\n var [mouseoutListener, setMouseoutListener] = useState(null);\n var [mouseoverListener, setMouseoverListener] = useState(null);\n var [mouseupListener, setMouseupListener] = useState(null);\n var [rightclickListener, setRightclickListener] = useState(null);\n var [clickListener, setClickListener] = useState(null);\n var [dragListener, setDragListener] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(() => {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(() => {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(() => {\n if (typeof path !== 'undefined' && instance !== null) {\n instance.setPath(path);\n }\n }, [instance, path]);\n useEffect(() => {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(() => {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(() => {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(() => {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(() => {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(() => {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(() => {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(() => {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(() => {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(() => {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(() => {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(() => {\n var polyline = new google.maps.Polyline(_objectSpread$9(_objectSpread$9({}, options || defaultOptions$1), {}, {\n map\n }));\n if (path) {\n polyline.setPath(path);\n }\n if (typeof visible !== 'undefined') {\n polyline.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n polyline.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n polyline.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(polyline, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(polyline, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(polyline, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(polyline, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(polyline, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(polyline, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(polyline, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(polyline, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(polyline, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(polyline, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(polyline, 'drag', onDrag));\n }\n setInstance(polyline);\n if (onLoad) {\n onLoad(polyline);\n }\n return () => {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (onUnmount) {\n onUnmount(polyline);\n }\n polyline.setMap(null);\n };\n }, []);\n return null;\n}\nvar PolylineF = memo(PolylineFunctional);\nclass Polyline extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n polyline: null\n });\n _defineProperty(this, \"setPolylineCallback\", () => {\n if (this.state.polyline !== null && this.props.onLoad) {\n this.props.onLoad(this.state.polyline);\n }\n });\n }\n componentDidMount() {\n var polyline = new google.maps.Polyline(_objectSpread$9(_objectSpread$9({}, this.props.options), {}, {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$b,\n eventMap: eventMap$b,\n prevProps: {},\n nextProps: this.props,\n instance: polyline\n });\n this.setState(function setPolyline() {\n return {\n polyline\n };\n }, this.setPolylineCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.polyline !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$b,\n eventMap: eventMap$b,\n prevProps,\n nextProps: this.props,\n instance: this.state.polyline\n });\n }\n }\n componentWillUnmount() {\n if (this.state.polyline === null) {\n return;\n }\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.polyline);\n }\n unregisterEvents(this.registeredEvents);\n this.state.polyline.setMap(null);\n }\n render() {\n return null;\n }\n}\n_defineProperty(Polyline, \"contextType\", MapContext);\n\nfunction ownKeys$8(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$a = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick'\n};\nvar updaterMap$a = {\n draggable(instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable(instance, editable) {\n instance.setEditable(editable);\n },\n map(instance, map) {\n instance.setMap(map);\n },\n options(instance, options) {\n instance.setOptions(options);\n },\n path(instance, path) {\n instance.setPath(path);\n },\n paths(instance, paths) {\n instance.setPaths(paths);\n },\n visible(instance, visible) {\n instance.setVisible(visible);\n }\n};\nfunction PolygonFunctional(_ref) {\n var {\n options,\n draggable,\n editable,\n visible,\n path,\n paths,\n onDblClick,\n onDragEnd,\n onDragStart,\n onMouseDown,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n onRightClick,\n onClick,\n onDrag,\n onLoad,\n onUnmount,\n onEdit\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [dblclickListener, setDblclickListener] = useState(null);\n var [dragendListener, setDragendListener] = useState(null);\n var [dragstartListener, setDragstartListener] = useState(null);\n var [mousedownListener, setMousedownListener] = useState(null);\n var [mousemoveListener, setMousemoveListener] = useState(null);\n var [mouseoutListener, setMouseoutListener] = useState(null);\n var [mouseoverListener, setMouseoverListener] = useState(null);\n var [mouseupListener, setMouseupListener] = useState(null);\n var [rightclickListener, setRightclickListener] = useState(null);\n var [clickListener, setClickListener] = useState(null);\n var [dragListener, setDragListener] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(() => {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(() => {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(() => {\n if (typeof path !== 'undefined' && instance !== null) {\n instance.setPath(path);\n }\n }, [instance, path]);\n useEffect(() => {\n if (typeof paths !== 'undefined' && instance !== null) {\n instance.setPaths(paths);\n }\n }, [instance, paths]);\n useEffect(() => {\n if (instance && typeof onDblClick === 'function') {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(() => {\n if (!instance) {\n return;\n }\n google.maps.event.addListener(instance.getPath(), 'insert_at', () => {\n onEdit === null || onEdit === void 0 || onEdit(instance);\n });\n google.maps.event.addListener(instance.getPath(), 'set_at', () => {\n onEdit === null || onEdit === void 0 || onEdit(instance);\n });\n google.maps.event.addListener(instance.getPath(), 'remove_at', () => {\n onEdit === null || onEdit === void 0 || onEdit(instance);\n });\n }, [instance, onEdit]);\n useEffect(() => {\n if (instance && typeof onDragEnd === 'function') {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(() => {\n if (instance && typeof onDragStart === 'function') {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(() => {\n if (instance && typeof onMouseDown === 'function') {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(() => {\n if (instance && typeof onMouseMove === 'function') {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(() => {\n if (instance && typeof onMouseOut === 'function') {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(() => {\n if (instance && typeof onMouseOver === 'function') {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(() => {\n if (instance && typeof onMouseUp === 'function') {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(() => {\n if (instance && typeof onRightClick === 'function') {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(() => {\n if (instance && typeof onClick === 'function') {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(() => {\n if (instance && typeof onDrag === 'function') {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(() => {\n var polygon = new google.maps.Polygon(_objectSpread$8(_objectSpread$8({}, options), {}, {\n map\n }));\n if (path) {\n polygon.setPath(path);\n }\n if (paths) {\n polygon.setPaths(paths);\n }\n if (typeof visible !== 'undefined') {\n polygon.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n polygon.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n polygon.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(polygon, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(polygon, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(polygon, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(polygon, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(polygon, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(polygon, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(polygon, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(polygon, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(polygon, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(polygon, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(polygon, 'drag', onDrag));\n }\n setInstance(polygon);\n if (onLoad) {\n onLoad(polygon);\n }\n return () => {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (onUnmount) {\n onUnmount(polygon);\n }\n polygon.setMap(null);\n };\n }, []);\n return null;\n}\nvar PolygonF = memo(PolygonFunctional);\nclass Polygon extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n }\n componentDidMount() {\n var polygonOptions = this.props.options || {};\n this.polygon = new google.maps.Polygon(polygonOptions);\n this.polygon.setMap(this.context);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$a,\n eventMap: eventMap$a,\n prevProps: {},\n nextProps: this.props,\n instance: this.polygon\n });\n if (this.props.onLoad) {\n this.props.onLoad(this.polygon);\n }\n }\n componentDidUpdate(prevProps) {\n if (this.polygon) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$a,\n eventMap: eventMap$a,\n prevProps,\n nextProps: this.props,\n instance: this.polygon\n });\n }\n }\n componentWillUnmount() {\n if (this.polygon) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.polygon);\n }\n unregisterEvents(this.registeredEvents);\n if (this.polygon) {\n this.polygon.setMap(null);\n }\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(Polygon, \"contextType\", MapContext);\n\nfunction ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$9 = {\n onBoundsChanged: 'bounds_changed',\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick'\n};\nvar updaterMap$9 = {\n bounds(instance, bounds) {\n instance.setBounds(bounds);\n },\n draggable(instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable(instance, editable) {\n instance.setEditable(editable);\n },\n map(instance, map) {\n instance.setMap(map);\n },\n options(instance, options) {\n instance.setOptions(options);\n },\n visible(instance, visible) {\n instance.setVisible(visible);\n }\n};\nfunction RectangleFunctional(_ref) {\n var {\n options,\n bounds,\n draggable,\n editable,\n visible,\n onDblClick,\n onDragEnd,\n onDragStart,\n onMouseDown,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n onRightClick,\n onClick,\n onDrag,\n onBoundsChanged,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [dblclickListener, setDblclickListener] = useState(null);\n var [dragendListener, setDragendListener] = useState(null);\n var [dragstartListener, setDragstartListener] = useState(null);\n var [mousedownListener, setMousedownListener] = useState(null);\n var [mousemoveListener, setMousemoveListener] = useState(null);\n var [mouseoutListener, setMouseoutListener] = useState(null);\n var [mouseoverListener, setMouseoverListener] = useState(null);\n var [mouseupListener, setMouseupListener] = useState(null);\n var [rightClickListener, setRightClickListener] = useState(null);\n var [clickListener, setClickListener] = useState(null);\n var [dragListener, setDragListener] = useState(null);\n var [boundsChangedListener, setBoundsChangedListener] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(() => {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(() => {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(() => {\n if (typeof bounds !== 'undefined' && instance !== null) {\n instance.setBounds(bounds);\n }\n }, [instance, bounds]);\n useEffect(() => {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(() => {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(() => {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(() => {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(() => {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(() => {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(() => {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(() => {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(() => {\n if (instance && onRightClick) {\n if (rightClickListener !== null) {\n google.maps.event.removeListener(rightClickListener);\n }\n setRightClickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(() => {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(() => {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(() => {\n if (instance && onBoundsChanged) {\n if (boundsChangedListener !== null) {\n google.maps.event.removeListener(boundsChangedListener);\n }\n setBoundsChangedListener(google.maps.event.addListener(instance, 'bounds_changed', onBoundsChanged));\n }\n }, [onBoundsChanged]);\n useEffect(() => {\n var rectangle = new google.maps.Rectangle(_objectSpread$7(_objectSpread$7({}, options), {}, {\n map\n }));\n if (typeof visible !== 'undefined') {\n rectangle.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n rectangle.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n rectangle.setDraggable(draggable);\n }\n if (typeof bounds !== 'undefined') {\n rectangle.setBounds(bounds);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(rectangle, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(rectangle, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(rectangle, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(rectangle, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(rectangle, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(rectangle, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(rectangle, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(rectangle, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightClickListener(google.maps.event.addListener(rectangle, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(rectangle, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(rectangle, 'drag', onDrag));\n }\n if (onBoundsChanged) {\n setBoundsChangedListener(google.maps.event.addListener(rectangle, 'bounds_changed', onBoundsChanged));\n }\n setInstance(rectangle);\n if (onLoad) {\n onLoad(rectangle);\n }\n return () => {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightClickListener !== null) {\n google.maps.event.removeListener(rightClickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n if (boundsChangedListener !== null) {\n google.maps.event.removeListener(boundsChangedListener);\n }\n if (onUnmount) {\n onUnmount(rectangle);\n }\n rectangle.setMap(null);\n };\n }, []);\n return null;\n}\nvar RectangleF = memo(RectangleFunctional);\nclass Rectangle extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n rectangle: null\n });\n _defineProperty(this, \"setRectangleCallback\", () => {\n if (this.state.rectangle !== null && this.props.onLoad) {\n this.props.onLoad(this.state.rectangle);\n }\n });\n }\n componentDidMount() {\n var rectangle = new google.maps.Rectangle(_objectSpread$7(_objectSpread$7({}, this.props.options), {}, {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$9,\n eventMap: eventMap$9,\n prevProps: {},\n nextProps: this.props,\n instance: rectangle\n });\n this.setState(function setRectangle() {\n return {\n rectangle\n };\n }, this.setRectangleCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.rectangle !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$9,\n eventMap: eventMap$9,\n prevProps,\n nextProps: this.props,\n instance: this.state.rectangle\n });\n }\n }\n componentWillUnmount() {\n if (this.state.rectangle !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.rectangle);\n }\n unregisterEvents(this.registeredEvents);\n this.state.rectangle.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(Rectangle, \"contextType\", MapContext);\n\nfunction ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$8 = {\n onCenterChanged: 'center_changed',\n onRadiusChanged: 'radius_changed',\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick'\n};\nvar updaterMap$8 = {\n center(instance, center) {\n instance.setCenter(center);\n },\n draggable(instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable(instance, editable) {\n instance.setEditable(editable);\n },\n map(instance, map) {\n instance.setMap(map);\n },\n options(instance, options) {\n instance.setOptions(options);\n },\n radius(instance, radius) {\n instance.setRadius(radius);\n },\n visible(instance, visible) {\n instance.setVisible(visible);\n }\n};\nvar defaultOptions = {};\nfunction CircleFunctional(_ref) {\n var {\n options,\n center,\n radius,\n draggable,\n editable,\n visible,\n onDblClick,\n onDragEnd,\n onDragStart,\n onMouseDown,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n onRightClick,\n onClick,\n onDrag,\n onCenterChanged,\n onRadiusChanged,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [dblclickListener, setDblclickListener] = useState(null);\n var [dragendListener, setDragendListener] = useState(null);\n var [dragstartListener, setDragstartListener] = useState(null);\n var [mousedownListener, setMousedownListener] = useState(null);\n var [mousemoveListener, setMousemoveListener] = useState(null);\n var [mouseoutListener, setMouseoutListener] = useState(null);\n var [mouseoverListener, setMouseoverListener] = useState(null);\n var [mouseupListener, setMouseupListener] = useState(null);\n var [rightclickListener, setRightclickListener] = useState(null);\n var [clickListener, setClickListener] = useState(null);\n var [dragListener, setDragListener] = useState(null);\n var [centerChangedListener, setCenterChangedListener] = useState(null);\n var [radiusChangedListener, setRadiusChangedListener] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(() => {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(() => {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(() => {\n if (typeof radius === 'number' && instance !== null) {\n instance.setRadius(radius);\n }\n }, [instance, radius]);\n useEffect(() => {\n if (typeof center !== 'undefined' && instance !== null) {\n instance.setCenter(center);\n }\n }, [instance, center]);\n useEffect(() => {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(() => {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(() => {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(() => {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(() => {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(() => {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(() => {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(() => {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(() => {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(() => {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(() => {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(() => {\n if (instance && onCenterChanged) {\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n setCenterChangedListener(google.maps.event.addListener(instance, 'center_changed', onCenterChanged));\n }\n }, [onClick]);\n useEffect(() => {\n if (instance && onRadiusChanged) {\n if (radiusChangedListener !== null) {\n google.maps.event.removeListener(radiusChangedListener);\n }\n setRadiusChangedListener(google.maps.event.addListener(instance, 'radius_changed', onRadiusChanged));\n }\n }, [onRadiusChanged]);\n useEffect(() => {\n var circle = new google.maps.Circle(_objectSpread$6(_objectSpread$6({}, options || defaultOptions), {}, {\n map\n }));\n if (typeof radius === 'number') {\n circle.setRadius(radius);\n }\n if (typeof center !== 'undefined') {\n circle.setCenter(center);\n }\n if (typeof radius === 'number') {\n circle.setRadius(radius);\n }\n if (typeof visible !== 'undefined') {\n circle.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n circle.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n circle.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(circle, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(circle, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(circle, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(circle, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(circle, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(circle, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(circle, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(circle, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(circle, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(circle, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(circle, 'drag', onDrag));\n }\n if (onCenterChanged) {\n setCenterChangedListener(google.maps.event.addListener(circle, 'center_changed', onCenterChanged));\n }\n if (onRadiusChanged) {\n setRadiusChangedListener(google.maps.event.addListener(circle, 'radius_changed', onRadiusChanged));\n }\n setInstance(circle);\n if (onLoad) {\n onLoad(circle);\n }\n return () => {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n if (radiusChangedListener !== null) {\n google.maps.event.removeListener(radiusChangedListener);\n }\n if (onUnmount) {\n onUnmount(circle);\n }\n circle.setMap(null);\n };\n }, []);\n return null;\n}\nvar CircleF = memo(CircleFunctional);\nclass Circle extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n circle: null\n });\n _defineProperty(this, \"setCircleCallback\", () => {\n if (this.state.circle !== null && this.props.onLoad) {\n this.props.onLoad(this.state.circle);\n }\n });\n }\n componentDidMount() {\n var circle = new google.maps.Circle(_objectSpread$6(_objectSpread$6({}, this.props.options), {}, {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$8,\n eventMap: eventMap$8,\n prevProps: {},\n nextProps: this.props,\n instance: circle\n });\n this.setState(function setCircle() {\n return {\n circle\n };\n }, this.setCircleCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.circle !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$8,\n eventMap: eventMap$8,\n prevProps,\n nextProps: this.props,\n instance: this.state.circle\n });\n }\n }\n componentWillUnmount() {\n if (this.state.circle !== null) {\n var _this$state$circle;\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.circle);\n }\n unregisterEvents(this.registeredEvents);\n (_this$state$circle = this.state.circle) === null || _this$state$circle === void 0 || _this$state$circle.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(Circle, \"contextType\", MapContext);\n\nfunction ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$7 = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onMouseDown: 'mousedown',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n onAddFeature: 'addfeature',\n onRemoveFeature: 'removefeature',\n onRemoveProperty: 'removeproperty',\n onSetGeometry: 'setgeometry',\n onSetProperty: 'setproperty'\n};\nvar updaterMap$7 = {\n add(instance, feature) {\n instance.add(feature);\n },\n addgeojson(instance, geojson, options) {\n instance.addGeoJson(geojson, options);\n },\n contains(instance, feature) {\n instance.contains(feature);\n },\n foreach(instance, callback) {\n instance.forEach(callback);\n },\n loadgeojson(instance, url, options, callback) {\n instance.loadGeoJson(url, options, callback);\n },\n overridestyle(instance, feature, style) {\n instance.overrideStyle(feature, style);\n },\n remove(instance, feature) {\n instance.remove(feature);\n },\n revertstyle(instance, feature) {\n instance.revertStyle(feature);\n },\n controlposition(instance, controlPosition) {\n instance.setControlPosition(controlPosition);\n },\n controls(instance, controls) {\n instance.setControls(controls);\n },\n drawingmode(instance, mode) {\n instance.setDrawingMode(mode);\n },\n map(instance, map) {\n instance.setMap(map);\n },\n style(instance, style) {\n instance.setStyle(style);\n },\n togeojson(instance, callback) {\n instance.toGeoJson(callback);\n }\n};\nfunction DataFunctional(_ref) {\n var {\n options,\n onClick,\n onDblClick,\n onMouseDown,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n onRightClick,\n onAddFeature,\n onRemoveFeature,\n onRemoveProperty,\n onSetGeometry,\n onSetProperty,\n onLoad,\n onUnmount\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n var [dblclickListener, setDblclickListener] = useState(null);\n var [mousedownListener, setMousedownListener] = useState(null);\n var [mousemoveListener, setMousemoveListener] = useState(null);\n var [mouseoutListener, setMouseoutListener] = useState(null);\n var [mouseoverListener, setMouseoverListener] = useState(null);\n var [mouseupListener, setMouseupListener] = useState(null);\n var [rightclickListener, setRightclickListener] = useState(null);\n var [clickListener, setClickListener] = useState(null);\n var [addFeatureListener, setAddFeatureListener] = useState(null);\n var [removeFeatureListener, setRemoveFeatureListener] = useState(null);\n var [removePropertyListener, setRemovePropertyListener] = useState(null);\n var [setGeometryListener, setSetGeometryListener] = useState(null);\n var [setPropertyListener, setSetPropertyListener] = useState(null);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(() => {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(() => {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(() => {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(() => {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(() => {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(() => {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(() => {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(() => {\n if (instance && onAddFeature) {\n if (addFeatureListener !== null) {\n google.maps.event.removeListener(addFeatureListener);\n }\n setAddFeatureListener(google.maps.event.addListener(instance, 'addfeature', onAddFeature));\n }\n }, [onAddFeature]);\n useEffect(() => {\n if (instance && onRemoveFeature) {\n if (removeFeatureListener !== null) {\n google.maps.event.removeListener(removeFeatureListener);\n }\n setRemoveFeatureListener(google.maps.event.addListener(instance, 'removefeature', onRemoveFeature));\n }\n }, [onRemoveFeature]);\n useEffect(() => {\n if (instance && onRemoveProperty) {\n if (removePropertyListener !== null) {\n google.maps.event.removeListener(removePropertyListener);\n }\n setRemovePropertyListener(google.maps.event.addListener(instance, 'removeproperty', onRemoveProperty));\n }\n }, [onRemoveProperty]);\n useEffect(() => {\n if (instance && onSetGeometry) {\n if (setGeometryListener !== null) {\n google.maps.event.removeListener(setGeometryListener);\n }\n setSetGeometryListener(google.maps.event.addListener(instance, 'setgeometry', onSetGeometry));\n }\n }, [onSetGeometry]);\n useEffect(() => {\n if (instance && onSetProperty) {\n if (setPropertyListener !== null) {\n google.maps.event.removeListener(setPropertyListener);\n }\n setSetPropertyListener(google.maps.event.addListener(instance, 'setproperty', onSetProperty));\n }\n }, [onSetProperty]);\n useEffect(() => {\n if (map !== null) {\n var data = new google.maps.Data(_objectSpread$5(_objectSpread$5({}, options), {}, {\n map\n }));\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(data, 'dblclick', onDblClick));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(data, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(data, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(data, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(data, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(data, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(data, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(data, 'click', onClick));\n }\n if (onAddFeature) {\n setAddFeatureListener(google.maps.event.addListener(data, 'addfeature', onAddFeature));\n }\n if (onRemoveFeature) {\n setRemoveFeatureListener(google.maps.event.addListener(data, 'removefeature', onRemoveFeature));\n }\n if (onRemoveProperty) {\n setRemovePropertyListener(google.maps.event.addListener(data, 'removeproperty', onRemoveProperty));\n }\n if (onSetGeometry) {\n setSetGeometryListener(google.maps.event.addListener(data, 'setgeometry', onSetGeometry));\n }\n if (onSetProperty) {\n setSetPropertyListener(google.maps.event.addListener(data, 'setproperty', onSetProperty));\n }\n setInstance(data);\n if (onLoad) {\n onLoad(data);\n }\n }\n return () => {\n if (instance) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (addFeatureListener !== null) {\n google.maps.event.removeListener(addFeatureListener);\n }\n if (removeFeatureListener !== null) {\n google.maps.event.removeListener(removeFeatureListener);\n }\n if (removePropertyListener !== null) {\n google.maps.event.removeListener(removePropertyListener);\n }\n if (setGeometryListener !== null) {\n google.maps.event.removeListener(setGeometryListener);\n }\n if (setPropertyListener !== null) {\n google.maps.event.removeListener(setPropertyListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar DataF = memo(DataFunctional);\nclass Data extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n data: null\n });\n _defineProperty(this, \"setDataCallback\", () => {\n if (this.state.data !== null && this.props.onLoad) {\n this.props.onLoad(this.state.data);\n }\n });\n }\n componentDidMount() {\n if (this.context !== null) {\n var data = new google.maps.Data(_objectSpread$5(_objectSpread$5({}, this.props.options), {}, {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$7,\n eventMap: eventMap$7,\n prevProps: {},\n nextProps: this.props,\n instance: data\n });\n this.setState(() => {\n return {\n data\n };\n }, this.setDataCallback);\n }\n }\n componentDidUpdate(prevProps) {\n if (this.state.data !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$7,\n eventMap: eventMap$7,\n prevProps,\n nextProps: this.props,\n instance: this.state.data\n });\n }\n }\n componentWillUnmount() {\n if (this.state.data !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.data);\n }\n unregisterEvents(this.registeredEvents);\n if (this.state.data) {\n this.state.data.setMap(null);\n }\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(Data, \"contextType\", MapContext);\n\nfunction ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$6 = {\n onClick: 'click',\n onDefaultViewportChanged: 'defaultviewport_changed',\n onStatusChanged: 'status_changed'\n};\nvar updaterMap$6 = {\n options(instance, options) {\n instance.setOptions(options);\n },\n url(instance, url) {\n instance.setUrl(url);\n },\n zIndex(instance, zIndex) {\n instance.setZIndex(zIndex);\n }\n};\nclass KmlLayer extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n kmlLayer: null\n });\n _defineProperty(this, \"setKmlLayerCallback\", () => {\n if (this.state.kmlLayer !== null && this.props.onLoad) {\n this.props.onLoad(this.state.kmlLayer);\n }\n });\n }\n componentDidMount() {\n var kmlLayer = new google.maps.KmlLayer(_objectSpread$4(_objectSpread$4({}, this.props.options), {}, {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$6,\n eventMap: eventMap$6,\n prevProps: {},\n nextProps: this.props,\n instance: kmlLayer\n });\n this.setState(function setLmlLayer() {\n return {\n kmlLayer\n };\n }, this.setKmlLayerCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.kmlLayer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$6,\n eventMap: eventMap$6,\n prevProps,\n nextProps: this.props,\n instance: this.state.kmlLayer\n });\n }\n }\n componentWillUnmount() {\n if (this.state.kmlLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.kmlLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.kmlLayer.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(KmlLayer, \"contextType\", MapContext);\n\nfunction getOffsetOverride(containerElement, getPixelPositionOffset) {\n return typeof getPixelPositionOffset === 'function' ? getPixelPositionOffset(containerElement.offsetWidth, containerElement.offsetHeight) : {\n x: 0,\n y: 0\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createLatLng(inst, Type) {\n return new Type(inst.lat, inst.lng);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createLatLngBounds(inst, Type) {\n return new Type(new google.maps.LatLng(inst.ne.lat, inst.ne.lng), new google.maps.LatLng(inst.sw.lat, inst.sw.lng));\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction ensureOfType(inst,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfactory\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n return inst instanceof type ? inst : factory(inst, type);\n}\nfunction ensureOfTypeBounds(inst,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfactory\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n return inst instanceof type ? inst : factory(inst, type);\n}\nfunction getLayoutStylesByBounds(mapCanvasProjection, offset, bounds) {\n var ne = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(bounds.getNorthEast());\n var sw = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(bounds.getSouthWest());\n if (ne && sw) {\n return {\n left: \"\".concat(sw.x + offset.x, \"px\"),\n top: \"\".concat(ne.y + offset.y, \"px\"),\n width: \"\".concat(ne.x - sw.x - offset.x, \"px\"),\n height: \"\".concat(sw.y - ne.y - offset.y, \"px\")\n };\n }\n return {\n left: '-9999px',\n top: '-9999px'\n };\n}\nfunction getLayoutStylesByPosition(mapCanvasProjection, offset, position) {\n var point = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(position);\n if (point) {\n var {\n x,\n y\n } = point;\n return {\n left: \"\".concat(x + offset.x, \"px\"),\n top: \"\".concat(y + offset.y, \"px\")\n };\n }\n return {\n left: '-9999px',\n top: '-9999px'\n };\n}\nfunction getLayoutStyles(mapCanvasProjection, offset, bounds, position) {\n return bounds !== undefined ? getLayoutStylesByBounds(mapCanvasProjection, offset, ensureOfTypeBounds(bounds, google.maps.LatLngBounds, createLatLngBounds)) : getLayoutStylesByPosition(mapCanvasProjection, offset, ensureOfType(position, google.maps.LatLng, createLatLng));\n}\nfunction arePositionsEqual(currentPosition, previousPosition) {\n return currentPosition.left === previousPosition.left && currentPosition.top === previousPosition.top && currentPosition.width === previousPosition.height && currentPosition.height === previousPosition.height;\n}\n\nfunction ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction createOverlay(container, pane, position, bounds, getPixelPositionOffset) {\n class Overlay extends google.maps.OverlayView {\n constructor(container, pane, position, bounds) {\n super();\n this.container = container;\n this.pane = pane;\n this.position = position;\n this.bounds = bounds;\n }\n onAdd() {\n var _this$getPanes;\n var pane = (_this$getPanes = this.getPanes()) === null || _this$getPanes === void 0 ? void 0 : _this$getPanes[this.pane];\n pane === null || pane === void 0 || pane.appendChild(this.container);\n }\n draw() {\n var projection = this.getProjection();\n var offset = _objectSpread$3({}, this.container ? getOffsetOverride(this.container, getPixelPositionOffset) : {\n x: 0,\n y: 0\n });\n var layoutStyles = getLayoutStyles(projection, offset, this.bounds, this.position);\n for (var [key, value] of Object.entries(layoutStyles)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.container.style[key] = value;\n }\n }\n onRemove() {\n if (this.container.parentNode !== null) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n }\n return new Overlay(container, pane, position, bounds);\n}\n\nfunction ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction convertToLatLngString(latLngLike) {\n if (!latLngLike) {\n return '';\n }\n var latLng = latLngLike instanceof google.maps.LatLng ? latLngLike : new google.maps.LatLng(latLngLike.lat, latLngLike.lng);\n return latLng + '';\n}\nfunction convertToLatLngBoundsString(latLngBoundsLike) {\n if (!latLngBoundsLike) {\n return '';\n }\n var latLngBounds = latLngBoundsLike instanceof google.maps.LatLngBounds ? latLngBoundsLike : new google.maps.LatLngBounds(new google.maps.LatLng(latLngBoundsLike.south, latLngBoundsLike.east), new google.maps.LatLng(latLngBoundsLike.north, latLngBoundsLike.west));\n return latLngBounds + '';\n}\nvar FLOAT_PANE = \"floatPane\";\nvar MAP_PANE = \"mapPane\";\nvar MARKER_LAYER = \"markerLayer\";\nvar OVERLAY_LAYER = \"overlayLayer\";\nvar OVERLAY_MOUSE_TARGET = \"overlayMouseTarget\";\nfunction OverlayViewFunctional(_ref) {\n var {\n position,\n bounds,\n mapPaneName,\n zIndex,\n onLoad,\n onUnmount,\n getPixelPositionOffset,\n children\n } = _ref;\n var map = useContext(MapContext);\n var container = useMemo(() => {\n var div = document.createElement('div');\n div.style.position = 'absolute';\n return div;\n }, []);\n var overlay = useMemo(() => {\n return createOverlay(container, mapPaneName, position, bounds, getPixelPositionOffset);\n }, [container, mapPaneName, position, bounds]);\n useEffect(() => {\n onLoad === null || onLoad === void 0 || onLoad(overlay);\n overlay === null || overlay === void 0 || overlay.setMap(map);\n return () => {\n onUnmount === null || onUnmount === void 0 || onUnmount(overlay);\n overlay === null || overlay === void 0 || overlay.setMap(null);\n };\n }, [map, overlay]);\n // to move the container to the foreground and background\n useEffect(() => {\n container.style.zIndex = \"\".concat(zIndex);\n }, [zIndex, container]);\n return ReactDOM.createPortal(children, container);\n}\nvar OverlayViewF = memo(OverlayViewFunctional);\nclass OverlayView extends PureComponent {\n constructor(props) {\n super(props);\n _defineProperty(this, \"state\", {\n paneEl: null,\n containerStyle: {\n // set initial position\n position: 'absolute'\n }\n });\n _defineProperty(this, \"updatePane\", () => {\n var mapPaneName = this.props.mapPaneName;\n // https://developers.google.com/maps/documentation/javascript/3.exp/reference#MapPanes\n var mapPanes = this.overlayView.getPanes();\n invariant(!!mapPaneName, \"OverlayView requires props.mapPaneName but got %s\", mapPaneName);\n if (mapPanes) {\n this.setState({\n paneEl: mapPanes[mapPaneName]\n });\n } else {\n this.setState({\n paneEl: null\n });\n }\n });\n _defineProperty(this, \"onAdd\", () => {\n var _this$props$onLoad, _this$props;\n this.updatePane();\n (_this$props$onLoad = (_this$props = this.props).onLoad) === null || _this$props$onLoad === void 0 || _this$props$onLoad.call(_this$props, this.overlayView);\n });\n _defineProperty(this, \"onPositionElement\", () => {\n var mapCanvasProjection = this.overlayView.getProjection();\n var offset = _objectSpread$2({\n x: 0,\n y: 0\n }, this.containerRef.current ? getOffsetOverride(this.containerRef.current, this.props.getPixelPositionOffset) : {});\n var layoutStyles = getLayoutStyles(mapCanvasProjection, offset, this.props.bounds, this.props.position);\n if (!arePositionsEqual(layoutStyles, {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n left: this.state.containerStyle.left,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n top: this.state.containerStyle.top,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n width: this.state.containerStyle.width,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n height: this.state.containerStyle.height\n })) {\n var _layoutStyles$top, _layoutStyles$left, _layoutStyles$width, _layoutStyles$height;\n this.setState({\n containerStyle: {\n top: (_layoutStyles$top = layoutStyles.top) !== null && _layoutStyles$top !== void 0 ? _layoutStyles$top : 0,\n left: (_layoutStyles$left = layoutStyles.left) !== null && _layoutStyles$left !== void 0 ? _layoutStyles$left : 0,\n width: (_layoutStyles$width = layoutStyles.width) !== null && _layoutStyles$width !== void 0 ? _layoutStyles$width : 0,\n height: (_layoutStyles$height = layoutStyles.height) !== null && _layoutStyles$height !== void 0 ? _layoutStyles$height : 0,\n position: 'absolute'\n }\n });\n }\n });\n _defineProperty(this, \"draw\", () => {\n this.onPositionElement();\n });\n _defineProperty(this, \"onRemove\", () => {\n var _this$props$onUnmount, _this$props2;\n this.setState(() => ({\n paneEl: null\n }));\n (_this$props$onUnmount = (_this$props2 = this.props).onUnmount) === null || _this$props$onUnmount === void 0 || _this$props$onUnmount.call(_this$props2, this.overlayView);\n });\n this.containerRef = createRef();\n // You must implement three methods: onAdd(), draw(), and onRemove().\n var overlayView = new google.maps.OverlayView();\n overlayView.onAdd = this.onAdd;\n overlayView.draw = this.draw;\n overlayView.onRemove = this.onRemove;\n this.overlayView = overlayView;\n }\n componentDidMount() {\n this.overlayView.setMap(this.context);\n }\n componentDidUpdate(prevProps) {\n var prevPositionString = convertToLatLngString(prevProps.position);\n var positionString = convertToLatLngString(this.props.position);\n var prevBoundsString = convertToLatLngBoundsString(prevProps.bounds);\n var boundsString = convertToLatLngBoundsString(this.props.bounds);\n if (prevPositionString !== positionString || prevBoundsString !== boundsString) {\n this.overlayView.draw();\n }\n if (prevProps.mapPaneName !== this.props.mapPaneName) {\n this.updatePane();\n }\n }\n componentWillUnmount() {\n this.overlayView.setMap(null);\n }\n render() {\n var paneEl = this.state.paneEl;\n if (paneEl) {\n return ReactDOM.createPortal(jsx(\"div\", {\n ref: this.containerRef,\n style: this.state.containerStyle,\n children: Children.only(this.props.children)\n }), paneEl);\n } else {\n return null;\n }\n }\n}\n_defineProperty(OverlayView, \"FLOAT_PANE\", \"floatPane\");\n_defineProperty(OverlayView, \"MAP_PANE\", \"mapPane\");\n_defineProperty(OverlayView, \"MARKER_LAYER\", \"markerLayer\");\n_defineProperty(OverlayView, \"OVERLAY_LAYER\", \"overlayLayer\");\n_defineProperty(OverlayView, \"OVERLAY_MOUSE_TARGET\", \"overlayMouseTarget\");\n_defineProperty(OverlayView, \"contextType\", MapContext);\n\nfunction noop() {\n return;\n}\n\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$5 = {\n onDblClick: 'dblclick',\n onClick: 'click'\n};\nvar updaterMap$5 = {\n opacity(instance, opacity) {\n instance.setOpacity(opacity);\n }\n};\nfunction GroundOverlayFunctional(_ref) {\n var {\n url,\n bounds,\n options,\n visible\n } = _ref;\n var map = useContext(MapContext);\n var imageBounds = new google.maps.LatLngBounds(new google.maps.LatLng(bounds.south, bounds.west), new google.maps.LatLng(bounds.north, bounds.east));\n var groundOverlay = useMemo(() => {\n return new google.maps.GroundOverlay(url, imageBounds, options);\n }, []);\n useEffect(() => {\n if (groundOverlay !== null) {\n groundOverlay.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (typeof url !== 'undefined' && groundOverlay !== null) {\n groundOverlay.set('url', url);\n groundOverlay.setMap(map);\n }\n }, [groundOverlay, url]);\n useEffect(() => {\n if (typeof visible !== 'undefined' && groundOverlay !== null) {\n groundOverlay.setOpacity(visible ? 1 : 0);\n }\n }, [groundOverlay, visible]);\n useEffect(() => {\n var newBounds = new google.maps.LatLngBounds(new google.maps.LatLng(bounds.south, bounds.west), new google.maps.LatLng(bounds.north, bounds.east));\n if (typeof bounds !== 'undefined' && groundOverlay !== null) {\n groundOverlay.set('bounds', newBounds);\n groundOverlay.setMap(map);\n }\n }, [groundOverlay, bounds]);\n return null;\n}\nvar GroundOverlayF = memo(GroundOverlayFunctional);\nclass GroundOverlay extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n groundOverlay: null\n });\n _defineProperty(this, \"setGroundOverlayCallback\", () => {\n if (this.state.groundOverlay !== null && this.props.onLoad) {\n this.props.onLoad(this.state.groundOverlay);\n }\n });\n }\n componentDidMount() {\n invariant(!!this.props.url || !!this.props.bounds, \"For GroundOverlay, url and bounds are passed in to constructor and are immutable after instantiated. This is the behavior of Google Maps JavaScript API v3 ( See https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay) Hence, use the corresponding two props provided by `react-google-maps-api`, url and bounds. In some cases, you'll need the GroundOverlay component to reflect the changes of url and bounds. You can leverage the React's key property to remount the component. Typically, just `key={url}` would serve your need. See https://github.com/tomchentw/react-google-maps/issues/655\");\n var groundOverlay = new google.maps.GroundOverlay(this.props.url, this.props.bounds, _objectSpread$1(_objectSpread$1({}, this.props.options), {}, {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$5,\n eventMap: eventMap$5,\n prevProps: {},\n nextProps: this.props,\n instance: groundOverlay\n });\n this.setState(function setGroundOverlay() {\n return {\n groundOverlay\n };\n }, this.setGroundOverlayCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.groundOverlay !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$5,\n eventMap: eventMap$5,\n prevProps,\n nextProps: this.props,\n instance: this.state.groundOverlay\n });\n }\n }\n componentWillUnmount() {\n if (this.state.groundOverlay) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.groundOverlay);\n }\n this.state.groundOverlay.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(GroundOverlay, \"defaultProps\", {\n onLoad: noop\n});\n_defineProperty(GroundOverlay, \"contextType\", MapContext);\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar eventMap$4 = {};\nvar updaterMap$4 = {\n data(instance, data) {\n instance.setData(data);\n },\n map(instance, map) {\n instance.setMap(map);\n },\n options(instance, options) {\n instance.setOptions(options);\n }\n};\nfunction HeatmapLayerFunctional(_ref) {\n var {\n data,\n onLoad,\n onUnmount,\n options\n } = _ref;\n var map = useContext(MapContext);\n var [instance, setInstance] = useState(null);\n useEffect(() => {\n if (!google.maps.visualization) {\n invariant(!!google.maps.visualization, 'Did you include prop libraries={[\"visualization\"]} in useJsApiScript? %s', google.maps.visualization);\n }\n }, []);\n useEffect(() => {\n invariant(!!data, 'data property is required in HeatmapLayer %s', data);\n }, [data]);\n // Order does matter\n useEffect(() => {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(() => {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(() => {\n var heatmapLayer = new google.maps.visualization.HeatmapLayer(_objectSpread(_objectSpread({}, options), {}, {\n data,\n map\n }));\n setInstance(heatmapLayer);\n if (onLoad) {\n onLoad(heatmapLayer);\n }\n return () => {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar HeatmapLayerF = memo(HeatmapLayerFunctional);\nclass HeatmapLayer extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n heatmapLayer: null\n });\n _defineProperty(this, \"setHeatmapLayerCallback\", () => {\n if (this.state.heatmapLayer !== null && this.props.onLoad) {\n this.props.onLoad(this.state.heatmapLayer);\n }\n });\n }\n componentDidMount() {\n invariant(!!google.maps.visualization, 'Did you include prop libraries={[\"visualization\"]} to ? %s', google.maps.visualization);\n invariant(!!this.props.data, 'data property is required in HeatmapLayer %s', this.props.data);\n var heatmapLayer = new google.maps.visualization.HeatmapLayer(_objectSpread(_objectSpread({}, this.props.options), {}, {\n data: this.props.data,\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$4,\n eventMap: eventMap$4,\n prevProps: {},\n nextProps: this.props,\n instance: heatmapLayer\n });\n this.setState(function setHeatmapLayer() {\n return {\n heatmapLayer\n };\n }, this.setHeatmapLayerCallback);\n }\n componentDidUpdate(prevProps) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$4,\n eventMap: eventMap$4,\n prevProps,\n nextProps: this.props,\n instance: this.state.heatmapLayer\n });\n }\n componentWillUnmount() {\n if (this.state.heatmapLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.heatmapLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.heatmapLayer.setMap(null);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(HeatmapLayer, \"contextType\", MapContext);\n\nvar eventMap$3 = {\n onCloseClick: 'closeclick',\n onPanoChanged: 'pano_changed',\n onPositionChanged: 'position_changed',\n onPovChanged: 'pov_changed',\n onResize: 'resize',\n onStatusChanged: 'status_changed',\n onVisibleChanged: 'visible_changed',\n onZoomChanged: 'zoom_changed'\n};\nvar updaterMap$3 = {\n register(instance, provider, options) {\n instance.registerPanoProvider(provider, options);\n },\n links(instance, links) {\n instance.setLinks(links);\n },\n motionTracking(instance, motionTracking) {\n instance.setMotionTracking(motionTracking);\n },\n options(instance, options) {\n instance.setOptions(options);\n },\n pano(instance, pano) {\n instance.setPano(pano);\n },\n position(instance, position) {\n instance.setPosition(position);\n },\n pov(instance, pov) {\n instance.setPov(pov);\n },\n visible(instance, visible) {\n instance.setVisible(visible);\n },\n zoom(instance, zoom) {\n instance.setZoom(zoom);\n }\n};\nclass StreetViewPanorama extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n streetViewPanorama: null\n });\n _defineProperty(this, \"setStreetViewPanoramaCallback\", () => {\n if (this.state.streetViewPanorama !== null && this.props.onLoad) {\n this.props.onLoad(this.state.streetViewPanorama);\n }\n });\n }\n componentDidMount() {\n var _this$context$getStre, _this$context;\n var streetViewPanorama = (_this$context$getStre = (_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.getStreetView()) !== null && _this$context$getStre !== void 0 ? _this$context$getStre : null;\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$3,\n eventMap: eventMap$3,\n prevProps: {},\n nextProps: this.props,\n instance: streetViewPanorama\n });\n this.setState(() => {\n return {\n streetViewPanorama\n };\n }, this.setStreetViewPanoramaCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.streetViewPanorama !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$3,\n eventMap: eventMap$3,\n prevProps,\n nextProps: this.props,\n instance: this.state.streetViewPanorama\n });\n }\n }\n componentWillUnmount() {\n if (this.state.streetViewPanorama !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.streetViewPanorama);\n }\n unregisterEvents(this.registeredEvents);\n this.state.streetViewPanorama.setVisible(false);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(StreetViewPanorama, \"contextType\", MapContext);\n\nclass StreetViewService extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", {\n streetViewService: null\n });\n _defineProperty(this, \"setStreetViewServiceCallback\", () => {\n if (this.state.streetViewService !== null && this.props.onLoad) {\n this.props.onLoad(this.state.streetViewService);\n }\n });\n }\n componentDidMount() {\n var streetViewService = new google.maps.StreetViewService();\n this.setState(function setStreetViewService() {\n return {\n streetViewService\n };\n }, this.setStreetViewServiceCallback);\n }\n componentWillUnmount() {\n if (this.state.streetViewService !== null && this.props.onUnmount) {\n this.props.onUnmount(this.state.streetViewService);\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(StreetViewService, \"contextType\", MapContext);\n\nclass DirectionsService extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", {\n directionsService: null\n });\n _defineProperty(this, \"setDirectionsServiceCallback\", () => {\n if (this.state.directionsService !== null && this.props.onLoad) {\n this.props.onLoad(this.state.directionsService);\n }\n });\n }\n componentDidMount() {\n invariant(!!this.props.options, 'DirectionsService expected options object as parameter, but got %s', this.props.options);\n var directionsService = new google.maps.DirectionsService();\n this.setState(function setDirectionsService() {\n return {\n directionsService\n };\n }, this.setDirectionsServiceCallback);\n }\n componentDidUpdate() {\n if (this.state.directionsService !== null) {\n this.state.directionsService.route(this.props.options, this.props.callback);\n }\n }\n componentWillUnmount() {\n if (this.state.directionsService !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.directionsService);\n }\n }\n }\n render() {\n return null;\n }\n}\n\nvar eventMap$2 = {\n onDirectionsChanged: 'directions_changed'\n};\nvar updaterMap$2 = {\n directions(instance, directions) {\n instance.setDirections(directions);\n },\n map(instance, map) {\n instance.setMap(map);\n },\n options(instance, options) {\n instance.setOptions(options);\n },\n panel(instance, panel) {\n instance.setPanel(panel);\n },\n routeIndex(instance, routeIndex) {\n instance.setRouteIndex(routeIndex);\n }\n};\nclass DirectionsRenderer extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"state\", {\n directionsRenderer: null\n });\n _defineProperty(this, \"setDirectionsRendererCallback\", () => {\n if (this.state.directionsRenderer !== null) {\n this.state.directionsRenderer.setMap(this.context);\n if (this.props.onLoad) {\n this.props.onLoad(this.state.directionsRenderer);\n }\n }\n });\n }\n componentDidMount() {\n var directionsRenderer = new google.maps.DirectionsRenderer(this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$2,\n eventMap: eventMap$2,\n prevProps: {},\n nextProps: this.props,\n instance: directionsRenderer\n });\n this.setState(function setDirectionsRenderer() {\n return {\n directionsRenderer\n };\n }, this.setDirectionsRendererCallback);\n }\n componentDidUpdate(prevProps) {\n if (this.state.directionsRenderer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$2,\n eventMap: eventMap$2,\n prevProps,\n nextProps: this.props,\n instance: this.state.directionsRenderer\n });\n }\n }\n componentWillUnmount() {\n if (this.state.directionsRenderer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.directionsRenderer);\n }\n unregisterEvents(this.registeredEvents);\n if (this.state.directionsRenderer) {\n this.state.directionsRenderer.setMap(null);\n }\n }\n }\n render() {\n return null;\n }\n}\n_defineProperty(DirectionsRenderer, \"contextType\", MapContext);\n\nclass DistanceMatrixService extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", {\n distanceMatrixService: null\n });\n _defineProperty(this, \"setDistanceMatrixServiceCallback\", () => {\n if (this.state.distanceMatrixService !== null && this.props.onLoad) {\n this.props.onLoad(this.state.distanceMatrixService);\n }\n });\n }\n componentDidMount() {\n invariant(!!this.props.options, 'DistanceMatrixService expected options object as parameter, but go %s', this.props.options);\n var distanceMatrixService = new google.maps.DistanceMatrixService();\n this.setState(function setDistanceMatrixService() {\n return {\n distanceMatrixService\n };\n }, this.setDistanceMatrixServiceCallback);\n }\n componentDidUpdate() {\n if (this.state.distanceMatrixService !== null) {\n this.state.distanceMatrixService.getDistanceMatrix(this.props.options, this.props.callback);\n }\n }\n componentWillUnmount() {\n if (this.state.distanceMatrixService !== null && this.props.onUnmount) {\n this.props.onUnmount(this.state.distanceMatrixService);\n }\n }\n render() {\n return null;\n }\n}\n\nvar eventMap$1 = {\n onPlacesChanged: 'places_changed'\n};\nvar updaterMap$1 = {\n bounds(instance, bounds) {\n instance.setBounds(bounds);\n }\n};\nclass StandaloneSearchBox extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"containerElement\", createRef());\n _defineProperty(this, \"state\", {\n searchBox: null\n });\n _defineProperty(this, \"setSearchBoxCallback\", () => {\n if (this.state.searchBox !== null && this.props.onLoad) {\n this.props.onLoad(this.state.searchBox);\n }\n });\n }\n componentDidMount() {\n invariant(!!google.maps.places, 'You need to provide libraries={[\"places\"]} prop to component %s', google.maps.places);\n if (this.containerElement !== null && this.containerElement.current !== null) {\n var input = this.containerElement.current.querySelector('input');\n if (input !== null) {\n var searchBox = new google.maps.places.SearchBox(input, this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$1,\n eventMap: eventMap$1,\n prevProps: {},\n nextProps: this.props,\n instance: searchBox\n });\n this.setState(function setSearchBox() {\n return {\n searchBox\n };\n }, this.setSearchBoxCallback);\n }\n }\n }\n componentDidUpdate(prevProps) {\n if (this.state.searchBox !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$1,\n eventMap: eventMap$1,\n prevProps,\n nextProps: this.props,\n instance: this.state.searchBox\n });\n }\n }\n componentWillUnmount() {\n if (this.state.searchBox !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.searchBox);\n }\n unregisterEvents(this.registeredEvents);\n }\n }\n render() {\n return jsx(\"div\", {\n ref: this.containerElement,\n children: Children.only(this.props.children)\n });\n }\n}\n_defineProperty(StandaloneSearchBox, \"contextType\", MapContext);\n\nvar eventMap = {\n onPlaceChanged: 'place_changed'\n};\nvar updaterMap = {\n bounds(instance, bounds) {\n instance.setBounds(bounds);\n },\n restrictions(instance, restrictions) {\n instance.setComponentRestrictions(restrictions);\n },\n fields(instance, fields) {\n instance.setFields(fields);\n },\n options(instance, options) {\n instance.setOptions(options);\n },\n types(instance, types) {\n instance.setTypes(types);\n }\n};\nclass Autocomplete extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"registeredEvents\", []);\n _defineProperty(this, \"containerElement\", createRef());\n _defineProperty(this, \"state\", {\n autocomplete: null\n });\n _defineProperty(this, \"setAutocompleteCallback\", () => {\n if (this.state.autocomplete !== null && this.props.onLoad) {\n this.props.onLoad(this.state.autocomplete);\n }\n });\n }\n componentDidMount() {\n var _this$containerElemen;\n invariant(!!google.maps.places, 'You need to provide libraries={[\"places\"]} prop to component %s', google.maps.places);\n // TODO: why current could be equal null?\n var input = (_this$containerElemen = this.containerElement.current) === null || _this$containerElemen === void 0 ? void 0 : _this$containerElemen.querySelector('input');\n if (input) {\n var autocomplete = new google.maps.places.Autocomplete(input, this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: autocomplete\n });\n this.setState(() => {\n return {\n autocomplete\n };\n }, this.setAutocompleteCallback);\n }\n }\n componentDidUpdate(prevProps) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.autocomplete\n });\n }\n componentWillUnmount() {\n if (this.state.autocomplete !== null) {\n unregisterEvents(this.registeredEvents);\n }\n }\n render() {\n return jsx(\"div\", {\n ref: this.containerElement,\n className: this.props.className,\n children: Children.only(this.props.children)\n });\n }\n}\n_defineProperty(Autocomplete, \"defaultProps\", {\n className: ''\n});\n_defineProperty(Autocomplete, \"contextType\", MapContext);\n\nexport { Autocomplete, BicyclingLayer, BicyclingLayerF, Circle, CircleF, Data, DataF, DirectionsRenderer, DirectionsService, DistanceMatrixService, DrawingManager, DrawingManagerF, FLOAT_PANE, GoogleMap, index_esm as GoogleMapsMarkerClusterer, GoogleMarkerClusterer$1 as GoogleMarkerClusterer, GroundOverlay, GroundOverlayF, HeatmapLayer, HeatmapLayerF, InfoBoxComponent as InfoBox, InfoBoxF, InfoWindow, InfoWindowF, KmlLayer, LoadScript, LoadScriptNext$1 as LoadScriptNext, MAP_PANE, MARKER_LAYER, MapContext, Marker, ClustererComponent as MarkerClusterer, MarkerClustererF, MarkerF, OVERLAY_LAYER, OVERLAY_MOUSE_TARGET, OverlayView, OverlayViewF, Polygon, PolygonF, Polyline, PolylineF, Rectangle, RectangleF, StandaloneSearchBox, StreetViewPanorama, StreetViewService, TrafficLayer, TrafficLayerF, TransitLayer, TransitLayerF, useGoogleMap, useJsApiLoader, useLoadScript };\n//# sourceMappingURL=esm.js.map\n","/**\n * @remix-run/router v1.18.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded, allowPartial);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname, allowPartial) {\n if (allowPartial === void 0) {\n allowPartial = false;\n }\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n }, remainingPathname);\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnMissImpl = init.unstable_patchRoutesOnMiss;\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors = null;\n if (initialMatches == null && !patchRoutesOnMissImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n // In SPA apps, if the user provided a patchRoutesOnMiss implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && patchRoutesOnMissImpl && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(initialMatches, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n let initialized;\n if (!initialMatches) {\n // We need to run patchRoutesOnMiss in initialize()\n initialized = false;\n initialMatches = [];\n } else if (initialMatches.some(m => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some(m => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = m => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (typeof m.route.loader === \"function\" && m.route.loader.hydrate === true) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return loaderData && loaderData[m.route.id] !== undefined || errors && errors[m.route.id] !== undefined;\n };\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Map of pending patchRoutesOnMiss() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a
\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionResult;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [findNearestBoundary(matches).route.id, {\n type: ResultType.error,\n error: opts.pendingError\n }];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionResult = await handleAction(request, location, opts.submission, matches, fogOfWar.active, {\n replace: opts.replace,\n flushSync\n });\n if (actionResult.shortCircuited) {\n return;\n }\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n // Create a GET request for the loaders\n request = createClientSideRequest(init.history, request.url, request.signal);\n }\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, fogOfWar.active, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionResult);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches: updatedMatches || matches\n }, getActionDataForCommit(pendingActionResult), {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, isFogOfWar, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let {\n boundaryId,\n error\n } = handleDiscoverRouteError(location.pathname, discoverResult);\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [boundaryId, {\n type: ResultType.error,\n error\n }]\n };\n } else if (!discoverResult.matches) {\n let {\n notFoundMatches,\n error,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n pendingActionResult: [route.id, {\n type: ResultType.error,\n error\n }]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let results = await callDataStrategy(\"action\", request, [actionMatch], matches);\n result = results[0];\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(result.response.headers.get(\"Location\"), new URL(request.url), basename);\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionResult) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration);\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData !== undefined ? {\n actionData\n } : {}), {\n flushSync\n });\n }\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let {\n boundaryId,\n error\n } = handleDiscoverRouteError(location.pathname, discoverResult);\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error\n }\n };\n } else if (!discoverResult.matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null\n }, getActionDataForCommit(pendingActionResult), updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors).filter(_ref2 => {\n let [id] = _ref2;\n return !matchesToLoad.some(m => m.route.id === id);\n }).forEach(_ref3 => {\n let [routeId, error] = _ref3;\n errors = Object.assign(errors || {}, {\n [routeId]: error\n });\n });\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n matches,\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, fogOfWar.active, flushSync, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, fogOfWar.active, flushSync, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, isFogOfWar, flushSync, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n function detectAndHandle405Error(m) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return true;\n }\n return false;\n }\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(requestMatches, path, fetchRequest.signal);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let {\n error\n } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\"action\", fetchRequest, [match], requestMatches);\n let actionResult = actionResults[0];\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, [match.route.id, actionResult]);\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, isFogOfWar, flushSync, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, path, fetchRequest.signal);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let {\n error\n } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\"loader\", fetchRequest, [match], matches);\n let result = results[0];\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(request, redirect, _temp2) {\n let {\n submission,\n fetcherSubmission,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(location, new URL(request.url), basename);\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, request, matchesToLoad, matches) {\n try {\n let results = await callDataStrategyImpl(dataStrategyImpl, type, request, matchesToLoad, matches, manifest, mapRouteProperties);\n return await Promise.all(results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(response, request, matchesToLoad[i].route.id, matches, basename, future.v7_relativeSplatPath)\n };\n }\n return convertHandlerResultToDataResult(result);\n }));\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e\n }));\n }\n }\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n let [loaderResults, ...fetcherResults] = await Promise.all([matchesToLoad.length ? callDataStrategy(\"loader\", request, matchesToLoad, matches) : [], ...fetchersToLoad.map(f => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(init.history, f.path, f.controller.signal);\n return callDataStrategy(\"loader\", fetcherRequest, [f.match], f.matches).then(r => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n });\n }\n })]);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, loaderResults.map(() => request.signal), false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, fetchersToLoad.map(f => f.controller ? f.controller.signal : null), true)]);\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref4) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref4;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, {\n pathname\n });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let {\n matches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n return {\n notFoundMatches: matches,\n route,\n error\n };\n }\n function handleDiscoverRouteError(pathname, discoverResult) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message: discoverResult.error != null && \"message\" in discoverResult.error ? discoverResult.error : String(discoverResult.error)\n })\n };\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (patchRoutesOnMissImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: fogMatches || []\n };\n } else {\n let leafRoute = matches[matches.length - 1].route;\n if (leafRoute.path && (leafRoute.path === \"*\" || leafRoute.path.endsWith(\"/*\"))) {\n // If we matched a splat, it might only be because we haven't yet fetched\n // the children that would match with a higher score, so let's fetch\n // around and find out\n let partialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: partialMatches\n };\n }\n }\n }\n return {\n active: false,\n matches: null\n };\n }\n async function discoverRoutes(matches, pathname, signal) {\n let partialMatches = matches;\n let route = partialMatches.length > 0 ? partialMatches[partialMatches.length - 1].route : null;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(patchRoutesOnMissImpl, pathname, partialMatches, routesToUse, manifest, mapRouteProperties, pendingPatchRoutes, signal);\n } catch (e) {\n return {\n type: \"error\",\n error: e,\n partialMatches\n };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return {\n type: \"aborted\"\n };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n let matchedSplat = false;\n if (newMatches) {\n let leafRoute = newMatches[newMatches.length - 1].route;\n if (leafRoute.index) {\n // If we found an index route, we can stop\n return {\n type: \"success\",\n matches: newMatches\n };\n }\n if (leafRoute.path && leafRoute.path.length > 0) {\n if (leafRoute.path === \"*\") {\n // If we found a splat route, we can't be sure there's not a\n // higher-scoring route down some partial matches trail so we need\n // to check that out\n matchedSplat = true;\n } else {\n // If we found a non-splat route, we can stop\n return {\n type: \"success\",\n matches: newMatches\n };\n }\n }\n }\n let newPartialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n // If we are no longer partially matching anything, this was either a\n // legit splat match above, or it's a 404. Also avoid loops if the\n // second pass results in the same partial matches\n if (!newPartialMatches || partialMatches.map(m => m.route.id).join(\"-\") === newPartialMatches.map(m => m.route.id).join(\"-\")) {\n return {\n type: \"success\",\n matches: matchedSplat ? newMatches : null\n };\n }\n partialMatches = newPartialMatches;\n route = partialMatches[partialMatches.length - 1].route;\n if (route.path === \"*\") {\n // The splat is still our most accurate partial, so run with it\n return {\n type: \"success\",\n matches: partialMatches\n };\n }\n }\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n function patchRoutes(routeId, children) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties);\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(request, _temp3) {\n let {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext, unstable_dataStrategy || null, skipLoaderErrorBubbling === true, null);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext,\n unstable_dataStrategy\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, unstable_dataStrategy || null, false, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, unstable_dataStrategy, skipLoaderErrorBubbling, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, unstable_dataStrategy, skipLoaderErrorBubbling, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, unstable_dataStrategy, skipLoaderErrorBubbling, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, unstable_dataStrategy, skipLoaderErrorBubbling, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n let results = await callDataStrategy(\"action\", request, [actionMatch], matches, isRouteRequest, requestContext, unstable_dataStrategy);\n result = results[0];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(loaderRequest, matches, requestContext, unstable_dataStrategy, skipLoaderErrorBubbling, null, [boundaryMatch.route.id, result]);\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n let context = await loadRouteData(loaderRequest, matches, requestContext, unstable_dataStrategy, skipLoaderErrorBubbling, null);\n return _extends({}, context, {\n actionData: {\n [actionMatch.route.id]: result.data\n }\n }, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionHeaders: result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {}\n });\n }\n async function loadRouteData(request, matches, requestContext, unstable_dataStrategy, skipLoaderErrorBubbling, routeMatch, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : pendingActionResult && isErrorResult(pendingActionResult[1]) ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]) : matches;\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await callDataStrategy(\"loader\", request, matchesToLoad, matches, isRouteRequest, requestContext, unstable_dataStrategy);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, request, matchesToLoad, matches, isRouteRequest, requestContext, unstable_dataStrategy) {\n let results = await callDataStrategyImpl(unstable_dataStrategy || defaultDataStrategy, type, request, matchesToLoad, matches, manifest, mapRouteProperties, requestContext);\n return await Promise.all(results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(response, request, matchesToLoad[i].route.id, matches, basename, future.v7_relativeSplatPath);\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n return convertHandlerResultToDataResult(result);\n }));\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Add an ?index param for matched index routes if we don't already have one\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch && activeRouteMatch.route.index && !hasNakedIndexQuery(path.search)) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref5) => {\n let [name, value] = _ref5;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, isInitialLoad, skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[0] : undefined;\n let boundaryMatches = boundaryId ? getLoaderMatchesUntilBoundary(matches, boundaryId) : matches;\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : undefined;\n let shouldSkipRevalidation = skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return state.loaderData[route.id] === undefined && (\n // Don't re-run if the loader ran and threw an error\n !state.errors || state.errors[route.id] === undefined);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false :\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (isInitialLoad || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\n/**\n * Idempotent utility to execute patchRoutesOnMiss() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(patchRoutesOnMissImpl, path, matches, routes, manifest, mapRouteProperties, pendingRouteChildren, signal) {\n let key = [path, ...matches.map(m => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnMissImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(routeId, children, routes, manifest, mapRouteProperties);\n }\n }\n });\n pendingRouteChildren.set(key, pending);\n }\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties) {\n if (routeId) {\n var _route$children;\n let route = manifest[routeId];\n invariant(route, \"No route found to patch children into: routeId = \" + routeId);\n let dataChildren = convertRoutesToDataRoutes(children, mapRouteProperties, [routeId, \"patch\", String(((_route$children = route.children) == null ? void 0 : _route$children.length) || \"0\")], manifest);\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(children, mapRouteProperties, [\"patch\", String(routesToUse.length || \"0\")], manifest);\n routesToUse.push(...dataChildren);\n }\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(opts) {\n return Promise.all(opts.matches.map(m => m.resolve()));\n}\nasync function callDataStrategyImpl(dataStrategyImpl, type, request, matchesToLoad, matches, manifest, mapRouteProperties, requestContext) {\n let routeIdsToLoad = matchesToLoad.reduce((acc, m) => acc.add(m.route.id), new Set());\n let loadedMatches = new Set();\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map(match => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve = handlerOverride => {\n loadedMatches.add(match.route.id);\n return shouldLoad ? callLoaderOrAction(type, request, match, manifest, mapRouteProperties, handlerOverride, requestContext) : Promise.resolve({\n type: ResultType.data,\n result: undefined\n });\n };\n return _extends({}, match, {\n shouldLoad,\n resolve\n });\n }),\n request,\n params: matches[0].params,\n context: requestContext\n });\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach(m => invariant(loadedMatches.has(m.route.id), \"`match.resolve()` was not called for route id \\\"\" + m.route.id + \"\\\". \" + \"You must call `match.resolve()` on every match passed to \" + \"`dataStrategy` to ensure all routes are properly loaded.\"));\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(type, request, match, manifest, mapRouteProperties, handlerOverride, staticContext) {\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = ctx => {\n if (typeof handler !== \"function\") {\n return Promise.reject(new Error(\"You cannot call the handler for a route which defines a boolean \" + (\"\\\"\" + type + \"\\\" [routeId: \" + match.route.id + \"]\")));\n }\n return handler({\n request,\n params: match.params,\n context: staticContext\n }, ...(ctx !== undefined ? [ctx] : []));\n };\n let handlerPromise;\n if (handlerOverride) {\n handlerPromise = handlerOverride(ctx => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return {\n type: \"data\",\n result: val\n };\n } catch (e) {\n return {\n type: \"error\",\n result: e\n };\n }\n })();\n }\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = match.route[type];\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadLazyRouteModule(match.route, mapRouteProperties, manifest)]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n result: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result.result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return {\n type: ResultType.error,\n result: e\n };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function convertHandlerResultToDataResult(handlerResult) {\n let {\n result,\n type,\n status\n } = handlerResult;\n if (isResponse(result)) {\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status\n };\n }\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n return {\n type: ResultType.data,\n data: result,\n statusCode: status\n };\n}\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, v7_relativeSplatPath) {\n let location = response.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1);\n location = normalizeTo(new URL(request.url), trimmedMatches, basename, true, location, v7_relativeSplatPath);\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename) {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : undefined;\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = {\n [pendingActionResult[0]]: pendingError\n };\n loaderData[pendingActionResult[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingActionResult, activeDeferreds, false // This method is only called client side so we always want to bubble\n );\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match,\n controller\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index];\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type,\n message\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage = \"Unable to match URL \\\"\" + pathname + \"\\\" - the `unstable_patchRoutesOnMiss()` \" + (\"function threw the following error:\\n\" + message);\n } else if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return {\n result,\n idx: i\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isPromise(val) {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\nfunction isHandlerResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === ResultType.data || result.type === ResultType.error);\n}\nfunction isRedirectHandlerResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signals, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(signal, \"Expected an AbortSignal for revalidating fetcher deferred result\");\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, decodePath as UNSAFE_decodePath, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactStripe = {}, global.React));\n})(this, (function (exports, React) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaultExportFromCjs (x) {\n \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n }\n\n var propTypes = {exports: {}};\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var ReactPropTypesSecret_1;\n var hasRequiredReactPropTypesSecret;\n\n function requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var factoryWithThrowingShims;\n var hasRequiredFactoryWithThrowingShims;\n\n function requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n return factoryWithThrowingShims;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n }\n\n var propTypesExports = propTypes.exports;\n var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);\n\n var useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"2.7.3\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"2.7.3\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts '); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n };\n\n var _excluded = [\"on\", \"session\"];\n var CustomCheckoutSdkContext = /*#__PURE__*/React.createContext(null);\n CustomCheckoutSdkContext.displayName = 'CustomCheckoutSdkContext';\n var parseCustomCheckoutSdkContext = function parseCustomCheckoutSdkContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find CustomCheckoutProvider context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n var CustomCheckoutContext = /*#__PURE__*/React.createContext(null);\n CustomCheckoutContext.displayName = 'CustomCheckoutContext';\n var extractCustomCheckoutContextValue = function extractCustomCheckoutContextValue(customCheckoutSdk, sessionState) {\n if (!customCheckoutSdk) {\n return null;\n }\n\n customCheckoutSdk.on;\n customCheckoutSdk.session;\n var actions = _objectWithoutProperties(customCheckoutSdk, _excluded);\n\n if (!sessionState) {\n return _objectSpread2(_objectSpread2({}, actions), customCheckoutSdk.session());\n }\n\n return _objectSpread2(_objectSpread2({}, actions), sessionState);\n };\n var INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `CustomCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var CustomCheckoutProvider = function CustomCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR$1);\n }, [rawStripeProp]); // State used to trigger a re-render when sdk.session is updated\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n session = _React$useState2[0],\n setSession = _React$useState2[1];\n\n var _React$useState3 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n customCheckoutSdk: null\n };\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n ctx = _React$useState4[0],\n setContext = _React$useState4[1];\n\n var safeSetContext = function safeSetContext(stripe, customCheckoutSdk) {\n setContext(function (ctx) {\n if (ctx.stripe && ctx.customCheckoutSdk) {\n return ctx;\n }\n\n return {\n stripe: stripe,\n customCheckoutSdk: customCheckoutSdk\n };\n });\n }; // Ref used to avoid calling initCustomCheckout multiple times when options changes\n\n\n var initCustomCheckoutCalledRef = React.useRef(false);\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted && !initCustomCheckoutCalledRef.current) {\n // Only update context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n initCustomCheckoutCalledRef.current = true;\n stripe.initCustomCheckout(options).then(function (customCheckoutSdk) {\n if (customCheckoutSdk) {\n safeSetContext(stripe, customCheckoutSdk);\n customCheckoutSdk.on('change', setSession);\n }\n });\n }\n });\n } else if (parsed.tag === 'sync' && parsed.stripe && !initCustomCheckoutCalledRef.current) {\n initCustomCheckoutCalledRef.current = true;\n parsed.stripe.initCustomCheckout(options).then(function (customCheckoutSdk) {\n if (customCheckoutSdk) {\n safeSetContext(parsed.stripe, customCheckoutSdk);\n customCheckoutSdk.on('change', setSession);\n }\n });\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options, setSession]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on CustomCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n var _prevOptions$elements, _options$elementsOpti;\n\n if (!ctx.customCheckoutSdk) {\n return;\n }\n\n if (options.clientSecret && !isUnknownObject(prevOptions) && !isEqual(options.clientSecret, prevOptions.clientSecret)) {\n console.warn('Unsupported prop change: options.client_secret is not a mutable property.');\n }\n\n var previousAppearance = prevOptions === null || prevOptions === void 0 ? void 0 : (_prevOptions$elements = prevOptions.elementsOptions) === null || _prevOptions$elements === void 0 ? void 0 : _prevOptions$elements.appearance;\n var currentAppearance = options === null || options === void 0 ? void 0 : (_options$elementsOpti = options.elementsOptions) === null || _options$elementsOpti === void 0 ? void 0 : _options$elementsOpti.appearance;\n\n if (currentAppearance && !isEqual(currentAppearance, previousAppearance)) {\n ctx.customCheckoutSdk.changeAppearance(currentAppearance);\n }\n }, [options, prevOptions, ctx.customCheckoutSdk]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n var customCheckoutContextValue = React.useMemo(function () {\n return extractCustomCheckoutContextValue(ctx.customCheckoutSdk, session);\n }, [ctx.customCheckoutSdk, session]);\n\n if (!ctx.customCheckoutSdk) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(CustomCheckoutSdkContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CustomCheckoutContext.Provider, {\n value: customCheckoutContextValue\n }, children));\n };\n CustomCheckoutProvider.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.shape({\n clientSecret: PropTypes.string.isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n };\n var useCustomCheckoutSdkContextWithUseCase = function useCustomCheckoutSdkContextWithUseCase(useCaseString) {\n var ctx = React.useContext(CustomCheckoutSdkContext);\n return parseCustomCheckoutSdkContext(ctx, useCaseString);\n };\n var useElementsOrCustomCheckoutSdkContextWithUseCase = function useElementsOrCustomCheckoutSdkContextWithUseCase(useCaseString) {\n var customCheckoutSdkContext = React.useContext(CustomCheckoutSdkContext);\n var elementsContext = React.useContext(ElementsContext);\n\n if (customCheckoutSdkContext && elementsContext) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both and providers.\"));\n }\n\n if (customCheckoutSdkContext) {\n return parseCustomCheckoutSdkContext(customCheckoutSdkContext, useCaseString);\n }\n\n return parseElementsContext(elementsContext, useCaseString);\n };\n var useCustomCheckout = function useCustomCheckout() {\n // ensure it's in CustomCheckoutProvider\n useCustomCheckoutSdkContextWithUseCase('calls useCustomCheckout()');\n var ctx = React.useContext(CustomCheckoutContext);\n\n if (!ctx) {\n throw new Error('Could not find CustomCheckout Context; You need to wrap the part of your app that calls useCustomCheckout() in an provider.');\n }\n\n return ctx;\n };\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n var ctx = useElementsOrCustomCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var customCheckoutSdk = 'customCheckoutSdk' in ctx ? ctx.customCheckoutSdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || customCheckoutSdk)) {\n var newElement = null;\n\n if (customCheckoutSdk) {\n newElement = customCheckoutSdk.createElement(type, options);\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, customCheckoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCustomCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n\n var EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\n EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\n var useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error(' must be used within ');\n }\n\n return ctx;\n };\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n\n if (prevOptions.onShippingDetailsChange != null && options.onShippingDetailsChange !== prevOptions.onShippingDetailsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n };\n\n var EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n }; // Only render the wrapper in a server environment.\n\n\n var EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsOrCustomC = useElementsOrCustomCheckoutSdkContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCustomC.stripe;\n\n return stripe;\n };\n\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.CustomCheckoutProvider = CustomCheckoutProvider;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EmbeddedCheckout = EmbeddedCheckout;\n exports.EmbeddedCheckoutProvider = EmbeddedCheckoutProvider;\n exports.EpsBankElement = EpsBankElement;\n exports.ExpressCheckoutElement = ExpressCheckoutElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useCustomCheckout = useCustomCheckout;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n}));\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"katex\"] = factory();\n\telse\n\t\troot[\"katex\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \t// The require scope\n/******/ \tvar __webpack_require__ = {};\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ katex_webpack; }\n});\n\n;// CONCATENATED MODULE: ./src/ParseError.js\n\n\n/**\n * This is the ParseError class, which is the main error thrown by KaTeX\n * functions when something has gone wrong. This is used to distinguish internal\n * errors from errors in the expression that the user provided.\n *\n * If possible, a caller should provide a Token or ParseNode with information\n * about where in the source string the problem occurred.\n */\nclass ParseError {\n // Error start position based on passed-in Token or ParseNode.\n // Length of affected text based on passed-in Token or ParseNode.\n // The underlying error message without any context added.\n constructor(message, // The error message\n token // An object providing position information\n ) {\n this.name = void 0;\n this.position = void 0;\n this.length = void 0;\n this.rawMessage = void 0;\n let error = \"KaTeX parse error: \" + message;\n let start;\n let end;\n const loc = token && token.loc;\n\n if (loc && loc.start <= loc.end) {\n // If we have the input and a position, make the error a bit fancier\n // Get the input\n const input = loc.lexer.input; // Prepend some information\n\n start = loc.start;\n end = loc.end;\n\n if (start === input.length) {\n error += \" at end of input: \";\n } else {\n error += \" at position \" + (start + 1) + \": \";\n } // Underline token in question using combining underscores\n\n\n const underlined = input.slice(start, end).replace(/[^]/g, \"$&\\u0332\"); // Extract some context from the input and add it to the error\n\n let left;\n\n if (start > 15) {\n left = \"…\" + input.slice(start - 15, start);\n } else {\n left = input.slice(0, start);\n }\n\n let right;\n\n if (end + 15 < input.length) {\n right = input.slice(end, end + 15) + \"…\";\n } else {\n right = input.slice(end);\n }\n\n error += left + underlined + right;\n } // Some hackery to make ParseError a prototype of Error\n // See http://stackoverflow.com/a/8460753\n // $FlowFixMe\n\n\n const self = new Error(error);\n self.name = \"ParseError\"; // $FlowFixMe\n\n self.__proto__ = ParseError.prototype;\n self.position = start;\n\n if (start != null && end != null) {\n self.length = end - start;\n }\n\n self.rawMessage = message;\n return self;\n }\n\n} // $FlowFixMe More hackery\n\n\nParseError.prototype.__proto__ = Error.prototype;\n/* harmony default export */ var src_ParseError = (ParseError);\n;// CONCATENATED MODULE: ./src/utils.js\n/**\n * This file contains a list of utility functions which are useful in other\n * files.\n */\n\n/**\n * Return whether an element is contained in a list\n */\nconst contains = function (list, elem) {\n return list.indexOf(elem) !== -1;\n};\n/**\n * Provide a default value if a setting is undefined\n * NOTE: Couldn't use `T` as the output type due to facebook/flow#5022.\n */\n\n\nconst deflt = function (setting, defaultIfUndefined) {\n return setting === undefined ? defaultIfUndefined : setting;\n}; // hyphenate and escape adapted from Facebook's React under Apache 2 license\n\n\nconst uppercase = /([A-Z])/g;\n\nconst hyphenate = function (str) {\n return str.replace(uppercase, \"-$1\").toLowerCase();\n};\n\nconst ESCAPE_LOOKUP = {\n \"&\": \"&\",\n \">\": \">\",\n \"<\": \"<\",\n \"\\\"\": \""\",\n \"'\": \"'\"\n};\nconst ESCAPE_REGEX = /[&><\"']/g;\n/**\n * Escapes text to prevent scripting attacks.\n */\n\nfunction utils_escape(text) {\n return String(text).replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);\n}\n/**\n * Sometimes we want to pull out the innermost element of a group. In most\n * cases, this will just be the group itself, but when ordgroups and colors have\n * a single element, we want to pull that out.\n */\n\n\nconst getBaseElem = function (group) {\n if (group.type === \"ordgroup\") {\n if (group.body.length === 1) {\n return getBaseElem(group.body[0]);\n } else {\n return group;\n }\n } else if (group.type === \"color\") {\n if (group.body.length === 1) {\n return getBaseElem(group.body[0]);\n } else {\n return group;\n }\n } else if (group.type === \"font\") {\n return getBaseElem(group.body);\n } else {\n return group;\n }\n};\n/**\n * TeXbook algorithms often reference \"character boxes\", which are simply groups\n * with a single character in them. To decide if something is a character box,\n * we find its innermost group, and see if it is a single character.\n */\n\n\nconst isCharacterBox = function (group) {\n const baseElem = getBaseElem(group); // These are all they types of groups which hold single characters\n\n return baseElem.type === \"mathord\" || baseElem.type === \"textord\" || baseElem.type === \"atom\";\n};\n\nconst assert = function (value) {\n if (!value) {\n throw new Error('Expected non-null, but got ' + String(value));\n }\n\n return value;\n};\n/**\n * Return the protocol of a URL, or \"_relative\" if the URL does not specify a\n * protocol (and thus is relative), or `null` if URL has invalid protocol\n * (so should be outright rejected).\n */\n\nconst protocolFromUrl = function (url) {\n // Check for possible leading protocol.\n // https://url.spec.whatwg.org/#url-parsing strips leading whitespace\n // (U+20) or C0 control (U+00-U+1F) characters.\n // eslint-disable-next-line no-control-regex\n const protocol = /^[\\x00-\\x20]*([^\\\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(url);\n\n if (!protocol) {\n return \"_relative\";\n } // Reject weird colons\n\n\n if (protocol[2] !== \":\") {\n return null;\n } // Reject invalid characters in scheme according to\n // https://datatracker.ietf.org/doc/html/rfc3986#section-3.1\n\n\n if (!/^[a-zA-Z][a-zA-Z0-9+\\-.]*$/.test(protocol[1])) {\n return null;\n } // Lowercase the protocol\n\n\n return protocol[1].toLowerCase();\n};\n/* harmony default export */ var utils = ({\n contains,\n deflt,\n escape: utils_escape,\n hyphenate,\n getBaseElem,\n isCharacterBox,\n protocolFromUrl\n});\n;// CONCATENATED MODULE: ./src/Settings.js\n/* eslint no-console:0 */\n\n/**\n * This is a module for storing settings passed into KaTeX. It correctly handles\n * default settings.\n */\n\n\n\n// TODO: automatically generate documentation\n// TODO: check all properties on Settings exist\n// TODO: check the type of a property on Settings matches\nconst SETTINGS_SCHEMA = {\n displayMode: {\n type: \"boolean\",\n description: \"Render math in display mode, which puts the math in \" + \"display style (so \\\\int and \\\\sum are large, for example), and \" + \"centers the math on the page on its own line.\",\n cli: \"-d, --display-mode\"\n },\n output: {\n type: {\n enum: [\"htmlAndMathml\", \"html\", \"mathml\"]\n },\n description: \"Determines the markup language of the output.\",\n cli: \"-F, --format \"\n },\n leqno: {\n type: \"boolean\",\n description: \"Render display math in leqno style (left-justified tags).\"\n },\n fleqn: {\n type: \"boolean\",\n description: \"Render display math flush left.\"\n },\n throwOnError: {\n type: \"boolean\",\n default: true,\n cli: \"-t, --no-throw-on-error\",\n cliDescription: \"Render errors (in the color given by --error-color) ins\" + \"tead of throwing a ParseError exception when encountering an error.\"\n },\n errorColor: {\n type: \"string\",\n default: \"#cc0000\",\n cli: \"-c, --error-color \",\n cliDescription: \"A color string given in the format 'rgb' or 'rrggbb' \" + \"(no #). This option determines the color of errors rendered by the \" + \"-t option.\",\n cliProcessor: color => \"#\" + color\n },\n macros: {\n type: \"object\",\n cli: \"-m, --macro \",\n cliDescription: \"Define custom macro of the form '\\\\foo:expansion' (use \" + \"multiple -m arguments for multiple macros).\",\n cliDefault: [],\n cliProcessor: (def, defs) => {\n defs.push(def);\n return defs;\n }\n },\n minRuleThickness: {\n type: \"number\",\n description: \"Specifies a minimum thickness, in ems, for fraction lines,\" + \" `\\\\sqrt` top lines, `{array}` vertical lines, `\\\\hline`, \" + \"`\\\\hdashline`, `\\\\underline`, `\\\\overline`, and the borders of \" + \"`\\\\fbox`, `\\\\boxed`, and `\\\\fcolorbox`.\",\n processor: t => Math.max(0, t),\n cli: \"--min-rule-thickness \",\n cliProcessor: parseFloat\n },\n colorIsTextColor: {\n type: \"boolean\",\n description: \"Makes \\\\color behave like LaTeX's 2-argument \\\\textcolor, \" + \"instead of LaTeX's one-argument \\\\color mode change.\",\n cli: \"-b, --color-is-text-color\"\n },\n strict: {\n type: [{\n enum: [\"warn\", \"ignore\", \"error\"]\n }, \"boolean\", \"function\"],\n description: \"Turn on strict / LaTeX faithfulness mode, which throws an \" + \"error if the input uses features that are not supported by LaTeX.\",\n cli: \"-S, --strict\",\n cliDefault: false\n },\n trust: {\n type: [\"boolean\", \"function\"],\n description: \"Trust the input, enabling all HTML features such as \\\\url.\",\n cli: \"-T, --trust\"\n },\n maxSize: {\n type: \"number\",\n default: Infinity,\n description: \"If non-zero, all user-specified sizes, e.g. in \" + \"\\\\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, \" + \"elements and spaces can be arbitrarily large\",\n processor: s => Math.max(0, s),\n cli: \"-s, --max-size \",\n cliProcessor: parseInt\n },\n maxExpand: {\n type: \"number\",\n default: 1000,\n description: \"Limit the number of macro expansions to the specified \" + \"number, to prevent e.g. infinite macro loops. If set to Infinity, \" + \"the macro expander will try to fully expand as in LaTeX.\",\n processor: n => Math.max(0, n),\n cli: \"-e, --max-expand \",\n cliProcessor: n => n === \"Infinity\" ? Infinity : parseInt(n)\n },\n globalGroup: {\n type: \"boolean\",\n cli: false\n }\n};\n\nfunction getDefaultValue(schema) {\n if (schema.default) {\n return schema.default;\n }\n\n const type = schema.type;\n const defaultType = Array.isArray(type) ? type[0] : type;\n\n if (typeof defaultType !== 'string') {\n return defaultType.enum[0];\n }\n\n switch (defaultType) {\n case 'boolean':\n return false;\n\n case 'string':\n return '';\n\n case 'number':\n return 0;\n\n case 'object':\n return {};\n }\n}\n/**\n * The main Settings object\n *\n * The current options stored are:\n * - displayMode: Whether the expression should be typeset as inline math\n * (false, the default), meaning that the math starts in\n * \\textstyle and is placed in an inline-block); or as display\n * math (true), meaning that the math starts in \\displaystyle\n * and is placed in a block with vertical margin.\n */\n\n\nclass Settings {\n constructor(options) {\n this.displayMode = void 0;\n this.output = void 0;\n this.leqno = void 0;\n this.fleqn = void 0;\n this.throwOnError = void 0;\n this.errorColor = void 0;\n this.macros = void 0;\n this.minRuleThickness = void 0;\n this.colorIsTextColor = void 0;\n this.strict = void 0;\n this.trust = void 0;\n this.maxSize = void 0;\n this.maxExpand = void 0;\n this.globalGroup = void 0;\n // allow null options\n options = options || {};\n\n for (const prop in SETTINGS_SCHEMA) {\n if (SETTINGS_SCHEMA.hasOwnProperty(prop)) {\n // $FlowFixMe\n const schema = SETTINGS_SCHEMA[prop]; // TODO: validate options\n // $FlowFixMe\n\n this[prop] = options[prop] !== undefined ? schema.processor ? schema.processor(options[prop]) : options[prop] : getDefaultValue(schema);\n }\n }\n }\n /**\n * Report nonstrict (non-LaTeX-compatible) input.\n * Can safely not be called if `this.strict` is false in JavaScript.\n */\n\n\n reportNonstrict(errorCode, errorMsg, token) {\n let strict = this.strict;\n\n if (typeof strict === \"function\") {\n // Allow return value of strict function to be boolean or string\n // (or null/undefined, meaning no further processing).\n strict = strict(errorCode, errorMsg, token);\n }\n\n if (!strict || strict === \"ignore\") {\n return;\n } else if (strict === true || strict === \"error\") {\n throw new src_ParseError(\"LaTeX-incompatible input and strict mode is set to 'error': \" + (errorMsg + \" [\" + errorCode + \"]\"), token);\n } else if (strict === \"warn\") {\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \" + (errorMsg + \" [\" + errorCode + \"]\"));\n } else {\n // won't happen in type-safe code\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to \" + (\"unrecognized '\" + strict + \"': \" + errorMsg + \" [\" + errorCode + \"]\"));\n }\n }\n /**\n * Check whether to apply strict (LaTeX-adhering) behavior for unusual\n * input (like `\\\\`). Unlike `nonstrict`, will not throw an error;\n * instead, \"error\" translates to a return value of `true`, while \"ignore\"\n * translates to a return value of `false`. May still print a warning:\n * \"warn\" prints a warning and returns `false`.\n * This is for the second category of `errorCode`s listed in the README.\n */\n\n\n useStrictBehavior(errorCode, errorMsg, token) {\n let strict = this.strict;\n\n if (typeof strict === \"function\") {\n // Allow return value of strict function to be boolean or string\n // (or null/undefined, meaning no further processing).\n // But catch any exceptions thrown by function, treating them\n // like \"error\".\n try {\n strict = strict(errorCode, errorMsg, token);\n } catch (error) {\n strict = \"error\";\n }\n }\n\n if (!strict || strict === \"ignore\") {\n return false;\n } else if (strict === true || strict === \"error\") {\n return true;\n } else if (strict === \"warn\") {\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \" + (errorMsg + \" [\" + errorCode + \"]\"));\n return false;\n } else {\n // won't happen in type-safe code\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to \" + (\"unrecognized '\" + strict + \"': \" + errorMsg + \" [\" + errorCode + \"]\"));\n return false;\n }\n }\n /**\n * Check whether to test potentially dangerous input, and return\n * `true` (trusted) or `false` (untrusted). The sole argument `context`\n * should be an object with `command` field specifying the relevant LaTeX\n * command (as a string starting with `\\`), and any other arguments, etc.\n * If `context` has a `url` field, a `protocol` field will automatically\n * get added by this function (changing the specified object).\n */\n\n\n isTrusted(context) {\n if (context.url && !context.protocol) {\n const protocol = utils.protocolFromUrl(context.url);\n\n if (protocol == null) {\n return false;\n }\n\n context.protocol = protocol;\n }\n\n const trust = typeof this.trust === \"function\" ? this.trust(context) : this.trust;\n return Boolean(trust);\n }\n\n}\n;// CONCATENATED MODULE: ./src/Style.js\n/**\n * This file contains information and classes for the various kinds of styles\n * used in TeX. It provides a generic `Style` class, which holds information\n * about a specific style. It then provides instances of all the different kinds\n * of styles possible, and provides functions to move between them and get\n * information about them.\n */\n\n/**\n * The main style class. Contains a unique id for the style, a size (which is\n * the same for cramped and uncramped version of a style), and a cramped flag.\n */\nclass Style {\n constructor(id, size, cramped) {\n this.id = void 0;\n this.size = void 0;\n this.cramped = void 0;\n this.id = id;\n this.size = size;\n this.cramped = cramped;\n }\n /**\n * Get the style of a superscript given a base in the current style.\n */\n\n\n sup() {\n return styles[sup[this.id]];\n }\n /**\n * Get the style of a subscript given a base in the current style.\n */\n\n\n sub() {\n return styles[sub[this.id]];\n }\n /**\n * Get the style of a fraction numerator given the fraction in the current\n * style.\n */\n\n\n fracNum() {\n return styles[fracNum[this.id]];\n }\n /**\n * Get the style of a fraction denominator given the fraction in the current\n * style.\n */\n\n\n fracDen() {\n return styles[fracDen[this.id]];\n }\n /**\n * Get the cramped version of a style (in particular, cramping a cramped style\n * doesn't change the style).\n */\n\n\n cramp() {\n return styles[cramp[this.id]];\n }\n /**\n * Get a text or display version of this style.\n */\n\n\n text() {\n return styles[Style_text[this.id]];\n }\n /**\n * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)\n */\n\n\n isTight() {\n return this.size >= 2;\n }\n\n} // Export an interface for type checking, but don't expose the implementation.\n// This way, no more styles can be generated.\n\n\n// IDs of the different styles\nconst D = 0;\nconst Dc = 1;\nconst T = 2;\nconst Tc = 3;\nconst S = 4;\nconst Sc = 5;\nconst SS = 6;\nconst SSc = 7; // Instances of the different styles\n\nconst styles = [new Style(D, 0, false), new Style(Dc, 0, true), new Style(T, 1, false), new Style(Tc, 1, true), new Style(S, 2, false), new Style(Sc, 2, true), new Style(SS, 3, false), new Style(SSc, 3, true)]; // Lookup tables for switching from one style to another\n\nconst sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];\nconst sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];\nconst fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];\nconst fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];\nconst cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];\nconst Style_text = [D, Dc, T, Tc, T, Tc, T, Tc]; // We only export some of the styles.\n\n/* harmony default export */ var src_Style = ({\n DISPLAY: styles[D],\n TEXT: styles[T],\n SCRIPT: styles[S],\n SCRIPTSCRIPT: styles[SS]\n});\n;// CONCATENATED MODULE: ./src/unicodeScripts.js\n/*\n * This file defines the Unicode scripts and script families that we\n * support. To add new scripts or families, just add a new entry to the\n * scriptData array below. Adding scripts to the scriptData array allows\n * characters from that script to appear in \\text{} environments.\n */\n\n/**\n * Each script or script family has a name and an array of blocks.\n * Each block is an array of two numbers which specify the start and\n * end points (inclusive) of a block of Unicode codepoints.\n */\n\n/**\n * Unicode block data for the families of scripts we support in \\text{}.\n * Scripts only need to appear here if they do not have font metrics.\n */\nconst scriptData = [{\n // Latin characters beyond the Latin-1 characters we have metrics for.\n // Needed for Czech, Hungarian and Turkish text, for example.\n name: 'latin',\n blocks: [[0x0100, 0x024f], // Latin Extended-A and Latin Extended-B\n [0x0300, 0x036f] // Combining Diacritical marks\n ]\n}, {\n // The Cyrillic script used by Russian and related languages.\n // A Cyrillic subset used to be supported as explicitly defined\n // symbols in symbols.js\n name: 'cyrillic',\n blocks: [[0x0400, 0x04ff]]\n}, {\n // Armenian\n name: 'armenian',\n blocks: [[0x0530, 0x058F]]\n}, {\n // The Brahmic scripts of South and Southeast Asia\n // Devanagari (0900–097F)\n // Bengali (0980–09FF)\n // Gurmukhi (0A00–0A7F)\n // Gujarati (0A80–0AFF)\n // Oriya (0B00–0B7F)\n // Tamil (0B80–0BFF)\n // Telugu (0C00–0C7F)\n // Kannada (0C80–0CFF)\n // Malayalam (0D00–0D7F)\n // Sinhala (0D80–0DFF)\n // Thai (0E00–0E7F)\n // Lao (0E80–0EFF)\n // Tibetan (0F00–0FFF)\n // Myanmar (1000–109F)\n name: 'brahmic',\n blocks: [[0x0900, 0x109F]]\n}, {\n name: 'georgian',\n blocks: [[0x10A0, 0x10ff]]\n}, {\n // Chinese and Japanese.\n // The \"k\" in cjk is for Korean, but we've separated Korean out\n name: \"cjk\",\n blocks: [[0x3000, 0x30FF], // CJK symbols and punctuation, Hiragana, Katakana\n [0x4E00, 0x9FAF], // CJK ideograms\n [0xFF00, 0xFF60] // Fullwidth punctuation\n // TODO: add halfwidth Katakana and Romanji glyphs\n ]\n}, {\n // Korean\n name: 'hangul',\n blocks: [[0xAC00, 0xD7AF]]\n}];\n/**\n * Given a codepoint, return the name of the script or script family\n * it is from, or null if it is not part of a known block\n */\n\nfunction scriptFromCodepoint(codepoint) {\n for (let i = 0; i < scriptData.length; i++) {\n const script = scriptData[i];\n\n for (let i = 0; i < script.blocks.length; i++) {\n const block = script.blocks[i];\n\n if (codepoint >= block[0] && codepoint <= block[1]) {\n return script.name;\n }\n }\n }\n\n return null;\n}\n/**\n * A flattened version of all the supported blocks in a single array.\n * This is an optimization to make supportedCodepoint() fast.\n */\n\nconst allBlocks = [];\nscriptData.forEach(s => s.blocks.forEach(b => allBlocks.push(...b)));\n/**\n * Given a codepoint, return true if it falls within one of the\n * scripts or script families defined above and false otherwise.\n *\n * Micro benchmarks shows that this is faster than\n * /[\\u3000-\\u30FF\\u4E00-\\u9FAF\\uFF00-\\uFF60\\uAC00-\\uD7AF\\u0900-\\u109F]/.test()\n * in Firefox, Chrome and Node.\n */\n\nfunction supportedCodepoint(codepoint) {\n for (let i = 0; i < allBlocks.length; i += 2) {\n if (codepoint >= allBlocks[i] && codepoint <= allBlocks[i + 1]) {\n return true;\n }\n }\n\n return false;\n}\n;// CONCATENATED MODULE: ./src/svgGeometry.js\n/**\n * This file provides support to domTree.js and delimiter.js.\n * It's a storehouse of path geometry for SVG images.\n */\n// In all paths below, the viewBox-to-em scale is 1000:1.\nconst hLinePad = 80; // padding above a sqrt vinculum. Prevents image cropping.\n// The vinculum of a \\sqrt can be made thicker by a KaTeX rendering option.\n// Think of variable extraVinculum as two detours in the SVG path.\n// The detour begins at the lower left of the area labeled extraVinculum below.\n// The detour proceeds one extraVinculum distance up and slightly to the right,\n// displacing the radiused corner between surd and vinculum. The radius is\n// traversed as usual, then the detour resumes. It goes right, to the end of\n// the very long vinculum, then down one extraVinculum distance,\n// after which it resumes regular path geometry for the radical.\n\n/* vinculum\n /\n /▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒←extraVinculum\n / █████████████████████←0.04em (40 unit) std vinculum thickness\n / /\n / /\n / /\\\n / / surd\n*/\n\nconst sqrtMain = function (extraVinculum, hLinePad) {\n // sqrtMain path geometry is from glyph U221A in the font KaTeX Main\n return \"M95,\" + (622 + extraVinculum + hLinePad) + \"\\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\\nc69,-144,104.5,-217.7,106.5,-221\\nl\" + extraVinculum / 2.075 + \" -\" + extraVinculum + \"\\nc5.3,-9.3,12,-14,20,-14\\nH400000v\" + (40 + extraVinculum) + \"H845.2724\\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\\nM\" + (834 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nconst sqrtSize1 = function (extraVinculum, hLinePad) {\n // size1 is from glyph U221A in the font KaTeX_Size1-Regular\n return \"M263,\" + (601 + extraVinculum + hLinePad) + \"c0.7,0,18,39.7,52,119\\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\\nc340,-704.7,510.7,-1060.3,512,-1067\\nl\" + extraVinculum / 2.084 + \" -\" + extraVinculum + \"\\nc4.7,-7.3,11,-11,19,-11\\nH40000v\" + (40 + extraVinculum) + \"H1012.3\\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\\nM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nconst sqrtSize2 = function (extraVinculum, hLinePad) {\n // size2 is from glyph U221A in the font KaTeX_Size2-Regular\n return \"M983 \" + (10 + extraVinculum + hLinePad) + \"\\nl\" + extraVinculum / 3.13 + \" -\" + extraVinculum + \"\\nc4,-6.7,10,-10,18,-10 H400000v\" + (40 + extraVinculum) + \"\\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\\nM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nconst sqrtSize3 = function (extraVinculum, hLinePad) {\n // size3 is from glyph U221A in the font KaTeX_Size3-Regular\n return \"M424,\" + (2398 + extraVinculum + hLinePad) + \"\\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\\nl\" + extraVinculum / 4.223 + \" -\" + extraVinculum + \"c4,-6.7,10,-10,18,-10 H400000\\nv\" + (40 + extraVinculum) + \"H1014.6\\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\\nc-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2z M\" + (1001 + extraVinculum) + \" \" + hLinePad + \"\\nh400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nconst sqrtSize4 = function (extraVinculum, hLinePad) {\n // size4 is from glyph U221A in the font KaTeX_Size4-Regular\n return \"M473,\" + (2713 + extraVinculum + hLinePad) + \"\\nc339.3,-1799.3,509.3,-2700,510,-2702 l\" + extraVinculum / 5.298 + \" -\" + extraVinculum + \"\\nc3.3,-7.3,9.3,-11,18,-11 H400000v\" + (40 + extraVinculum) + \"H1017.7\\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\\n606zM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"H1017.7z\";\n};\n\nconst phasePath = function (y) {\n const x = y / 2; // x coordinate at top of angle\n\n return \"M400000 \" + y + \" H0 L\" + x + \" 0 l65 45 L145 \" + (y - 80) + \" H400000z\";\n};\n\nconst sqrtTall = function (extraVinculum, hLinePad, viewBoxHeight) {\n // sqrtTall is from glyph U23B7 in the font KaTeX_Size4-Regular\n // One path edge has a variable length. It runs vertically from the vinculum\n // to a point near (14 units) the bottom of the surd. The vinculum\n // is normally 40 units thick. So the length of the line in question is:\n const vertSegment = viewBoxHeight - 54 - hLinePad - extraVinculum;\n return \"M702 \" + (extraVinculum + hLinePad) + \"H400000\" + (40 + extraVinculum) + \"\\nH742v\" + vertSegment + \"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\\n219 661 l218 661zM702 \" + hLinePad + \"H400000v\" + (40 + extraVinculum) + \"H742z\";\n};\n\nconst sqrtPath = function (size, extraVinculum, viewBoxHeight) {\n extraVinculum = 1000 * extraVinculum; // Convert from document ems to viewBox.\n\n let path = \"\";\n\n switch (size) {\n case \"sqrtMain\":\n path = sqrtMain(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize1\":\n path = sqrtSize1(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize2\":\n path = sqrtSize2(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize3\":\n path = sqrtSize3(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize4\":\n path = sqrtSize4(extraVinculum, hLinePad);\n break;\n\n case \"sqrtTall\":\n path = sqrtTall(extraVinculum, hLinePad, viewBoxHeight);\n }\n\n return path;\n};\nconst innerPath = function (name, height) {\n // The inner part of stretchy tall delimiters\n switch (name) {\n case \"\\u239c\":\n return \"M291 0 H417 V\" + height + \" H291z M291 0 H417 V\" + height + \" H291z\";\n\n case \"\\u2223\":\n return \"M145 0 H188 V\" + height + \" H145z M145 0 H188 V\" + height + \" H145z\";\n\n case \"\\u2225\":\n return \"M145 0 H188 V\" + height + \" H145z M145 0 H188 V\" + height + \" H145z\" + (\"M367 0 H410 V\" + height + \" H367z M367 0 H410 V\" + height + \" H367z\");\n\n case \"\\u239f\":\n return \"M457 0 H583 V\" + height + \" H457z M457 0 H583 V\" + height + \" H457z\";\n\n case \"\\u23a2\":\n return \"M319 0 H403 V\" + height + \" H319z M319 0 H403 V\" + height + \" H319z\";\n\n case \"\\u23a5\":\n return \"M263 0 H347 V\" + height + \" H263z M263 0 H347 V\" + height + \" H263z\";\n\n case \"\\u23aa\":\n return \"M384 0 H504 V\" + height + \" H384z M384 0 H504 V\" + height + \" H384z\";\n\n case \"\\u23d0\":\n return \"M312 0 H355 V\" + height + \" H312z M312 0 H355 V\" + height + \" H312z\";\n\n case \"\\u2016\":\n return \"M257 0 H300 V\" + height + \" H257z M257 0 H300 V\" + height + \" H257z\" + (\"M478 0 H521 V\" + height + \" H478z M478 0 H521 V\" + height + \" H478z\");\n\n default:\n return \"\";\n }\n};\nconst path = {\n // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main\n doubleleftarrow: \"M262 157\\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\\nm8 0v40h399730v-40zm0 194v40h399730v-40z\",\n // doublerightarrow is from glyph U+21D2 in font KaTeX Main\n doublerightarrow: \"M399738 392l\\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z\",\n // leftarrow is from glyph U+2190 in font KaTeX Main\n leftarrow: \"M400000 241H110l3-3c68.7-52.7 113.7-120\\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\\n l-3-3h399890zM100 241v40h399900v-40z\",\n // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular\n leftbrace: \"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z\",\n leftbraceunder: \"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z\",\n // overgroup is from the MnSymbol package (public domain)\n leftgroup: \"M400000 80\\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\\n 435 0h399565z\",\n leftgroupunder: \"M400000 262\\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\\n 435 219h399565z\",\n // Harpoons are from glyph U+21BD in font KaTeX Main\n leftharpoon: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z\",\n leftharpoonplus: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\\nm0 0v40h400000v-40z\",\n leftharpoondown: \"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z\",\n leftharpoondownplus: \"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z\",\n // hook is from glyph U+21A9 in font KaTeX Main\n lefthook: \"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\\n 71.5 23h399859zM103 281v-40h399897v40z\",\n leftlinesegment: \"M40 281 V428 H0 V94 H40 V241 H400000 v40z\\nM40 281 V428 H0 V94 H40 V241 H400000 v40z\",\n leftmapsto: \"M40 281 V448H0V74H40V241H400000v40z\\nM40 281 V448H0V74H40V241H400000v40z\",\n // tofrom is from glyph U+21C4 in font KaTeX AMS Regular\n leftToFrom: \"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z\",\n longequal: \"M0 50 h400000 v40H0z m0 194h40000v40H0z\\nM0 50 h400000 v40H0z m0 194h40000v40H0z\",\n midbrace: \"M200428 334\\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z\",\n midbraceunder: \"M199572 214\\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z\",\n oiintSize1: \"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z\",\n oiintSize2: \"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\\nc0 110 84 276 504 276s502.4-166 502.4-276z\",\n oiiintSize1: \"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z\",\n oiiintSize2: \"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z\",\n rightarrow: \"M0 241v40h399891c-47.3 35.3-84 78-110 128\\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n 151.7 139 205zm0 0v40h399900v-40z\",\n rightbrace: \"M400000 542l\\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z\",\n rightbraceunder: \"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z\",\n rightgroup: \"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\\n 3-1 3-3v-38c-76-158-257-219-435-219H0z\",\n rightgroupunder: \"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z\",\n rightharpoon: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\\n 69.2 92 94.5zm0 0v40h399900v-40z\",\n rightharpoonplus: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z\",\n rightharpoondown: \"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z\",\n rightharpoondownplus: \"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\\nm0-194v40h400000v-40zm0 0v40h400000v-40z\",\n righthook: \"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z\",\n rightlinesegment: \"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z\",\n rightToFrom: \"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z\",\n // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular\n twoheadleftarrow: \"M0 167c68 40\\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z\",\n twoheadrightarrow: \"M400000 167\\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z\",\n // tilde1 is a modified version of a glyph from the MnSymbol package\n tilde1: \"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\\n-68.267.847-113-73.952-191-73.952z\",\n // ditto tilde2, tilde3, & tilde4\n tilde2: \"M344 55.266c-142 0-300.638 81.316-311.5 86.418\\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z\",\n tilde3: \"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\\n -338 0-409-156.573-744-156.573z\",\n tilde4: \"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\\n -175.236-744-175.236z\",\n // vec is from glyph U+20D7 in font KaTeX Main\n vec: \"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\\nc-16-25.333-24-45-24-59z\",\n // widehat1 is a modified version of a glyph from the MnSymbol package\n widehat1: \"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z\",\n // ditto widehat2, widehat3, & widehat4\n widehat2: \"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n widehat3: \"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n widehat4: \"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n // widecheck paths are all inverted versions of widehat\n widecheck1: \"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z\",\n widecheck2: \"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n widecheck3: \"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n widecheck4: \"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n // The next ten paths support reaction arrows from the mhchem package.\n // Arrows for \\ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX\n // baraboveleftarrow is mostly from glyph U+2190 in font KaTeX Main\n baraboveleftarrow: \"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z\",\n // rightarrowabovebar is mostly from glyph U+2192, KaTeX Main\n rightarrowabovebar: \"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z\",\n // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end.\n // Ref from mhchem.sty: \\rlap{\\raisebox{-.22ex}{$\\kern0.5em\n baraboveshortleftharpoon: \"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z\",\n rightharpoonaboveshortbar: \"M0,241 l0,40c399126,0,399993,0,399993,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z\",\n shortbaraboveleftharpoon: \"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z\",\n shortrightharpoonabovebar: \"M53,241l0,40c398570,0,399437,0,399437,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z\"\n};\nconst tallDelim = function (label, midHeight) {\n switch (label) {\n case \"lbrack\":\n return \"M403 1759 V84 H666 V0 H319 V1759 v\" + midHeight + \" v1759 h347 v-84\\nH403z M403 1759 V0 H319 V1759 v\" + midHeight + \" v1759 h84z\";\n\n case \"rbrack\":\n return \"M347 1759 V0 H0 V84 H263 V1759 v\" + midHeight + \" v1759 H0 v84 H347z\\nM347 1759 V0 H263 V1759 v\" + midHeight + \" v1759 h84z\";\n\n case \"vert\":\n return \"M145 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v\" + midHeight + \" v585 h43z\";\n\n case \"doublevert\":\n return \"M145 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v\" + midHeight + \" v585 h43z\\nM367 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v\" + midHeight + \" v585 h43z\";\n\n case \"lfloor\":\n return \"M319 602 V0 H403 V602 v\" + midHeight + \" v1715 h263 v84 H319z\\nMM319 602 V0 H403 V602 v\" + midHeight + \" v1715 H319z\";\n\n case \"rfloor\":\n return \"M319 602 V0 H403 V602 v\" + midHeight + \" v1799 H0 v-84 H319z\\nMM319 602 V0 H403 V602 v\" + midHeight + \" v1715 H319z\";\n\n case \"lceil\":\n return \"M403 1759 V84 H666 V0 H319 V1759 v\" + midHeight + \" v602 h84z\\nM403 1759 V0 H319 V1759 v\" + midHeight + \" v602 h84z\";\n\n case \"rceil\":\n return \"M347 1759 V0 H0 V84 H263 V1759 v\" + midHeight + \" v602 h84z\\nM347 1759 V0 h-84 V1759 v\" + midHeight + \" v602 h84z\";\n\n case \"lparen\":\n return \"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\\n-36,557 l0,\" + (midHeight + 84) + \"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\\nl0,-\" + (midHeight + 92) + \"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z\";\n\n case \"rparen\":\n return \"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,\" + (midHeight + 9) + \"\\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\\nl0,-\" + (midHeight + 144) + \"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z\";\n\n default:\n // We should not ever get here.\n throw new Error(\"Unknown stretchy delimiter.\");\n }\n};\n;// CONCATENATED MODULE: ./src/tree.js\n\n\n/**\n * This node represents a document fragment, which contains elements, but when\n * placed into the DOM doesn't have any representation itself. It only contains\n * children and doesn't have any DOM node properties.\n */\nclass DocumentFragment {\n // HtmlDomNode\n // Never used; needed for satisfying interface.\n constructor(children) {\n this.children = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n this.children = children;\n this.classes = [];\n this.height = 0;\n this.depth = 0;\n this.maxFontSize = 0;\n this.style = {};\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n /** Convert the fragment into a node. */\n\n\n toNode() {\n const frag = document.createDocumentFragment();\n\n for (let i = 0; i < this.children.length; i++) {\n frag.appendChild(this.children[i].toNode());\n }\n\n return frag;\n }\n /** Convert the fragment into HTML markup. */\n\n\n toMarkup() {\n let markup = \"\"; // Simply concatenate the markup for the children together.\n\n for (let i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n return markup;\n }\n /**\n * Converts the math node into a string, similar to innerText. Applies to\n * MathDomNode's only.\n */\n\n\n toText() {\n // To avoid this, we would subclass documentFragment separately for\n // MathML, but polyfills for subclassing is expensive per PR 1469.\n // $FlowFixMe: Only works for ChildType = MathDomNode.\n const toText = child => child.toText();\n\n return this.children.map(toText).join(\"\");\n }\n\n}\n;// CONCATENATED MODULE: ./src/fontMetricsData.js\n// This file is GENERATED by buildMetrics.sh. DO NOT MODIFY.\n/* harmony default export */ var fontMetricsData = ({\n \"AMS-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.68889, 0, 0, 0.72222],\n \"66\": [0, 0.68889, 0, 0, 0.66667],\n \"67\": [0, 0.68889, 0, 0, 0.72222],\n \"68\": [0, 0.68889, 0, 0, 0.72222],\n \"69\": [0, 0.68889, 0, 0, 0.66667],\n \"70\": [0, 0.68889, 0, 0, 0.61111],\n \"71\": [0, 0.68889, 0, 0, 0.77778],\n \"72\": [0, 0.68889, 0, 0, 0.77778],\n \"73\": [0, 0.68889, 0, 0, 0.38889],\n \"74\": [0.16667, 0.68889, 0, 0, 0.5],\n \"75\": [0, 0.68889, 0, 0, 0.77778],\n \"76\": [0, 0.68889, 0, 0, 0.66667],\n \"77\": [0, 0.68889, 0, 0, 0.94445],\n \"78\": [0, 0.68889, 0, 0, 0.72222],\n \"79\": [0.16667, 0.68889, 0, 0, 0.77778],\n \"80\": [0, 0.68889, 0, 0, 0.61111],\n \"81\": [0.16667, 0.68889, 0, 0, 0.77778],\n \"82\": [0, 0.68889, 0, 0, 0.72222],\n \"83\": [0, 0.68889, 0, 0, 0.55556],\n \"84\": [0, 0.68889, 0, 0, 0.66667],\n \"85\": [0, 0.68889, 0, 0, 0.72222],\n \"86\": [0, 0.68889, 0, 0, 0.72222],\n \"87\": [0, 0.68889, 0, 0, 1.0],\n \"88\": [0, 0.68889, 0, 0, 0.72222],\n \"89\": [0, 0.68889, 0, 0, 0.72222],\n \"90\": [0, 0.68889, 0, 0, 0.66667],\n \"107\": [0, 0.68889, 0, 0, 0.55556],\n \"160\": [0, 0, 0, 0, 0.25],\n \"165\": [0, 0.675, 0.025, 0, 0.75],\n \"174\": [0.15559, 0.69224, 0, 0, 0.94666],\n \"240\": [0, 0.68889, 0, 0, 0.55556],\n \"295\": [0, 0.68889, 0, 0, 0.54028],\n \"710\": [0, 0.825, 0, 0, 2.33334],\n \"732\": [0, 0.9, 0, 0, 2.33334],\n \"770\": [0, 0.825, 0, 0, 2.33334],\n \"771\": [0, 0.9, 0, 0, 2.33334],\n \"989\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"1008\": [0, 0.43056, 0.04028, 0, 0.66667],\n \"8245\": [0, 0.54986, 0, 0, 0.275],\n \"8463\": [0, 0.68889, 0, 0, 0.54028],\n \"8487\": [0, 0.68889, 0, 0, 0.72222],\n \"8498\": [0, 0.68889, 0, 0, 0.55556],\n \"8502\": [0, 0.68889, 0, 0, 0.66667],\n \"8503\": [0, 0.68889, 0, 0, 0.44445],\n \"8504\": [0, 0.68889, 0, 0, 0.66667],\n \"8513\": [0, 0.68889, 0, 0, 0.63889],\n \"8592\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8594\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8602\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8603\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8606\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8608\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8610\": [0.01354, 0.52239, 0, 0, 1.11111],\n \"8611\": [0.01354, 0.52239, 0, 0, 1.11111],\n \"8619\": [0, 0.54986, 0, 0, 1.0],\n \"8620\": [0, 0.54986, 0, 0, 1.0],\n \"8621\": [-0.13313, 0.37788, 0, 0, 1.38889],\n \"8622\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8624\": [0, 0.69224, 0, 0, 0.5],\n \"8625\": [0, 0.69224, 0, 0, 0.5],\n \"8630\": [0, 0.43056, 0, 0, 1.0],\n \"8631\": [0, 0.43056, 0, 0, 1.0],\n \"8634\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8635\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8638\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8639\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8642\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8643\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8644\": [0.1808, 0.675, 0, 0, 1.0],\n \"8646\": [0.1808, 0.675, 0, 0, 1.0],\n \"8647\": [0.1808, 0.675, 0, 0, 1.0],\n \"8648\": [0.19444, 0.69224, 0, 0, 0.83334],\n \"8649\": [0.1808, 0.675, 0, 0, 1.0],\n \"8650\": [0.19444, 0.69224, 0, 0, 0.83334],\n \"8651\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8652\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8653\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8654\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8655\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8666\": [0.13667, 0.63667, 0, 0, 1.0],\n \"8667\": [0.13667, 0.63667, 0, 0, 1.0],\n \"8669\": [-0.13313, 0.37788, 0, 0, 1.0],\n \"8672\": [-0.064, 0.437, 0, 0, 1.334],\n \"8674\": [-0.064, 0.437, 0, 0, 1.334],\n \"8705\": [0, 0.825, 0, 0, 0.5],\n \"8708\": [0, 0.68889, 0, 0, 0.55556],\n \"8709\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8717\": [0, 0.43056, 0, 0, 0.42917],\n \"8722\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8724\": [0.08198, 0.69224, 0, 0, 0.77778],\n \"8726\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8733\": [0, 0.69224, 0, 0, 0.77778],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8737\": [0, 0.69224, 0, 0, 0.72222],\n \"8738\": [0.03517, 0.52239, 0, 0, 0.72222],\n \"8739\": [0.08167, 0.58167, 0, 0, 0.22222],\n \"8740\": [0.25142, 0.74111, 0, 0, 0.27778],\n \"8741\": [0.08167, 0.58167, 0, 0, 0.38889],\n \"8742\": [0.25142, 0.74111, 0, 0, 0.5],\n \"8756\": [0, 0.69224, 0, 0, 0.66667],\n \"8757\": [0, 0.69224, 0, 0, 0.66667],\n \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8765\": [-0.13313, 0.37788, 0, 0, 0.77778],\n \"8769\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8770\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8774\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n \"8778\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8782\": [0.06062, 0.54986, 0, 0, 0.77778],\n \"8783\": [0.06062, 0.54986, 0, 0, 0.77778],\n \"8785\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8786\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8787\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8790\": [0, 0.69224, 0, 0, 0.77778],\n \"8791\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8796\": [0.08198, 0.91667, 0, 0, 0.77778],\n \"8806\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"8807\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"8808\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"8809\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"8812\": [0.25583, 0.75583, 0, 0, 0.5],\n \"8814\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8815\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8816\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8817\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8818\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8819\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8822\": [0.1808, 0.675, 0, 0, 0.77778],\n \"8823\": [0.1808, 0.675, 0, 0, 0.77778],\n \"8828\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8829\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8830\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8831\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8832\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8833\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8840\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8841\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8842\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8843\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8847\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8848\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8858\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8859\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8861\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8862\": [0, 0.675, 0, 0, 0.77778],\n \"8863\": [0, 0.675, 0, 0, 0.77778],\n \"8864\": [0, 0.675, 0, 0, 0.77778],\n \"8865\": [0, 0.675, 0, 0, 0.77778],\n \"8872\": [0, 0.69224, 0, 0, 0.61111],\n \"8873\": [0, 0.69224, 0, 0, 0.72222],\n \"8874\": [0, 0.69224, 0, 0, 0.88889],\n \"8876\": [0, 0.68889, 0, 0, 0.61111],\n \"8877\": [0, 0.68889, 0, 0, 0.61111],\n \"8878\": [0, 0.68889, 0, 0, 0.72222],\n \"8879\": [0, 0.68889, 0, 0, 0.72222],\n \"8882\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8883\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8884\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8885\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8888\": [0, 0.54986, 0, 0, 1.11111],\n \"8890\": [0.19444, 0.43056, 0, 0, 0.55556],\n \"8891\": [0.19444, 0.69224, 0, 0, 0.61111],\n \"8892\": [0.19444, 0.69224, 0, 0, 0.61111],\n \"8901\": [0, 0.54986, 0, 0, 0.27778],\n \"8903\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8905\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8906\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8907\": [0, 0.69224, 0, 0, 0.77778],\n \"8908\": [0, 0.69224, 0, 0, 0.77778],\n \"8909\": [-0.03598, 0.46402, 0, 0, 0.77778],\n \"8910\": [0, 0.54986, 0, 0, 0.76042],\n \"8911\": [0, 0.54986, 0, 0, 0.76042],\n \"8912\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8913\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8914\": [0, 0.54986, 0, 0, 0.66667],\n \"8915\": [0, 0.54986, 0, 0, 0.66667],\n \"8916\": [0, 0.69224, 0, 0, 0.66667],\n \"8918\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8919\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8920\": [0.03517, 0.54986, 0, 0, 1.33334],\n \"8921\": [0.03517, 0.54986, 0, 0, 1.33334],\n \"8922\": [0.38569, 0.88569, 0, 0, 0.77778],\n \"8923\": [0.38569, 0.88569, 0, 0, 0.77778],\n \"8926\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8927\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8928\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8929\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8934\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8935\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8936\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8937\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8938\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8939\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8940\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8941\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8994\": [0.19444, 0.69224, 0, 0, 0.77778],\n \"8995\": [0.19444, 0.69224, 0, 0, 0.77778],\n \"9416\": [0.15559, 0.69224, 0, 0, 0.90222],\n \"9484\": [0, 0.69224, 0, 0, 0.5],\n \"9488\": [0, 0.69224, 0, 0, 0.5],\n \"9492\": [0, 0.37788, 0, 0, 0.5],\n \"9496\": [0, 0.37788, 0, 0, 0.5],\n \"9585\": [0.19444, 0.68889, 0, 0, 0.88889],\n \"9586\": [0.19444, 0.74111, 0, 0, 0.88889],\n \"9632\": [0, 0.675, 0, 0, 0.77778],\n \"9633\": [0, 0.675, 0, 0, 0.77778],\n \"9650\": [0, 0.54986, 0, 0, 0.72222],\n \"9651\": [0, 0.54986, 0, 0, 0.72222],\n \"9654\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"9660\": [0, 0.54986, 0, 0, 0.72222],\n \"9661\": [0, 0.54986, 0, 0, 0.72222],\n \"9664\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"9674\": [0.11111, 0.69224, 0, 0, 0.66667],\n \"9733\": [0.19444, 0.69224, 0, 0, 0.94445],\n \"10003\": [0, 0.69224, 0, 0, 0.83334],\n \"10016\": [0, 0.69224, 0, 0, 0.83334],\n \"10731\": [0.11111, 0.69224, 0, 0, 0.66667],\n \"10846\": [0.19444, 0.75583, 0, 0, 0.61111],\n \"10877\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10878\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10885\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10886\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10887\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10888\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10889\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10890\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10891\": [0.48256, 0.98256, 0, 0, 0.77778],\n \"10892\": [0.48256, 0.98256, 0, 0, 0.77778],\n \"10901\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10902\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10933\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"10934\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"10935\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10936\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10937\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10938\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10949\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10950\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10955\": [0.28481, 0.79383, 0, 0, 0.77778],\n \"10956\": [0.28481, 0.79383, 0, 0, 0.77778],\n \"57350\": [0.08167, 0.58167, 0, 0, 0.22222],\n \"57351\": [0.08167, 0.58167, 0, 0, 0.38889],\n \"57352\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"57353\": [0, 0.43056, 0.04028, 0, 0.66667],\n \"57356\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57357\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57358\": [0.41951, 0.91951, 0, 0, 0.77778],\n \"57359\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"57360\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"57361\": [0.41951, 0.91951, 0, 0, 0.77778],\n \"57366\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57367\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57368\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57369\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57370\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"57371\": [0.13597, 0.63597, 0, 0, 0.77778]\n },\n \"Caligraphic-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.68333, 0, 0.19445, 0.79847],\n \"66\": [0, 0.68333, 0.03041, 0.13889, 0.65681],\n \"67\": [0, 0.68333, 0.05834, 0.13889, 0.52653],\n \"68\": [0, 0.68333, 0.02778, 0.08334, 0.77139],\n \"69\": [0, 0.68333, 0.08944, 0.11111, 0.52778],\n \"70\": [0, 0.68333, 0.09931, 0.11111, 0.71875],\n \"71\": [0.09722, 0.68333, 0.0593, 0.11111, 0.59487],\n \"72\": [0, 0.68333, 0.00965, 0.11111, 0.84452],\n \"73\": [0, 0.68333, 0.07382, 0, 0.54452],\n \"74\": [0.09722, 0.68333, 0.18472, 0.16667, 0.67778],\n \"75\": [0, 0.68333, 0.01445, 0.05556, 0.76195],\n \"76\": [0, 0.68333, 0, 0.13889, 0.68972],\n \"77\": [0, 0.68333, 0, 0.13889, 1.2009],\n \"78\": [0, 0.68333, 0.14736, 0.08334, 0.82049],\n \"79\": [0, 0.68333, 0.02778, 0.11111, 0.79611],\n \"80\": [0, 0.68333, 0.08222, 0.08334, 0.69556],\n \"81\": [0.09722, 0.68333, 0, 0.11111, 0.81667],\n \"82\": [0, 0.68333, 0, 0.08334, 0.8475],\n \"83\": [0, 0.68333, 0.075, 0.13889, 0.60556],\n \"84\": [0, 0.68333, 0.25417, 0, 0.54464],\n \"85\": [0, 0.68333, 0.09931, 0.08334, 0.62583],\n \"86\": [0, 0.68333, 0.08222, 0, 0.61278],\n \"87\": [0, 0.68333, 0.08222, 0.08334, 0.98778],\n \"88\": [0, 0.68333, 0.14643, 0.13889, 0.7133],\n \"89\": [0.09722, 0.68333, 0.08222, 0.08334, 0.66834],\n \"90\": [0, 0.68333, 0.07944, 0.13889, 0.72473],\n \"160\": [0, 0, 0, 0, 0.25]\n },\n \"Fraktur-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69141, 0, 0, 0.29574],\n \"34\": [0, 0.69141, 0, 0, 0.21471],\n \"38\": [0, 0.69141, 0, 0, 0.73786],\n \"39\": [0, 0.69141, 0, 0, 0.21201],\n \"40\": [0.24982, 0.74947, 0, 0, 0.38865],\n \"41\": [0.24982, 0.74947, 0, 0, 0.38865],\n \"42\": [0, 0.62119, 0, 0, 0.27764],\n \"43\": [0.08319, 0.58283, 0, 0, 0.75623],\n \"44\": [0, 0.10803, 0, 0, 0.27764],\n \"45\": [0.08319, 0.58283, 0, 0, 0.75623],\n \"46\": [0, 0.10803, 0, 0, 0.27764],\n \"47\": [0.24982, 0.74947, 0, 0, 0.50181],\n \"48\": [0, 0.47534, 0, 0, 0.50181],\n \"49\": [0, 0.47534, 0, 0, 0.50181],\n \"50\": [0, 0.47534, 0, 0, 0.50181],\n \"51\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"52\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"53\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"54\": [0, 0.69141, 0, 0, 0.50181],\n \"55\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"56\": [0, 0.69141, 0, 0, 0.50181],\n \"57\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"58\": [0, 0.47534, 0, 0, 0.21606],\n \"59\": [0.12604, 0.47534, 0, 0, 0.21606],\n \"61\": [-0.13099, 0.36866, 0, 0, 0.75623],\n \"63\": [0, 0.69141, 0, 0, 0.36245],\n \"65\": [0, 0.69141, 0, 0, 0.7176],\n \"66\": [0, 0.69141, 0, 0, 0.88397],\n \"67\": [0, 0.69141, 0, 0, 0.61254],\n \"68\": [0, 0.69141, 0, 0, 0.83158],\n \"69\": [0, 0.69141, 0, 0, 0.66278],\n \"70\": [0.12604, 0.69141, 0, 0, 0.61119],\n \"71\": [0, 0.69141, 0, 0, 0.78539],\n \"72\": [0.06302, 0.69141, 0, 0, 0.7203],\n \"73\": [0, 0.69141, 0, 0, 0.55448],\n \"74\": [0.12604, 0.69141, 0, 0, 0.55231],\n \"75\": [0, 0.69141, 0, 0, 0.66845],\n \"76\": [0, 0.69141, 0, 0, 0.66602],\n \"77\": [0, 0.69141, 0, 0, 1.04953],\n \"78\": [0, 0.69141, 0, 0, 0.83212],\n \"79\": [0, 0.69141, 0, 0, 0.82699],\n \"80\": [0.18906, 0.69141, 0, 0, 0.82753],\n \"81\": [0.03781, 0.69141, 0, 0, 0.82699],\n \"82\": [0, 0.69141, 0, 0, 0.82807],\n \"83\": [0, 0.69141, 0, 0, 0.82861],\n \"84\": [0, 0.69141, 0, 0, 0.66899],\n \"85\": [0, 0.69141, 0, 0, 0.64576],\n \"86\": [0, 0.69141, 0, 0, 0.83131],\n \"87\": [0, 0.69141, 0, 0, 1.04602],\n \"88\": [0, 0.69141, 0, 0, 0.71922],\n \"89\": [0.18906, 0.69141, 0, 0, 0.83293],\n \"90\": [0.12604, 0.69141, 0, 0, 0.60201],\n \"91\": [0.24982, 0.74947, 0, 0, 0.27764],\n \"93\": [0.24982, 0.74947, 0, 0, 0.27764],\n \"94\": [0, 0.69141, 0, 0, 0.49965],\n \"97\": [0, 0.47534, 0, 0, 0.50046],\n \"98\": [0, 0.69141, 0, 0, 0.51315],\n \"99\": [0, 0.47534, 0, 0, 0.38946],\n \"100\": [0, 0.62119, 0, 0, 0.49857],\n \"101\": [0, 0.47534, 0, 0, 0.40053],\n \"102\": [0.18906, 0.69141, 0, 0, 0.32626],\n \"103\": [0.18906, 0.47534, 0, 0, 0.5037],\n \"104\": [0.18906, 0.69141, 0, 0, 0.52126],\n \"105\": [0, 0.69141, 0, 0, 0.27899],\n \"106\": [0, 0.69141, 0, 0, 0.28088],\n \"107\": [0, 0.69141, 0, 0, 0.38946],\n \"108\": [0, 0.69141, 0, 0, 0.27953],\n \"109\": [0, 0.47534, 0, 0, 0.76676],\n \"110\": [0, 0.47534, 0, 0, 0.52666],\n \"111\": [0, 0.47534, 0, 0, 0.48885],\n \"112\": [0.18906, 0.52396, 0, 0, 0.50046],\n \"113\": [0.18906, 0.47534, 0, 0, 0.48912],\n \"114\": [0, 0.47534, 0, 0, 0.38919],\n \"115\": [0, 0.47534, 0, 0, 0.44266],\n \"116\": [0, 0.62119, 0, 0, 0.33301],\n \"117\": [0, 0.47534, 0, 0, 0.5172],\n \"118\": [0, 0.52396, 0, 0, 0.5118],\n \"119\": [0, 0.52396, 0, 0, 0.77351],\n \"120\": [0.18906, 0.47534, 0, 0, 0.38865],\n \"121\": [0.18906, 0.47534, 0, 0, 0.49884],\n \"122\": [0.18906, 0.47534, 0, 0, 0.39054],\n \"160\": [0, 0, 0, 0, 0.25],\n \"8216\": [0, 0.69141, 0, 0, 0.21471],\n \"8217\": [0, 0.69141, 0, 0, 0.21471],\n \"58112\": [0, 0.62119, 0, 0, 0.49749],\n \"58113\": [0, 0.62119, 0, 0, 0.4983],\n \"58114\": [0.18906, 0.69141, 0, 0, 0.33328],\n \"58115\": [0.18906, 0.69141, 0, 0, 0.32923],\n \"58116\": [0.18906, 0.47534, 0, 0, 0.50343],\n \"58117\": [0, 0.69141, 0, 0, 0.33301],\n \"58118\": [0, 0.62119, 0, 0, 0.33409],\n \"58119\": [0, 0.47534, 0, 0, 0.50073]\n },\n \"Main-Bold\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.35],\n \"34\": [0, 0.69444, 0, 0, 0.60278],\n \"35\": [0.19444, 0.69444, 0, 0, 0.95833],\n \"36\": [0.05556, 0.75, 0, 0, 0.575],\n \"37\": [0.05556, 0.75, 0, 0, 0.95833],\n \"38\": [0, 0.69444, 0, 0, 0.89444],\n \"39\": [0, 0.69444, 0, 0, 0.31944],\n \"40\": [0.25, 0.75, 0, 0, 0.44722],\n \"41\": [0.25, 0.75, 0, 0, 0.44722],\n \"42\": [0, 0.75, 0, 0, 0.575],\n \"43\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"44\": [0.19444, 0.15556, 0, 0, 0.31944],\n \"45\": [0, 0.44444, 0, 0, 0.38333],\n \"46\": [0, 0.15556, 0, 0, 0.31944],\n \"47\": [0.25, 0.75, 0, 0, 0.575],\n \"48\": [0, 0.64444, 0, 0, 0.575],\n \"49\": [0, 0.64444, 0, 0, 0.575],\n \"50\": [0, 0.64444, 0, 0, 0.575],\n \"51\": [0, 0.64444, 0, 0, 0.575],\n \"52\": [0, 0.64444, 0, 0, 0.575],\n \"53\": [0, 0.64444, 0, 0, 0.575],\n \"54\": [0, 0.64444, 0, 0, 0.575],\n \"55\": [0, 0.64444, 0, 0, 0.575],\n \"56\": [0, 0.64444, 0, 0, 0.575],\n \"57\": [0, 0.64444, 0, 0, 0.575],\n \"58\": [0, 0.44444, 0, 0, 0.31944],\n \"59\": [0.19444, 0.44444, 0, 0, 0.31944],\n \"60\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"61\": [-0.10889, 0.39111, 0, 0, 0.89444],\n \"62\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"63\": [0, 0.69444, 0, 0, 0.54305],\n \"64\": [0, 0.69444, 0, 0, 0.89444],\n \"65\": [0, 0.68611, 0, 0, 0.86944],\n \"66\": [0, 0.68611, 0, 0, 0.81805],\n \"67\": [0, 0.68611, 0, 0, 0.83055],\n \"68\": [0, 0.68611, 0, 0, 0.88194],\n \"69\": [0, 0.68611, 0, 0, 0.75555],\n \"70\": [0, 0.68611, 0, 0, 0.72361],\n \"71\": [0, 0.68611, 0, 0, 0.90416],\n \"72\": [0, 0.68611, 0, 0, 0.9],\n \"73\": [0, 0.68611, 0, 0, 0.43611],\n \"74\": [0, 0.68611, 0, 0, 0.59444],\n \"75\": [0, 0.68611, 0, 0, 0.90138],\n \"76\": [0, 0.68611, 0, 0, 0.69166],\n \"77\": [0, 0.68611, 0, 0, 1.09166],\n \"78\": [0, 0.68611, 0, 0, 0.9],\n \"79\": [0, 0.68611, 0, 0, 0.86388],\n \"80\": [0, 0.68611, 0, 0, 0.78611],\n \"81\": [0.19444, 0.68611, 0, 0, 0.86388],\n \"82\": [0, 0.68611, 0, 0, 0.8625],\n \"83\": [0, 0.68611, 0, 0, 0.63889],\n \"84\": [0, 0.68611, 0, 0, 0.8],\n \"85\": [0, 0.68611, 0, 0, 0.88472],\n \"86\": [0, 0.68611, 0.01597, 0, 0.86944],\n \"87\": [0, 0.68611, 0.01597, 0, 1.18888],\n \"88\": [0, 0.68611, 0, 0, 0.86944],\n \"89\": [0, 0.68611, 0.02875, 0, 0.86944],\n \"90\": [0, 0.68611, 0, 0, 0.70277],\n \"91\": [0.25, 0.75, 0, 0, 0.31944],\n \"92\": [0.25, 0.75, 0, 0, 0.575],\n \"93\": [0.25, 0.75, 0, 0, 0.31944],\n \"94\": [0, 0.69444, 0, 0, 0.575],\n \"95\": [0.31, 0.13444, 0.03194, 0, 0.575],\n \"97\": [0, 0.44444, 0, 0, 0.55902],\n \"98\": [0, 0.69444, 0, 0, 0.63889],\n \"99\": [0, 0.44444, 0, 0, 0.51111],\n \"100\": [0, 0.69444, 0, 0, 0.63889],\n \"101\": [0, 0.44444, 0, 0, 0.52708],\n \"102\": [0, 0.69444, 0.10903, 0, 0.35139],\n \"103\": [0.19444, 0.44444, 0.01597, 0, 0.575],\n \"104\": [0, 0.69444, 0, 0, 0.63889],\n \"105\": [0, 0.69444, 0, 0, 0.31944],\n \"106\": [0.19444, 0.69444, 0, 0, 0.35139],\n \"107\": [0, 0.69444, 0, 0, 0.60694],\n \"108\": [0, 0.69444, 0, 0, 0.31944],\n \"109\": [0, 0.44444, 0, 0, 0.95833],\n \"110\": [0, 0.44444, 0, 0, 0.63889],\n \"111\": [0, 0.44444, 0, 0, 0.575],\n \"112\": [0.19444, 0.44444, 0, 0, 0.63889],\n \"113\": [0.19444, 0.44444, 0, 0, 0.60694],\n \"114\": [0, 0.44444, 0, 0, 0.47361],\n \"115\": [0, 0.44444, 0, 0, 0.45361],\n \"116\": [0, 0.63492, 0, 0, 0.44722],\n \"117\": [0, 0.44444, 0, 0, 0.63889],\n \"118\": [0, 0.44444, 0.01597, 0, 0.60694],\n \"119\": [0, 0.44444, 0.01597, 0, 0.83055],\n \"120\": [0, 0.44444, 0, 0, 0.60694],\n \"121\": [0.19444, 0.44444, 0.01597, 0, 0.60694],\n \"122\": [0, 0.44444, 0, 0, 0.51111],\n \"123\": [0.25, 0.75, 0, 0, 0.575],\n \"124\": [0.25, 0.75, 0, 0, 0.31944],\n \"125\": [0.25, 0.75, 0, 0, 0.575],\n \"126\": [0.35, 0.34444, 0, 0, 0.575],\n \"160\": [0, 0, 0, 0, 0.25],\n \"163\": [0, 0.69444, 0, 0, 0.86853],\n \"168\": [0, 0.69444, 0, 0, 0.575],\n \"172\": [0, 0.44444, 0, 0, 0.76666],\n \"176\": [0, 0.69444, 0, 0, 0.86944],\n \"177\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"184\": [0.17014, 0, 0, 0, 0.51111],\n \"198\": [0, 0.68611, 0, 0, 1.04166],\n \"215\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"216\": [0.04861, 0.73472, 0, 0, 0.89444],\n \"223\": [0, 0.69444, 0, 0, 0.59722],\n \"230\": [0, 0.44444, 0, 0, 0.83055],\n \"247\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"248\": [0.09722, 0.54167, 0, 0, 0.575],\n \"305\": [0, 0.44444, 0, 0, 0.31944],\n \"338\": [0, 0.68611, 0, 0, 1.16944],\n \"339\": [0, 0.44444, 0, 0, 0.89444],\n \"567\": [0.19444, 0.44444, 0, 0, 0.35139],\n \"710\": [0, 0.69444, 0, 0, 0.575],\n \"711\": [0, 0.63194, 0, 0, 0.575],\n \"713\": [0, 0.59611, 0, 0, 0.575],\n \"714\": [0, 0.69444, 0, 0, 0.575],\n \"715\": [0, 0.69444, 0, 0, 0.575],\n \"728\": [0, 0.69444, 0, 0, 0.575],\n \"729\": [0, 0.69444, 0, 0, 0.31944],\n \"730\": [0, 0.69444, 0, 0, 0.86944],\n \"732\": [0, 0.69444, 0, 0, 0.575],\n \"733\": [0, 0.69444, 0, 0, 0.575],\n \"915\": [0, 0.68611, 0, 0, 0.69166],\n \"916\": [0, 0.68611, 0, 0, 0.95833],\n \"920\": [0, 0.68611, 0, 0, 0.89444],\n \"923\": [0, 0.68611, 0, 0, 0.80555],\n \"926\": [0, 0.68611, 0, 0, 0.76666],\n \"928\": [0, 0.68611, 0, 0, 0.9],\n \"931\": [0, 0.68611, 0, 0, 0.83055],\n \"933\": [0, 0.68611, 0, 0, 0.89444],\n \"934\": [0, 0.68611, 0, 0, 0.83055],\n \"936\": [0, 0.68611, 0, 0, 0.89444],\n \"937\": [0, 0.68611, 0, 0, 0.83055],\n \"8211\": [0, 0.44444, 0.03194, 0, 0.575],\n \"8212\": [0, 0.44444, 0.03194, 0, 1.14999],\n \"8216\": [0, 0.69444, 0, 0, 0.31944],\n \"8217\": [0, 0.69444, 0, 0, 0.31944],\n \"8220\": [0, 0.69444, 0, 0, 0.60278],\n \"8221\": [0, 0.69444, 0, 0, 0.60278],\n \"8224\": [0.19444, 0.69444, 0, 0, 0.51111],\n \"8225\": [0.19444, 0.69444, 0, 0, 0.51111],\n \"8242\": [0, 0.55556, 0, 0, 0.34444],\n \"8407\": [0, 0.72444, 0.15486, 0, 0.575],\n \"8463\": [0, 0.69444, 0, 0, 0.66759],\n \"8465\": [0, 0.69444, 0, 0, 0.83055],\n \"8467\": [0, 0.69444, 0, 0, 0.47361],\n \"8472\": [0.19444, 0.44444, 0, 0, 0.74027],\n \"8476\": [0, 0.69444, 0, 0, 0.83055],\n \"8501\": [0, 0.69444, 0, 0, 0.70277],\n \"8592\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8593\": [0.19444, 0.69444, 0, 0, 0.575],\n \"8594\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8595\": [0.19444, 0.69444, 0, 0, 0.575],\n \"8596\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8597\": [0.25, 0.75, 0, 0, 0.575],\n \"8598\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8599\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8600\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8601\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8636\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8637\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8640\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8641\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8656\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8657\": [0.19444, 0.69444, 0, 0, 0.70277],\n \"8658\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8659\": [0.19444, 0.69444, 0, 0, 0.70277],\n \"8660\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8661\": [0.25, 0.75, 0, 0, 0.70277],\n \"8704\": [0, 0.69444, 0, 0, 0.63889],\n \"8706\": [0, 0.69444, 0.06389, 0, 0.62847],\n \"8707\": [0, 0.69444, 0, 0, 0.63889],\n \"8709\": [0.05556, 0.75, 0, 0, 0.575],\n \"8711\": [0, 0.68611, 0, 0, 0.95833],\n \"8712\": [0.08556, 0.58556, 0, 0, 0.76666],\n \"8715\": [0.08556, 0.58556, 0, 0, 0.76666],\n \"8722\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8723\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8725\": [0.25, 0.75, 0, 0, 0.575],\n \"8726\": [0.25, 0.75, 0, 0, 0.575],\n \"8727\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"8728\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8729\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8730\": [0.18, 0.82, 0, 0, 0.95833],\n \"8733\": [0, 0.44444, 0, 0, 0.89444],\n \"8734\": [0, 0.44444, 0, 0, 1.14999],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8739\": [0.25, 0.75, 0, 0, 0.31944],\n \"8741\": [0.25, 0.75, 0, 0, 0.575],\n \"8743\": [0, 0.55556, 0, 0, 0.76666],\n \"8744\": [0, 0.55556, 0, 0, 0.76666],\n \"8745\": [0, 0.55556, 0, 0, 0.76666],\n \"8746\": [0, 0.55556, 0, 0, 0.76666],\n \"8747\": [0.19444, 0.69444, 0.12778, 0, 0.56875],\n \"8764\": [-0.10889, 0.39111, 0, 0, 0.89444],\n \"8768\": [0.19444, 0.69444, 0, 0, 0.31944],\n \"8771\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8773\": [0.027, 0.638, 0, 0, 0.894],\n \"8776\": [0.02444, 0.52444, 0, 0, 0.89444],\n \"8781\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8801\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8804\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8805\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8810\": [0.08556, 0.58556, 0, 0, 1.14999],\n \"8811\": [0.08556, 0.58556, 0, 0, 1.14999],\n \"8826\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8827\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8834\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8835\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8838\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8839\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8846\": [0, 0.55556, 0, 0, 0.76666],\n \"8849\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8850\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8851\": [0, 0.55556, 0, 0, 0.76666],\n \"8852\": [0, 0.55556, 0, 0, 0.76666],\n \"8853\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8854\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8855\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8856\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8857\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8866\": [0, 0.69444, 0, 0, 0.70277],\n \"8867\": [0, 0.69444, 0, 0, 0.70277],\n \"8868\": [0, 0.69444, 0, 0, 0.89444],\n \"8869\": [0, 0.69444, 0, 0, 0.89444],\n \"8900\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8901\": [-0.02639, 0.47361, 0, 0, 0.31944],\n \"8902\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"8968\": [0.25, 0.75, 0, 0, 0.51111],\n \"8969\": [0.25, 0.75, 0, 0, 0.51111],\n \"8970\": [0.25, 0.75, 0, 0, 0.51111],\n \"8971\": [0.25, 0.75, 0, 0, 0.51111],\n \"8994\": [-0.13889, 0.36111, 0, 0, 1.14999],\n \"8995\": [-0.13889, 0.36111, 0, 0, 1.14999],\n \"9651\": [0.19444, 0.69444, 0, 0, 1.02222],\n \"9657\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"9661\": [0.19444, 0.69444, 0, 0, 1.02222],\n \"9667\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"9711\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"9824\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9825\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9826\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9827\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9837\": [0, 0.75, 0, 0, 0.44722],\n \"9838\": [0.19444, 0.69444, 0, 0, 0.44722],\n \"9839\": [0.19444, 0.69444, 0, 0, 0.44722],\n \"10216\": [0.25, 0.75, 0, 0, 0.44722],\n \"10217\": [0.25, 0.75, 0, 0, 0.44722],\n \"10815\": [0, 0.68611, 0, 0, 0.9],\n \"10927\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"10928\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"57376\": [0.19444, 0.69444, 0, 0, 0]\n },\n \"Main-BoldItalic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.11417, 0, 0.38611],\n \"34\": [0, 0.69444, 0.07939, 0, 0.62055],\n \"35\": [0.19444, 0.69444, 0.06833, 0, 0.94444],\n \"37\": [0.05556, 0.75, 0.12861, 0, 0.94444],\n \"38\": [0, 0.69444, 0.08528, 0, 0.88555],\n \"39\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"40\": [0.25, 0.75, 0.15806, 0, 0.47333],\n \"41\": [0.25, 0.75, 0.03306, 0, 0.47333],\n \"42\": [0, 0.75, 0.14333, 0, 0.59111],\n \"43\": [0.10333, 0.60333, 0.03306, 0, 0.88555],\n \"44\": [0.19444, 0.14722, 0, 0, 0.35555],\n \"45\": [0, 0.44444, 0.02611, 0, 0.41444],\n \"46\": [0, 0.14722, 0, 0, 0.35555],\n \"47\": [0.25, 0.75, 0.15806, 0, 0.59111],\n \"48\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"49\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"50\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"51\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"52\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n \"53\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"54\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"55\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n \"56\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"57\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"58\": [0, 0.44444, 0.06695, 0, 0.35555],\n \"59\": [0.19444, 0.44444, 0.06695, 0, 0.35555],\n \"61\": [-0.10889, 0.39111, 0.06833, 0, 0.88555],\n \"63\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"64\": [0, 0.69444, 0.09208, 0, 0.88555],\n \"65\": [0, 0.68611, 0, 0, 0.86555],\n \"66\": [0, 0.68611, 0.0992, 0, 0.81666],\n \"67\": [0, 0.68611, 0.14208, 0, 0.82666],\n \"68\": [0, 0.68611, 0.09062, 0, 0.87555],\n \"69\": [0, 0.68611, 0.11431, 0, 0.75666],\n \"70\": [0, 0.68611, 0.12903, 0, 0.72722],\n \"71\": [0, 0.68611, 0.07347, 0, 0.89527],\n \"72\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"73\": [0, 0.68611, 0.15681, 0, 0.47166],\n \"74\": [0, 0.68611, 0.145, 0, 0.61055],\n \"75\": [0, 0.68611, 0.14208, 0, 0.89499],\n \"76\": [0, 0.68611, 0, 0, 0.69777],\n \"77\": [0, 0.68611, 0.17208, 0, 1.07277],\n \"78\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"79\": [0, 0.68611, 0.09062, 0, 0.85499],\n \"80\": [0, 0.68611, 0.0992, 0, 0.78721],\n \"81\": [0.19444, 0.68611, 0.09062, 0, 0.85499],\n \"82\": [0, 0.68611, 0.02559, 0, 0.85944],\n \"83\": [0, 0.68611, 0.11264, 0, 0.64999],\n \"84\": [0, 0.68611, 0.12903, 0, 0.7961],\n \"85\": [0, 0.68611, 0.17208, 0, 0.88083],\n \"86\": [0, 0.68611, 0.18625, 0, 0.86555],\n \"87\": [0, 0.68611, 0.18625, 0, 1.15999],\n \"88\": [0, 0.68611, 0.15681, 0, 0.86555],\n \"89\": [0, 0.68611, 0.19803, 0, 0.86555],\n \"90\": [0, 0.68611, 0.14208, 0, 0.70888],\n \"91\": [0.25, 0.75, 0.1875, 0, 0.35611],\n \"93\": [0.25, 0.75, 0.09972, 0, 0.35611],\n \"94\": [0, 0.69444, 0.06709, 0, 0.59111],\n \"95\": [0.31, 0.13444, 0.09811, 0, 0.59111],\n \"97\": [0, 0.44444, 0.09426, 0, 0.59111],\n \"98\": [0, 0.69444, 0.07861, 0, 0.53222],\n \"99\": [0, 0.44444, 0.05222, 0, 0.53222],\n \"100\": [0, 0.69444, 0.10861, 0, 0.59111],\n \"101\": [0, 0.44444, 0.085, 0, 0.53222],\n \"102\": [0.19444, 0.69444, 0.21778, 0, 0.4],\n \"103\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n \"104\": [0, 0.69444, 0.09426, 0, 0.59111],\n \"105\": [0, 0.69326, 0.11387, 0, 0.35555],\n \"106\": [0.19444, 0.69326, 0.1672, 0, 0.35555],\n \"107\": [0, 0.69444, 0.11111, 0, 0.53222],\n \"108\": [0, 0.69444, 0.10861, 0, 0.29666],\n \"109\": [0, 0.44444, 0.09426, 0, 0.94444],\n \"110\": [0, 0.44444, 0.09426, 0, 0.64999],\n \"111\": [0, 0.44444, 0.07861, 0, 0.59111],\n \"112\": [0.19444, 0.44444, 0.07861, 0, 0.59111],\n \"113\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n \"114\": [0, 0.44444, 0.11111, 0, 0.50167],\n \"115\": [0, 0.44444, 0.08167, 0, 0.48694],\n \"116\": [0, 0.63492, 0.09639, 0, 0.385],\n \"117\": [0, 0.44444, 0.09426, 0, 0.62055],\n \"118\": [0, 0.44444, 0.11111, 0, 0.53222],\n \"119\": [0, 0.44444, 0.11111, 0, 0.76777],\n \"120\": [0, 0.44444, 0.12583, 0, 0.56055],\n \"121\": [0.19444, 0.44444, 0.105, 0, 0.56166],\n \"122\": [0, 0.44444, 0.13889, 0, 0.49055],\n \"126\": [0.35, 0.34444, 0.11472, 0, 0.59111],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.69444, 0.11473, 0, 0.59111],\n \"176\": [0, 0.69444, 0, 0, 0.94888],\n \"184\": [0.17014, 0, 0, 0, 0.53222],\n \"198\": [0, 0.68611, 0.11431, 0, 1.02277],\n \"216\": [0.04861, 0.73472, 0.09062, 0, 0.88555],\n \"223\": [0.19444, 0.69444, 0.09736, 0, 0.665],\n \"230\": [0, 0.44444, 0.085, 0, 0.82666],\n \"248\": [0.09722, 0.54167, 0.09458, 0, 0.59111],\n \"305\": [0, 0.44444, 0.09426, 0, 0.35555],\n \"338\": [0, 0.68611, 0.11431, 0, 1.14054],\n \"339\": [0, 0.44444, 0.085, 0, 0.82666],\n \"567\": [0.19444, 0.44444, 0.04611, 0, 0.385],\n \"710\": [0, 0.69444, 0.06709, 0, 0.59111],\n \"711\": [0, 0.63194, 0.08271, 0, 0.59111],\n \"713\": [0, 0.59444, 0.10444, 0, 0.59111],\n \"714\": [0, 0.69444, 0.08528, 0, 0.59111],\n \"715\": [0, 0.69444, 0, 0, 0.59111],\n \"728\": [0, 0.69444, 0.10333, 0, 0.59111],\n \"729\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"730\": [0, 0.69444, 0, 0, 0.94888],\n \"732\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"733\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"915\": [0, 0.68611, 0.12903, 0, 0.69777],\n \"916\": [0, 0.68611, 0, 0, 0.94444],\n \"920\": [0, 0.68611, 0.09062, 0, 0.88555],\n \"923\": [0, 0.68611, 0, 0, 0.80666],\n \"926\": [0, 0.68611, 0.15092, 0, 0.76777],\n \"928\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"931\": [0, 0.68611, 0.11431, 0, 0.82666],\n \"933\": [0, 0.68611, 0.10778, 0, 0.88555],\n \"934\": [0, 0.68611, 0.05632, 0, 0.82666],\n \"936\": [0, 0.68611, 0.10778, 0, 0.88555],\n \"937\": [0, 0.68611, 0.0992, 0, 0.82666],\n \"8211\": [0, 0.44444, 0.09811, 0, 0.59111],\n \"8212\": [0, 0.44444, 0.09811, 0, 1.18221],\n \"8216\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"8217\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"8220\": [0, 0.69444, 0.16772, 0, 0.62055],\n \"8221\": [0, 0.69444, 0.07939, 0, 0.62055]\n },\n \"Main-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"34\": [0, 0.69444, 0.06961, 0, 0.51444],\n \"35\": [0.19444, 0.69444, 0.06616, 0, 0.81777],\n \"37\": [0.05556, 0.75, 0.13639, 0, 0.81777],\n \"38\": [0, 0.69444, 0.09694, 0, 0.76666],\n \"39\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"40\": [0.25, 0.75, 0.16194, 0, 0.40889],\n \"41\": [0.25, 0.75, 0.03694, 0, 0.40889],\n \"42\": [0, 0.75, 0.14917, 0, 0.51111],\n \"43\": [0.05667, 0.56167, 0.03694, 0, 0.76666],\n \"44\": [0.19444, 0.10556, 0, 0, 0.30667],\n \"45\": [0, 0.43056, 0.02826, 0, 0.35778],\n \"46\": [0, 0.10556, 0, 0, 0.30667],\n \"47\": [0.25, 0.75, 0.16194, 0, 0.51111],\n \"48\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"49\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"50\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"51\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"52\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n \"53\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"54\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"55\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n \"56\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"57\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"58\": [0, 0.43056, 0.0582, 0, 0.30667],\n \"59\": [0.19444, 0.43056, 0.0582, 0, 0.30667],\n \"61\": [-0.13313, 0.36687, 0.06616, 0, 0.76666],\n \"63\": [0, 0.69444, 0.1225, 0, 0.51111],\n \"64\": [0, 0.69444, 0.09597, 0, 0.76666],\n \"65\": [0, 0.68333, 0, 0, 0.74333],\n \"66\": [0, 0.68333, 0.10257, 0, 0.70389],\n \"67\": [0, 0.68333, 0.14528, 0, 0.71555],\n \"68\": [0, 0.68333, 0.09403, 0, 0.755],\n \"69\": [0, 0.68333, 0.12028, 0, 0.67833],\n \"70\": [0, 0.68333, 0.13305, 0, 0.65277],\n \"71\": [0, 0.68333, 0.08722, 0, 0.77361],\n \"72\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"73\": [0, 0.68333, 0.15806, 0, 0.38555],\n \"74\": [0, 0.68333, 0.14028, 0, 0.525],\n \"75\": [0, 0.68333, 0.14528, 0, 0.76888],\n \"76\": [0, 0.68333, 0, 0, 0.62722],\n \"77\": [0, 0.68333, 0.16389, 0, 0.89666],\n \"78\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"79\": [0, 0.68333, 0.09403, 0, 0.76666],\n \"80\": [0, 0.68333, 0.10257, 0, 0.67833],\n \"81\": [0.19444, 0.68333, 0.09403, 0, 0.76666],\n \"82\": [0, 0.68333, 0.03868, 0, 0.72944],\n \"83\": [0, 0.68333, 0.11972, 0, 0.56222],\n \"84\": [0, 0.68333, 0.13305, 0, 0.71555],\n \"85\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"86\": [0, 0.68333, 0.18361, 0, 0.74333],\n \"87\": [0, 0.68333, 0.18361, 0, 0.99888],\n \"88\": [0, 0.68333, 0.15806, 0, 0.74333],\n \"89\": [0, 0.68333, 0.19383, 0, 0.74333],\n \"90\": [0, 0.68333, 0.14528, 0, 0.61333],\n \"91\": [0.25, 0.75, 0.1875, 0, 0.30667],\n \"93\": [0.25, 0.75, 0.10528, 0, 0.30667],\n \"94\": [0, 0.69444, 0.06646, 0, 0.51111],\n \"95\": [0.31, 0.12056, 0.09208, 0, 0.51111],\n \"97\": [0, 0.43056, 0.07671, 0, 0.51111],\n \"98\": [0, 0.69444, 0.06312, 0, 0.46],\n \"99\": [0, 0.43056, 0.05653, 0, 0.46],\n \"100\": [0, 0.69444, 0.10333, 0, 0.51111],\n \"101\": [0, 0.43056, 0.07514, 0, 0.46],\n \"102\": [0.19444, 0.69444, 0.21194, 0, 0.30667],\n \"103\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n \"104\": [0, 0.69444, 0.07671, 0, 0.51111],\n \"105\": [0, 0.65536, 0.1019, 0, 0.30667],\n \"106\": [0.19444, 0.65536, 0.14467, 0, 0.30667],\n \"107\": [0, 0.69444, 0.10764, 0, 0.46],\n \"108\": [0, 0.69444, 0.10333, 0, 0.25555],\n \"109\": [0, 0.43056, 0.07671, 0, 0.81777],\n \"110\": [0, 0.43056, 0.07671, 0, 0.56222],\n \"111\": [0, 0.43056, 0.06312, 0, 0.51111],\n \"112\": [0.19444, 0.43056, 0.06312, 0, 0.51111],\n \"113\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n \"114\": [0, 0.43056, 0.10764, 0, 0.42166],\n \"115\": [0, 0.43056, 0.08208, 0, 0.40889],\n \"116\": [0, 0.61508, 0.09486, 0, 0.33222],\n \"117\": [0, 0.43056, 0.07671, 0, 0.53666],\n \"118\": [0, 0.43056, 0.10764, 0, 0.46],\n \"119\": [0, 0.43056, 0.10764, 0, 0.66444],\n \"120\": [0, 0.43056, 0.12042, 0, 0.46389],\n \"121\": [0.19444, 0.43056, 0.08847, 0, 0.48555],\n \"122\": [0, 0.43056, 0.12292, 0, 0.40889],\n \"126\": [0.35, 0.31786, 0.11585, 0, 0.51111],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.66786, 0.10474, 0, 0.51111],\n \"176\": [0, 0.69444, 0, 0, 0.83129],\n \"184\": [0.17014, 0, 0, 0, 0.46],\n \"198\": [0, 0.68333, 0.12028, 0, 0.88277],\n \"216\": [0.04861, 0.73194, 0.09403, 0, 0.76666],\n \"223\": [0.19444, 0.69444, 0.10514, 0, 0.53666],\n \"230\": [0, 0.43056, 0.07514, 0, 0.71555],\n \"248\": [0.09722, 0.52778, 0.09194, 0, 0.51111],\n \"338\": [0, 0.68333, 0.12028, 0, 0.98499],\n \"339\": [0, 0.43056, 0.07514, 0, 0.71555],\n \"710\": [0, 0.69444, 0.06646, 0, 0.51111],\n \"711\": [0, 0.62847, 0.08295, 0, 0.51111],\n \"713\": [0, 0.56167, 0.10333, 0, 0.51111],\n \"714\": [0, 0.69444, 0.09694, 0, 0.51111],\n \"715\": [0, 0.69444, 0, 0, 0.51111],\n \"728\": [0, 0.69444, 0.10806, 0, 0.51111],\n \"729\": [0, 0.66786, 0.11752, 0, 0.30667],\n \"730\": [0, 0.69444, 0, 0, 0.83129],\n \"732\": [0, 0.66786, 0.11585, 0, 0.51111],\n \"733\": [0, 0.69444, 0.1225, 0, 0.51111],\n \"915\": [0, 0.68333, 0.13305, 0, 0.62722],\n \"916\": [0, 0.68333, 0, 0, 0.81777],\n \"920\": [0, 0.68333, 0.09403, 0, 0.76666],\n \"923\": [0, 0.68333, 0, 0, 0.69222],\n \"926\": [0, 0.68333, 0.15294, 0, 0.66444],\n \"928\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"931\": [0, 0.68333, 0.12028, 0, 0.71555],\n \"933\": [0, 0.68333, 0.11111, 0, 0.76666],\n \"934\": [0, 0.68333, 0.05986, 0, 0.71555],\n \"936\": [0, 0.68333, 0.11111, 0, 0.76666],\n \"937\": [0, 0.68333, 0.10257, 0, 0.71555],\n \"8211\": [0, 0.43056, 0.09208, 0, 0.51111],\n \"8212\": [0, 0.43056, 0.09208, 0, 1.02222],\n \"8216\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"8217\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"8220\": [0, 0.69444, 0.1685, 0, 0.51444],\n \"8221\": [0, 0.69444, 0.06961, 0, 0.51444],\n \"8463\": [0, 0.68889, 0, 0, 0.54028]\n },\n \"Main-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.27778],\n \"34\": [0, 0.69444, 0, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0, 0, 0.5],\n \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n \"38\": [0, 0.69444, 0, 0, 0.77778],\n \"39\": [0, 0.69444, 0, 0, 0.27778],\n \"40\": [0.25, 0.75, 0, 0, 0.38889],\n \"41\": [0.25, 0.75, 0, 0, 0.38889],\n \"42\": [0, 0.75, 0, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"44\": [0.19444, 0.10556, 0, 0, 0.27778],\n \"45\": [0, 0.43056, 0, 0, 0.33333],\n \"46\": [0, 0.10556, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0, 0, 0.5],\n \"48\": [0, 0.64444, 0, 0, 0.5],\n \"49\": [0, 0.64444, 0, 0, 0.5],\n \"50\": [0, 0.64444, 0, 0, 0.5],\n \"51\": [0, 0.64444, 0, 0, 0.5],\n \"52\": [0, 0.64444, 0, 0, 0.5],\n \"53\": [0, 0.64444, 0, 0, 0.5],\n \"54\": [0, 0.64444, 0, 0, 0.5],\n \"55\": [0, 0.64444, 0, 0, 0.5],\n \"56\": [0, 0.64444, 0, 0, 0.5],\n \"57\": [0, 0.64444, 0, 0, 0.5],\n \"58\": [0, 0.43056, 0, 0, 0.27778],\n \"59\": [0.19444, 0.43056, 0, 0, 0.27778],\n \"60\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"61\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"62\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"63\": [0, 0.69444, 0, 0, 0.47222],\n \"64\": [0, 0.69444, 0, 0, 0.77778],\n \"65\": [0, 0.68333, 0, 0, 0.75],\n \"66\": [0, 0.68333, 0, 0, 0.70834],\n \"67\": [0, 0.68333, 0, 0, 0.72222],\n \"68\": [0, 0.68333, 0, 0, 0.76389],\n \"69\": [0, 0.68333, 0, 0, 0.68056],\n \"70\": [0, 0.68333, 0, 0, 0.65278],\n \"71\": [0, 0.68333, 0, 0, 0.78472],\n \"72\": [0, 0.68333, 0, 0, 0.75],\n \"73\": [0, 0.68333, 0, 0, 0.36111],\n \"74\": [0, 0.68333, 0, 0, 0.51389],\n \"75\": [0, 0.68333, 0, 0, 0.77778],\n \"76\": [0, 0.68333, 0, 0, 0.625],\n \"77\": [0, 0.68333, 0, 0, 0.91667],\n \"78\": [0, 0.68333, 0, 0, 0.75],\n \"79\": [0, 0.68333, 0, 0, 0.77778],\n \"80\": [0, 0.68333, 0, 0, 0.68056],\n \"81\": [0.19444, 0.68333, 0, 0, 0.77778],\n \"82\": [0, 0.68333, 0, 0, 0.73611],\n \"83\": [0, 0.68333, 0, 0, 0.55556],\n \"84\": [0, 0.68333, 0, 0, 0.72222],\n \"85\": [0, 0.68333, 0, 0, 0.75],\n \"86\": [0, 0.68333, 0.01389, 0, 0.75],\n \"87\": [0, 0.68333, 0.01389, 0, 1.02778],\n \"88\": [0, 0.68333, 0, 0, 0.75],\n \"89\": [0, 0.68333, 0.025, 0, 0.75],\n \"90\": [0, 0.68333, 0, 0, 0.61111],\n \"91\": [0.25, 0.75, 0, 0, 0.27778],\n \"92\": [0.25, 0.75, 0, 0, 0.5],\n \"93\": [0.25, 0.75, 0, 0, 0.27778],\n \"94\": [0, 0.69444, 0, 0, 0.5],\n \"95\": [0.31, 0.12056, 0.02778, 0, 0.5],\n \"97\": [0, 0.43056, 0, 0, 0.5],\n \"98\": [0, 0.69444, 0, 0, 0.55556],\n \"99\": [0, 0.43056, 0, 0, 0.44445],\n \"100\": [0, 0.69444, 0, 0, 0.55556],\n \"101\": [0, 0.43056, 0, 0, 0.44445],\n \"102\": [0, 0.69444, 0.07778, 0, 0.30556],\n \"103\": [0.19444, 0.43056, 0.01389, 0, 0.5],\n \"104\": [0, 0.69444, 0, 0, 0.55556],\n \"105\": [0, 0.66786, 0, 0, 0.27778],\n \"106\": [0.19444, 0.66786, 0, 0, 0.30556],\n \"107\": [0, 0.69444, 0, 0, 0.52778],\n \"108\": [0, 0.69444, 0, 0, 0.27778],\n \"109\": [0, 0.43056, 0, 0, 0.83334],\n \"110\": [0, 0.43056, 0, 0, 0.55556],\n \"111\": [0, 0.43056, 0, 0, 0.5],\n \"112\": [0.19444, 0.43056, 0, 0, 0.55556],\n \"113\": [0.19444, 0.43056, 0, 0, 0.52778],\n \"114\": [0, 0.43056, 0, 0, 0.39167],\n \"115\": [0, 0.43056, 0, 0, 0.39445],\n \"116\": [0, 0.61508, 0, 0, 0.38889],\n \"117\": [0, 0.43056, 0, 0, 0.55556],\n \"118\": [0, 0.43056, 0.01389, 0, 0.52778],\n \"119\": [0, 0.43056, 0.01389, 0, 0.72222],\n \"120\": [0, 0.43056, 0, 0, 0.52778],\n \"121\": [0.19444, 0.43056, 0.01389, 0, 0.52778],\n \"122\": [0, 0.43056, 0, 0, 0.44445],\n \"123\": [0.25, 0.75, 0, 0, 0.5],\n \"124\": [0.25, 0.75, 0, 0, 0.27778],\n \"125\": [0.25, 0.75, 0, 0, 0.5],\n \"126\": [0.35, 0.31786, 0, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"163\": [0, 0.69444, 0, 0, 0.76909],\n \"167\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"168\": [0, 0.66786, 0, 0, 0.5],\n \"172\": [0, 0.43056, 0, 0, 0.66667],\n \"176\": [0, 0.69444, 0, 0, 0.75],\n \"177\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"182\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"198\": [0, 0.68333, 0, 0, 0.90278],\n \"215\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"216\": [0.04861, 0.73194, 0, 0, 0.77778],\n \"223\": [0, 0.69444, 0, 0, 0.5],\n \"230\": [0, 0.43056, 0, 0, 0.72222],\n \"247\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"248\": [0.09722, 0.52778, 0, 0, 0.5],\n \"305\": [0, 0.43056, 0, 0, 0.27778],\n \"338\": [0, 0.68333, 0, 0, 1.01389],\n \"339\": [0, 0.43056, 0, 0, 0.77778],\n \"567\": [0.19444, 0.43056, 0, 0, 0.30556],\n \"710\": [0, 0.69444, 0, 0, 0.5],\n \"711\": [0, 0.62847, 0, 0, 0.5],\n \"713\": [0, 0.56778, 0, 0, 0.5],\n \"714\": [0, 0.69444, 0, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0, 0, 0.5],\n \"729\": [0, 0.66786, 0, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.75],\n \"732\": [0, 0.66786, 0, 0, 0.5],\n \"733\": [0, 0.69444, 0, 0, 0.5],\n \"915\": [0, 0.68333, 0, 0, 0.625],\n \"916\": [0, 0.68333, 0, 0, 0.83334],\n \"920\": [0, 0.68333, 0, 0, 0.77778],\n \"923\": [0, 0.68333, 0, 0, 0.69445],\n \"926\": [0, 0.68333, 0, 0, 0.66667],\n \"928\": [0, 0.68333, 0, 0, 0.75],\n \"931\": [0, 0.68333, 0, 0, 0.72222],\n \"933\": [0, 0.68333, 0, 0, 0.77778],\n \"934\": [0, 0.68333, 0, 0, 0.72222],\n \"936\": [0, 0.68333, 0, 0, 0.77778],\n \"937\": [0, 0.68333, 0, 0, 0.72222],\n \"8211\": [0, 0.43056, 0.02778, 0, 0.5],\n \"8212\": [0, 0.43056, 0.02778, 0, 1.0],\n \"8216\": [0, 0.69444, 0, 0, 0.27778],\n \"8217\": [0, 0.69444, 0, 0, 0.27778],\n \"8220\": [0, 0.69444, 0, 0, 0.5],\n \"8221\": [0, 0.69444, 0, 0, 0.5],\n \"8224\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"8225\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"8230\": [0, 0.123, 0, 0, 1.172],\n \"8242\": [0, 0.55556, 0, 0, 0.275],\n \"8407\": [0, 0.71444, 0.15382, 0, 0.5],\n \"8463\": [0, 0.68889, 0, 0, 0.54028],\n \"8465\": [0, 0.69444, 0, 0, 0.72222],\n \"8467\": [0, 0.69444, 0, 0.11111, 0.41667],\n \"8472\": [0.19444, 0.43056, 0, 0.11111, 0.63646],\n \"8476\": [0, 0.69444, 0, 0, 0.72222],\n \"8501\": [0, 0.69444, 0, 0, 0.61111],\n \"8592\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8593\": [0.19444, 0.69444, 0, 0, 0.5],\n \"8594\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8595\": [0.19444, 0.69444, 0, 0, 0.5],\n \"8596\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8597\": [0.25, 0.75, 0, 0, 0.5],\n \"8598\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8599\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8600\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8601\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8614\": [0.011, 0.511, 0, 0, 1.0],\n \"8617\": [0.011, 0.511, 0, 0, 1.126],\n \"8618\": [0.011, 0.511, 0, 0, 1.126],\n \"8636\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8637\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8640\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8641\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8652\": [0.011, 0.671, 0, 0, 1.0],\n \"8656\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8657\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"8658\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8659\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"8660\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8661\": [0.25, 0.75, 0, 0, 0.61111],\n \"8704\": [0, 0.69444, 0, 0, 0.55556],\n \"8706\": [0, 0.69444, 0.05556, 0.08334, 0.5309],\n \"8707\": [0, 0.69444, 0, 0, 0.55556],\n \"8709\": [0.05556, 0.75, 0, 0, 0.5],\n \"8711\": [0, 0.68333, 0, 0, 0.83334],\n \"8712\": [0.0391, 0.5391, 0, 0, 0.66667],\n \"8715\": [0.0391, 0.5391, 0, 0, 0.66667],\n \"8722\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8723\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8725\": [0.25, 0.75, 0, 0, 0.5],\n \"8726\": [0.25, 0.75, 0, 0, 0.5],\n \"8727\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"8728\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8729\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8730\": [0.2, 0.8, 0, 0, 0.83334],\n \"8733\": [0, 0.43056, 0, 0, 0.77778],\n \"8734\": [0, 0.43056, 0, 0, 1.0],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8739\": [0.25, 0.75, 0, 0, 0.27778],\n \"8741\": [0.25, 0.75, 0, 0, 0.5],\n \"8743\": [0, 0.55556, 0, 0, 0.66667],\n \"8744\": [0, 0.55556, 0, 0, 0.66667],\n \"8745\": [0, 0.55556, 0, 0, 0.66667],\n \"8746\": [0, 0.55556, 0, 0, 0.66667],\n \"8747\": [0.19444, 0.69444, 0.11111, 0, 0.41667],\n \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8768\": [0.19444, 0.69444, 0, 0, 0.27778],\n \"8771\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8773\": [-0.022, 0.589, 0, 0, 0.778],\n \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n \"8781\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8784\": [-0.133, 0.673, 0, 0, 0.778],\n \"8801\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8804\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8805\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8810\": [0.0391, 0.5391, 0, 0, 1.0],\n \"8811\": [0.0391, 0.5391, 0, 0, 1.0],\n \"8826\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8827\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8834\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8835\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8838\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8839\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8846\": [0, 0.55556, 0, 0, 0.66667],\n \"8849\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8850\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8851\": [0, 0.55556, 0, 0, 0.66667],\n \"8852\": [0, 0.55556, 0, 0, 0.66667],\n \"8853\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8854\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8855\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8856\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8857\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8866\": [0, 0.69444, 0, 0, 0.61111],\n \"8867\": [0, 0.69444, 0, 0, 0.61111],\n \"8868\": [0, 0.69444, 0, 0, 0.77778],\n \"8869\": [0, 0.69444, 0, 0, 0.77778],\n \"8872\": [0.249, 0.75, 0, 0, 0.867],\n \"8900\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8901\": [-0.05555, 0.44445, 0, 0, 0.27778],\n \"8902\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"8904\": [0.005, 0.505, 0, 0, 0.9],\n \"8942\": [0.03, 0.903, 0, 0, 0.278],\n \"8943\": [-0.19, 0.313, 0, 0, 1.172],\n \"8945\": [-0.1, 0.823, 0, 0, 1.282],\n \"8968\": [0.25, 0.75, 0, 0, 0.44445],\n \"8969\": [0.25, 0.75, 0, 0, 0.44445],\n \"8970\": [0.25, 0.75, 0, 0, 0.44445],\n \"8971\": [0.25, 0.75, 0, 0, 0.44445],\n \"8994\": [-0.14236, 0.35764, 0, 0, 1.0],\n \"8995\": [-0.14236, 0.35764, 0, 0, 1.0],\n \"9136\": [0.244, 0.744, 0, 0, 0.412],\n \"9137\": [0.244, 0.745, 0, 0, 0.412],\n \"9651\": [0.19444, 0.69444, 0, 0, 0.88889],\n \"9657\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"9661\": [0.19444, 0.69444, 0, 0, 0.88889],\n \"9667\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"9711\": [0.19444, 0.69444, 0, 0, 1.0],\n \"9824\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9825\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9826\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9827\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9837\": [0, 0.75, 0, 0, 0.38889],\n \"9838\": [0.19444, 0.69444, 0, 0, 0.38889],\n \"9839\": [0.19444, 0.69444, 0, 0, 0.38889],\n \"10216\": [0.25, 0.75, 0, 0, 0.38889],\n \"10217\": [0.25, 0.75, 0, 0, 0.38889],\n \"10222\": [0.244, 0.744, 0, 0, 0.412],\n \"10223\": [0.244, 0.745, 0, 0, 0.412],\n \"10229\": [0.011, 0.511, 0, 0, 1.609],\n \"10230\": [0.011, 0.511, 0, 0, 1.638],\n \"10231\": [0.011, 0.511, 0, 0, 1.859],\n \"10232\": [0.024, 0.525, 0, 0, 1.609],\n \"10233\": [0.024, 0.525, 0, 0, 1.638],\n \"10234\": [0.024, 0.525, 0, 0, 1.858],\n \"10236\": [0.011, 0.511, 0, 0, 1.638],\n \"10815\": [0, 0.68333, 0, 0, 0.75],\n \"10927\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10928\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"57376\": [0.19444, 0.69444, 0, 0, 0]\n },\n \"Math-BoldItalic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"48\": [0, 0.44444, 0, 0, 0.575],\n \"49\": [0, 0.44444, 0, 0, 0.575],\n \"50\": [0, 0.44444, 0, 0, 0.575],\n \"51\": [0.19444, 0.44444, 0, 0, 0.575],\n \"52\": [0.19444, 0.44444, 0, 0, 0.575],\n \"53\": [0.19444, 0.44444, 0, 0, 0.575],\n \"54\": [0, 0.64444, 0, 0, 0.575],\n \"55\": [0.19444, 0.44444, 0, 0, 0.575],\n \"56\": [0, 0.64444, 0, 0, 0.575],\n \"57\": [0.19444, 0.44444, 0, 0, 0.575],\n \"65\": [0, 0.68611, 0, 0, 0.86944],\n \"66\": [0, 0.68611, 0.04835, 0, 0.8664],\n \"67\": [0, 0.68611, 0.06979, 0, 0.81694],\n \"68\": [0, 0.68611, 0.03194, 0, 0.93812],\n \"69\": [0, 0.68611, 0.05451, 0, 0.81007],\n \"70\": [0, 0.68611, 0.15972, 0, 0.68889],\n \"71\": [0, 0.68611, 0, 0, 0.88673],\n \"72\": [0, 0.68611, 0.08229, 0, 0.98229],\n \"73\": [0, 0.68611, 0.07778, 0, 0.51111],\n \"74\": [0, 0.68611, 0.10069, 0, 0.63125],\n \"75\": [0, 0.68611, 0.06979, 0, 0.97118],\n \"76\": [0, 0.68611, 0, 0, 0.75555],\n \"77\": [0, 0.68611, 0.11424, 0, 1.14201],\n \"78\": [0, 0.68611, 0.11424, 0, 0.95034],\n \"79\": [0, 0.68611, 0.03194, 0, 0.83666],\n \"80\": [0, 0.68611, 0.15972, 0, 0.72309],\n \"81\": [0.19444, 0.68611, 0, 0, 0.86861],\n \"82\": [0, 0.68611, 0.00421, 0, 0.87235],\n \"83\": [0, 0.68611, 0.05382, 0, 0.69271],\n \"84\": [0, 0.68611, 0.15972, 0, 0.63663],\n \"85\": [0, 0.68611, 0.11424, 0, 0.80027],\n \"86\": [0, 0.68611, 0.25555, 0, 0.67778],\n \"87\": [0, 0.68611, 0.15972, 0, 1.09305],\n \"88\": [0, 0.68611, 0.07778, 0, 0.94722],\n \"89\": [0, 0.68611, 0.25555, 0, 0.67458],\n \"90\": [0, 0.68611, 0.06979, 0, 0.77257],\n \"97\": [0, 0.44444, 0, 0, 0.63287],\n \"98\": [0, 0.69444, 0, 0, 0.52083],\n \"99\": [0, 0.44444, 0, 0, 0.51342],\n \"100\": [0, 0.69444, 0, 0, 0.60972],\n \"101\": [0, 0.44444, 0, 0, 0.55361],\n \"102\": [0.19444, 0.69444, 0.11042, 0, 0.56806],\n \"103\": [0.19444, 0.44444, 0.03704, 0, 0.5449],\n \"104\": [0, 0.69444, 0, 0, 0.66759],\n \"105\": [0, 0.69326, 0, 0, 0.4048],\n \"106\": [0.19444, 0.69326, 0.0622, 0, 0.47083],\n \"107\": [0, 0.69444, 0.01852, 0, 0.6037],\n \"108\": [0, 0.69444, 0.0088, 0, 0.34815],\n \"109\": [0, 0.44444, 0, 0, 1.0324],\n \"110\": [0, 0.44444, 0, 0, 0.71296],\n \"111\": [0, 0.44444, 0, 0, 0.58472],\n \"112\": [0.19444, 0.44444, 0, 0, 0.60092],\n \"113\": [0.19444, 0.44444, 0.03704, 0, 0.54213],\n \"114\": [0, 0.44444, 0.03194, 0, 0.5287],\n \"115\": [0, 0.44444, 0, 0, 0.53125],\n \"116\": [0, 0.63492, 0, 0, 0.41528],\n \"117\": [0, 0.44444, 0, 0, 0.68102],\n \"118\": [0, 0.44444, 0.03704, 0, 0.56666],\n \"119\": [0, 0.44444, 0.02778, 0, 0.83148],\n \"120\": [0, 0.44444, 0, 0, 0.65903],\n \"121\": [0.19444, 0.44444, 0.03704, 0, 0.59028],\n \"122\": [0, 0.44444, 0.04213, 0, 0.55509],\n \"160\": [0, 0, 0, 0, 0.25],\n \"915\": [0, 0.68611, 0.15972, 0, 0.65694],\n \"916\": [0, 0.68611, 0, 0, 0.95833],\n \"920\": [0, 0.68611, 0.03194, 0, 0.86722],\n \"923\": [0, 0.68611, 0, 0, 0.80555],\n \"926\": [0, 0.68611, 0.07458, 0, 0.84125],\n \"928\": [0, 0.68611, 0.08229, 0, 0.98229],\n \"931\": [0, 0.68611, 0.05451, 0, 0.88507],\n \"933\": [0, 0.68611, 0.15972, 0, 0.67083],\n \"934\": [0, 0.68611, 0, 0, 0.76666],\n \"936\": [0, 0.68611, 0.11653, 0, 0.71402],\n \"937\": [0, 0.68611, 0.04835, 0, 0.8789],\n \"945\": [0, 0.44444, 0, 0, 0.76064],\n \"946\": [0.19444, 0.69444, 0.03403, 0, 0.65972],\n \"947\": [0.19444, 0.44444, 0.06389, 0, 0.59003],\n \"948\": [0, 0.69444, 0.03819, 0, 0.52222],\n \"949\": [0, 0.44444, 0, 0, 0.52882],\n \"950\": [0.19444, 0.69444, 0.06215, 0, 0.50833],\n \"951\": [0.19444, 0.44444, 0.03704, 0, 0.6],\n \"952\": [0, 0.69444, 0.03194, 0, 0.5618],\n \"953\": [0, 0.44444, 0, 0, 0.41204],\n \"954\": [0, 0.44444, 0, 0, 0.66759],\n \"955\": [0, 0.69444, 0, 0, 0.67083],\n \"956\": [0.19444, 0.44444, 0, 0, 0.70787],\n \"957\": [0, 0.44444, 0.06898, 0, 0.57685],\n \"958\": [0.19444, 0.69444, 0.03021, 0, 0.50833],\n \"959\": [0, 0.44444, 0, 0, 0.58472],\n \"960\": [0, 0.44444, 0.03704, 0, 0.68241],\n \"961\": [0.19444, 0.44444, 0, 0, 0.6118],\n \"962\": [0.09722, 0.44444, 0.07917, 0, 0.42361],\n \"963\": [0, 0.44444, 0.03704, 0, 0.68588],\n \"964\": [0, 0.44444, 0.13472, 0, 0.52083],\n \"965\": [0, 0.44444, 0.03704, 0, 0.63055],\n \"966\": [0.19444, 0.44444, 0, 0, 0.74722],\n \"967\": [0.19444, 0.44444, 0, 0, 0.71805],\n \"968\": [0.19444, 0.69444, 0.03704, 0, 0.75833],\n \"969\": [0, 0.44444, 0.03704, 0, 0.71782],\n \"977\": [0, 0.69444, 0, 0, 0.69155],\n \"981\": [0.19444, 0.69444, 0, 0, 0.7125],\n \"982\": [0, 0.44444, 0.03194, 0, 0.975],\n \"1009\": [0.19444, 0.44444, 0, 0, 0.6118],\n \"1013\": [0, 0.44444, 0, 0, 0.48333],\n \"57649\": [0, 0.44444, 0, 0, 0.39352],\n \"57911\": [0.19444, 0.44444, 0, 0, 0.43889]\n },\n \"Math-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"48\": [0, 0.43056, 0, 0, 0.5],\n \"49\": [0, 0.43056, 0, 0, 0.5],\n \"50\": [0, 0.43056, 0, 0, 0.5],\n \"51\": [0.19444, 0.43056, 0, 0, 0.5],\n \"52\": [0.19444, 0.43056, 0, 0, 0.5],\n \"53\": [0.19444, 0.43056, 0, 0, 0.5],\n \"54\": [0, 0.64444, 0, 0, 0.5],\n \"55\": [0.19444, 0.43056, 0, 0, 0.5],\n \"56\": [0, 0.64444, 0, 0, 0.5],\n \"57\": [0.19444, 0.43056, 0, 0, 0.5],\n \"65\": [0, 0.68333, 0, 0.13889, 0.75],\n \"66\": [0, 0.68333, 0.05017, 0.08334, 0.75851],\n \"67\": [0, 0.68333, 0.07153, 0.08334, 0.71472],\n \"68\": [0, 0.68333, 0.02778, 0.05556, 0.82792],\n \"69\": [0, 0.68333, 0.05764, 0.08334, 0.7382],\n \"70\": [0, 0.68333, 0.13889, 0.08334, 0.64306],\n \"71\": [0, 0.68333, 0, 0.08334, 0.78625],\n \"72\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n \"73\": [0, 0.68333, 0.07847, 0.11111, 0.43958],\n \"74\": [0, 0.68333, 0.09618, 0.16667, 0.55451],\n \"75\": [0, 0.68333, 0.07153, 0.05556, 0.84931],\n \"76\": [0, 0.68333, 0, 0.02778, 0.68056],\n \"77\": [0, 0.68333, 0.10903, 0.08334, 0.97014],\n \"78\": [0, 0.68333, 0.10903, 0.08334, 0.80347],\n \"79\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n \"80\": [0, 0.68333, 0.13889, 0.08334, 0.64201],\n \"81\": [0.19444, 0.68333, 0, 0.08334, 0.79056],\n \"82\": [0, 0.68333, 0.00773, 0.08334, 0.75929],\n \"83\": [0, 0.68333, 0.05764, 0.08334, 0.6132],\n \"84\": [0, 0.68333, 0.13889, 0.08334, 0.58438],\n \"85\": [0, 0.68333, 0.10903, 0.02778, 0.68278],\n \"86\": [0, 0.68333, 0.22222, 0, 0.58333],\n \"87\": [0, 0.68333, 0.13889, 0, 0.94445],\n \"88\": [0, 0.68333, 0.07847, 0.08334, 0.82847],\n \"89\": [0, 0.68333, 0.22222, 0, 0.58056],\n \"90\": [0, 0.68333, 0.07153, 0.08334, 0.68264],\n \"97\": [0, 0.43056, 0, 0, 0.52859],\n \"98\": [0, 0.69444, 0, 0, 0.42917],\n \"99\": [0, 0.43056, 0, 0.05556, 0.43276],\n \"100\": [0, 0.69444, 0, 0.16667, 0.52049],\n \"101\": [0, 0.43056, 0, 0.05556, 0.46563],\n \"102\": [0.19444, 0.69444, 0.10764, 0.16667, 0.48959],\n \"103\": [0.19444, 0.43056, 0.03588, 0.02778, 0.47697],\n \"104\": [0, 0.69444, 0, 0, 0.57616],\n \"105\": [0, 0.65952, 0, 0, 0.34451],\n \"106\": [0.19444, 0.65952, 0.05724, 0, 0.41181],\n \"107\": [0, 0.69444, 0.03148, 0, 0.5206],\n \"108\": [0, 0.69444, 0.01968, 0.08334, 0.29838],\n \"109\": [0, 0.43056, 0, 0, 0.87801],\n \"110\": [0, 0.43056, 0, 0, 0.60023],\n \"111\": [0, 0.43056, 0, 0.05556, 0.48472],\n \"112\": [0.19444, 0.43056, 0, 0.08334, 0.50313],\n \"113\": [0.19444, 0.43056, 0.03588, 0.08334, 0.44641],\n \"114\": [0, 0.43056, 0.02778, 0.05556, 0.45116],\n \"115\": [0, 0.43056, 0, 0.05556, 0.46875],\n \"116\": [0, 0.61508, 0, 0.08334, 0.36111],\n \"117\": [0, 0.43056, 0, 0.02778, 0.57246],\n \"118\": [0, 0.43056, 0.03588, 0.02778, 0.48472],\n \"119\": [0, 0.43056, 0.02691, 0.08334, 0.71592],\n \"120\": [0, 0.43056, 0, 0.02778, 0.57153],\n \"121\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49028],\n \"122\": [0, 0.43056, 0.04398, 0.05556, 0.46505],\n \"160\": [0, 0, 0, 0, 0.25],\n \"915\": [0, 0.68333, 0.13889, 0.08334, 0.61528],\n \"916\": [0, 0.68333, 0, 0.16667, 0.83334],\n \"920\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n \"923\": [0, 0.68333, 0, 0.16667, 0.69445],\n \"926\": [0, 0.68333, 0.07569, 0.08334, 0.74236],\n \"928\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n \"931\": [0, 0.68333, 0.05764, 0.08334, 0.77986],\n \"933\": [0, 0.68333, 0.13889, 0.05556, 0.58333],\n \"934\": [0, 0.68333, 0, 0.08334, 0.66667],\n \"936\": [0, 0.68333, 0.11, 0.05556, 0.61222],\n \"937\": [0, 0.68333, 0.05017, 0.08334, 0.7724],\n \"945\": [0, 0.43056, 0.0037, 0.02778, 0.6397],\n \"946\": [0.19444, 0.69444, 0.05278, 0.08334, 0.56563],\n \"947\": [0.19444, 0.43056, 0.05556, 0, 0.51773],\n \"948\": [0, 0.69444, 0.03785, 0.05556, 0.44444],\n \"949\": [0, 0.43056, 0, 0.08334, 0.46632],\n \"950\": [0.19444, 0.69444, 0.07378, 0.08334, 0.4375],\n \"951\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49653],\n \"952\": [0, 0.69444, 0.02778, 0.08334, 0.46944],\n \"953\": [0, 0.43056, 0, 0.05556, 0.35394],\n \"954\": [0, 0.43056, 0, 0, 0.57616],\n \"955\": [0, 0.69444, 0, 0, 0.58334],\n \"956\": [0.19444, 0.43056, 0, 0.02778, 0.60255],\n \"957\": [0, 0.43056, 0.06366, 0.02778, 0.49398],\n \"958\": [0.19444, 0.69444, 0.04601, 0.11111, 0.4375],\n \"959\": [0, 0.43056, 0, 0.05556, 0.48472],\n \"960\": [0, 0.43056, 0.03588, 0, 0.57003],\n \"961\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n \"962\": [0.09722, 0.43056, 0.07986, 0.08334, 0.36285],\n \"963\": [0, 0.43056, 0.03588, 0, 0.57141],\n \"964\": [0, 0.43056, 0.1132, 0.02778, 0.43715],\n \"965\": [0, 0.43056, 0.03588, 0.02778, 0.54028],\n \"966\": [0.19444, 0.43056, 0, 0.08334, 0.65417],\n \"967\": [0.19444, 0.43056, 0, 0.05556, 0.62569],\n \"968\": [0.19444, 0.69444, 0.03588, 0.11111, 0.65139],\n \"969\": [0, 0.43056, 0.03588, 0, 0.62245],\n \"977\": [0, 0.69444, 0, 0.08334, 0.59144],\n \"981\": [0.19444, 0.69444, 0, 0.08334, 0.59583],\n \"982\": [0, 0.43056, 0.02778, 0, 0.82813],\n \"1009\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n \"1013\": [0, 0.43056, 0, 0.05556, 0.4059],\n \"57649\": [0, 0.43056, 0, 0.02778, 0.32246],\n \"57911\": [0.19444, 0.43056, 0, 0.08334, 0.38403]\n },\n \"SansSerif-Bold\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.36667],\n \"34\": [0, 0.69444, 0, 0, 0.55834],\n \"35\": [0.19444, 0.69444, 0, 0, 0.91667],\n \"36\": [0.05556, 0.75, 0, 0, 0.55],\n \"37\": [0.05556, 0.75, 0, 0, 1.02912],\n \"38\": [0, 0.69444, 0, 0, 0.83056],\n \"39\": [0, 0.69444, 0, 0, 0.30556],\n \"40\": [0.25, 0.75, 0, 0, 0.42778],\n \"41\": [0.25, 0.75, 0, 0, 0.42778],\n \"42\": [0, 0.75, 0, 0, 0.55],\n \"43\": [0.11667, 0.61667, 0, 0, 0.85556],\n \"44\": [0.10556, 0.13056, 0, 0, 0.30556],\n \"45\": [0, 0.45833, 0, 0, 0.36667],\n \"46\": [0, 0.13056, 0, 0, 0.30556],\n \"47\": [0.25, 0.75, 0, 0, 0.55],\n \"48\": [0, 0.69444, 0, 0, 0.55],\n \"49\": [0, 0.69444, 0, 0, 0.55],\n \"50\": [0, 0.69444, 0, 0, 0.55],\n \"51\": [0, 0.69444, 0, 0, 0.55],\n \"52\": [0, 0.69444, 0, 0, 0.55],\n \"53\": [0, 0.69444, 0, 0, 0.55],\n \"54\": [0, 0.69444, 0, 0, 0.55],\n \"55\": [0, 0.69444, 0, 0, 0.55],\n \"56\": [0, 0.69444, 0, 0, 0.55],\n \"57\": [0, 0.69444, 0, 0, 0.55],\n \"58\": [0, 0.45833, 0, 0, 0.30556],\n \"59\": [0.10556, 0.45833, 0, 0, 0.30556],\n \"61\": [-0.09375, 0.40625, 0, 0, 0.85556],\n \"63\": [0, 0.69444, 0, 0, 0.51945],\n \"64\": [0, 0.69444, 0, 0, 0.73334],\n \"65\": [0, 0.69444, 0, 0, 0.73334],\n \"66\": [0, 0.69444, 0, 0, 0.73334],\n \"67\": [0, 0.69444, 0, 0, 0.70278],\n \"68\": [0, 0.69444, 0, 0, 0.79445],\n \"69\": [0, 0.69444, 0, 0, 0.64167],\n \"70\": [0, 0.69444, 0, 0, 0.61111],\n \"71\": [0, 0.69444, 0, 0, 0.73334],\n \"72\": [0, 0.69444, 0, 0, 0.79445],\n \"73\": [0, 0.69444, 0, 0, 0.33056],\n \"74\": [0, 0.69444, 0, 0, 0.51945],\n \"75\": [0, 0.69444, 0, 0, 0.76389],\n \"76\": [0, 0.69444, 0, 0, 0.58056],\n \"77\": [0, 0.69444, 0, 0, 0.97778],\n \"78\": [0, 0.69444, 0, 0, 0.79445],\n \"79\": [0, 0.69444, 0, 0, 0.79445],\n \"80\": [0, 0.69444, 0, 0, 0.70278],\n \"81\": [0.10556, 0.69444, 0, 0, 0.79445],\n \"82\": [0, 0.69444, 0, 0, 0.70278],\n \"83\": [0, 0.69444, 0, 0, 0.61111],\n \"84\": [0, 0.69444, 0, 0, 0.73334],\n \"85\": [0, 0.69444, 0, 0, 0.76389],\n \"86\": [0, 0.69444, 0.01528, 0, 0.73334],\n \"87\": [0, 0.69444, 0.01528, 0, 1.03889],\n \"88\": [0, 0.69444, 0, 0, 0.73334],\n \"89\": [0, 0.69444, 0.0275, 0, 0.73334],\n \"90\": [0, 0.69444, 0, 0, 0.67223],\n \"91\": [0.25, 0.75, 0, 0, 0.34306],\n \"93\": [0.25, 0.75, 0, 0, 0.34306],\n \"94\": [0, 0.69444, 0, 0, 0.55],\n \"95\": [0.35, 0.10833, 0.03056, 0, 0.55],\n \"97\": [0, 0.45833, 0, 0, 0.525],\n \"98\": [0, 0.69444, 0, 0, 0.56111],\n \"99\": [0, 0.45833, 0, 0, 0.48889],\n \"100\": [0, 0.69444, 0, 0, 0.56111],\n \"101\": [0, 0.45833, 0, 0, 0.51111],\n \"102\": [0, 0.69444, 0.07639, 0, 0.33611],\n \"103\": [0.19444, 0.45833, 0.01528, 0, 0.55],\n \"104\": [0, 0.69444, 0, 0, 0.56111],\n \"105\": [0, 0.69444, 0, 0, 0.25556],\n \"106\": [0.19444, 0.69444, 0, 0, 0.28611],\n \"107\": [0, 0.69444, 0, 0, 0.53056],\n \"108\": [0, 0.69444, 0, 0, 0.25556],\n \"109\": [0, 0.45833, 0, 0, 0.86667],\n \"110\": [0, 0.45833, 0, 0, 0.56111],\n \"111\": [0, 0.45833, 0, 0, 0.55],\n \"112\": [0.19444, 0.45833, 0, 0, 0.56111],\n \"113\": [0.19444, 0.45833, 0, 0, 0.56111],\n \"114\": [0, 0.45833, 0.01528, 0, 0.37222],\n \"115\": [0, 0.45833, 0, 0, 0.42167],\n \"116\": [0, 0.58929, 0, 0, 0.40417],\n \"117\": [0, 0.45833, 0, 0, 0.56111],\n \"118\": [0, 0.45833, 0.01528, 0, 0.5],\n \"119\": [0, 0.45833, 0.01528, 0, 0.74445],\n \"120\": [0, 0.45833, 0, 0, 0.5],\n \"121\": [0.19444, 0.45833, 0.01528, 0, 0.5],\n \"122\": [0, 0.45833, 0, 0, 0.47639],\n \"126\": [0.35, 0.34444, 0, 0, 0.55],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.69444, 0, 0, 0.55],\n \"176\": [0, 0.69444, 0, 0, 0.73334],\n \"180\": [0, 0.69444, 0, 0, 0.55],\n \"184\": [0.17014, 0, 0, 0, 0.48889],\n \"305\": [0, 0.45833, 0, 0, 0.25556],\n \"567\": [0.19444, 0.45833, 0, 0, 0.28611],\n \"710\": [0, 0.69444, 0, 0, 0.55],\n \"711\": [0, 0.63542, 0, 0, 0.55],\n \"713\": [0, 0.63778, 0, 0, 0.55],\n \"728\": [0, 0.69444, 0, 0, 0.55],\n \"729\": [0, 0.69444, 0, 0, 0.30556],\n \"730\": [0, 0.69444, 0, 0, 0.73334],\n \"732\": [0, 0.69444, 0, 0, 0.55],\n \"733\": [0, 0.69444, 0, 0, 0.55],\n \"915\": [0, 0.69444, 0, 0, 0.58056],\n \"916\": [0, 0.69444, 0, 0, 0.91667],\n \"920\": [0, 0.69444, 0, 0, 0.85556],\n \"923\": [0, 0.69444, 0, 0, 0.67223],\n \"926\": [0, 0.69444, 0, 0, 0.73334],\n \"928\": [0, 0.69444, 0, 0, 0.79445],\n \"931\": [0, 0.69444, 0, 0, 0.79445],\n \"933\": [0, 0.69444, 0, 0, 0.85556],\n \"934\": [0, 0.69444, 0, 0, 0.79445],\n \"936\": [0, 0.69444, 0, 0, 0.85556],\n \"937\": [0, 0.69444, 0, 0, 0.79445],\n \"8211\": [0, 0.45833, 0.03056, 0, 0.55],\n \"8212\": [0, 0.45833, 0.03056, 0, 1.10001],\n \"8216\": [0, 0.69444, 0, 0, 0.30556],\n \"8217\": [0, 0.69444, 0, 0, 0.30556],\n \"8220\": [0, 0.69444, 0, 0, 0.55834],\n \"8221\": [0, 0.69444, 0, 0, 0.55834]\n },\n \"SansSerif-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.05733, 0, 0.31945],\n \"34\": [0, 0.69444, 0.00316, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0.05087, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0.11156, 0, 0.5],\n \"37\": [0.05556, 0.75, 0.03126, 0, 0.83334],\n \"38\": [0, 0.69444, 0.03058, 0, 0.75834],\n \"39\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"40\": [0.25, 0.75, 0.13164, 0, 0.38889],\n \"41\": [0.25, 0.75, 0.02536, 0, 0.38889],\n \"42\": [0, 0.75, 0.11775, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0.02536, 0, 0.77778],\n \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n \"45\": [0, 0.44444, 0.01946, 0, 0.33333],\n \"46\": [0, 0.08333, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0.13164, 0, 0.5],\n \"48\": [0, 0.65556, 0.11156, 0, 0.5],\n \"49\": [0, 0.65556, 0.11156, 0, 0.5],\n \"50\": [0, 0.65556, 0.11156, 0, 0.5],\n \"51\": [0, 0.65556, 0.11156, 0, 0.5],\n \"52\": [0, 0.65556, 0.11156, 0, 0.5],\n \"53\": [0, 0.65556, 0.11156, 0, 0.5],\n \"54\": [0, 0.65556, 0.11156, 0, 0.5],\n \"55\": [0, 0.65556, 0.11156, 0, 0.5],\n \"56\": [0, 0.65556, 0.11156, 0, 0.5],\n \"57\": [0, 0.65556, 0.11156, 0, 0.5],\n \"58\": [0, 0.44444, 0.02502, 0, 0.27778],\n \"59\": [0.125, 0.44444, 0.02502, 0, 0.27778],\n \"61\": [-0.13, 0.37, 0.05087, 0, 0.77778],\n \"63\": [0, 0.69444, 0.11809, 0, 0.47222],\n \"64\": [0, 0.69444, 0.07555, 0, 0.66667],\n \"65\": [0, 0.69444, 0, 0, 0.66667],\n \"66\": [0, 0.69444, 0.08293, 0, 0.66667],\n \"67\": [0, 0.69444, 0.11983, 0, 0.63889],\n \"68\": [0, 0.69444, 0.07555, 0, 0.72223],\n \"69\": [0, 0.69444, 0.11983, 0, 0.59722],\n \"70\": [0, 0.69444, 0.13372, 0, 0.56945],\n \"71\": [0, 0.69444, 0.11983, 0, 0.66667],\n \"72\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"73\": [0, 0.69444, 0.13372, 0, 0.27778],\n \"74\": [0, 0.69444, 0.08094, 0, 0.47222],\n \"75\": [0, 0.69444, 0.11983, 0, 0.69445],\n \"76\": [0, 0.69444, 0, 0, 0.54167],\n \"77\": [0, 0.69444, 0.08094, 0, 0.875],\n \"78\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"79\": [0, 0.69444, 0.07555, 0, 0.73611],\n \"80\": [0, 0.69444, 0.08293, 0, 0.63889],\n \"81\": [0.125, 0.69444, 0.07555, 0, 0.73611],\n \"82\": [0, 0.69444, 0.08293, 0, 0.64584],\n \"83\": [0, 0.69444, 0.09205, 0, 0.55556],\n \"84\": [0, 0.69444, 0.13372, 0, 0.68056],\n \"85\": [0, 0.69444, 0.08094, 0, 0.6875],\n \"86\": [0, 0.69444, 0.1615, 0, 0.66667],\n \"87\": [0, 0.69444, 0.1615, 0, 0.94445],\n \"88\": [0, 0.69444, 0.13372, 0, 0.66667],\n \"89\": [0, 0.69444, 0.17261, 0, 0.66667],\n \"90\": [0, 0.69444, 0.11983, 0, 0.61111],\n \"91\": [0.25, 0.75, 0.15942, 0, 0.28889],\n \"93\": [0.25, 0.75, 0.08719, 0, 0.28889],\n \"94\": [0, 0.69444, 0.0799, 0, 0.5],\n \"95\": [0.35, 0.09444, 0.08616, 0, 0.5],\n \"97\": [0, 0.44444, 0.00981, 0, 0.48056],\n \"98\": [0, 0.69444, 0.03057, 0, 0.51667],\n \"99\": [0, 0.44444, 0.08336, 0, 0.44445],\n \"100\": [0, 0.69444, 0.09483, 0, 0.51667],\n \"101\": [0, 0.44444, 0.06778, 0, 0.44445],\n \"102\": [0, 0.69444, 0.21705, 0, 0.30556],\n \"103\": [0.19444, 0.44444, 0.10836, 0, 0.5],\n \"104\": [0, 0.69444, 0.01778, 0, 0.51667],\n \"105\": [0, 0.67937, 0.09718, 0, 0.23889],\n \"106\": [0.19444, 0.67937, 0.09162, 0, 0.26667],\n \"107\": [0, 0.69444, 0.08336, 0, 0.48889],\n \"108\": [0, 0.69444, 0.09483, 0, 0.23889],\n \"109\": [0, 0.44444, 0.01778, 0, 0.79445],\n \"110\": [0, 0.44444, 0.01778, 0, 0.51667],\n \"111\": [0, 0.44444, 0.06613, 0, 0.5],\n \"112\": [0.19444, 0.44444, 0.0389, 0, 0.51667],\n \"113\": [0.19444, 0.44444, 0.04169, 0, 0.51667],\n \"114\": [0, 0.44444, 0.10836, 0, 0.34167],\n \"115\": [0, 0.44444, 0.0778, 0, 0.38333],\n \"116\": [0, 0.57143, 0.07225, 0, 0.36111],\n \"117\": [0, 0.44444, 0.04169, 0, 0.51667],\n \"118\": [0, 0.44444, 0.10836, 0, 0.46111],\n \"119\": [0, 0.44444, 0.10836, 0, 0.68334],\n \"120\": [0, 0.44444, 0.09169, 0, 0.46111],\n \"121\": [0.19444, 0.44444, 0.10836, 0, 0.46111],\n \"122\": [0, 0.44444, 0.08752, 0, 0.43472],\n \"126\": [0.35, 0.32659, 0.08826, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.67937, 0.06385, 0, 0.5],\n \"176\": [0, 0.69444, 0, 0, 0.73752],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"305\": [0, 0.44444, 0.04169, 0, 0.23889],\n \"567\": [0.19444, 0.44444, 0.04169, 0, 0.26667],\n \"710\": [0, 0.69444, 0.0799, 0, 0.5],\n \"711\": [0, 0.63194, 0.08432, 0, 0.5],\n \"713\": [0, 0.60889, 0.08776, 0, 0.5],\n \"714\": [0, 0.69444, 0.09205, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0.09483, 0, 0.5],\n \"729\": [0, 0.67937, 0.07774, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.73752],\n \"732\": [0, 0.67659, 0.08826, 0, 0.5],\n \"733\": [0, 0.69444, 0.09205, 0, 0.5],\n \"915\": [0, 0.69444, 0.13372, 0, 0.54167],\n \"916\": [0, 0.69444, 0, 0, 0.83334],\n \"920\": [0, 0.69444, 0.07555, 0, 0.77778],\n \"923\": [0, 0.69444, 0, 0, 0.61111],\n \"926\": [0, 0.69444, 0.12816, 0, 0.66667],\n \"928\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"931\": [0, 0.69444, 0.11983, 0, 0.72222],\n \"933\": [0, 0.69444, 0.09031, 0, 0.77778],\n \"934\": [0, 0.69444, 0.04603, 0, 0.72222],\n \"936\": [0, 0.69444, 0.09031, 0, 0.77778],\n \"937\": [0, 0.69444, 0.08293, 0, 0.72222],\n \"8211\": [0, 0.44444, 0.08616, 0, 0.5],\n \"8212\": [0, 0.44444, 0.08616, 0, 1.0],\n \"8216\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"8217\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"8220\": [0, 0.69444, 0.14205, 0, 0.5],\n \"8221\": [0, 0.69444, 0.00316, 0, 0.5]\n },\n \"SansSerif-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.31945],\n \"34\": [0, 0.69444, 0, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0, 0, 0.5],\n \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n \"38\": [0, 0.69444, 0, 0, 0.75834],\n \"39\": [0, 0.69444, 0, 0, 0.27778],\n \"40\": [0.25, 0.75, 0, 0, 0.38889],\n \"41\": [0.25, 0.75, 0, 0, 0.38889],\n \"42\": [0, 0.75, 0, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n \"45\": [0, 0.44444, 0, 0, 0.33333],\n \"46\": [0, 0.08333, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0, 0, 0.5],\n \"48\": [0, 0.65556, 0, 0, 0.5],\n \"49\": [0, 0.65556, 0, 0, 0.5],\n \"50\": [0, 0.65556, 0, 0, 0.5],\n \"51\": [0, 0.65556, 0, 0, 0.5],\n \"52\": [0, 0.65556, 0, 0, 0.5],\n \"53\": [0, 0.65556, 0, 0, 0.5],\n \"54\": [0, 0.65556, 0, 0, 0.5],\n \"55\": [0, 0.65556, 0, 0, 0.5],\n \"56\": [0, 0.65556, 0, 0, 0.5],\n \"57\": [0, 0.65556, 0, 0, 0.5],\n \"58\": [0, 0.44444, 0, 0, 0.27778],\n \"59\": [0.125, 0.44444, 0, 0, 0.27778],\n \"61\": [-0.13, 0.37, 0, 0, 0.77778],\n \"63\": [0, 0.69444, 0, 0, 0.47222],\n \"64\": [0, 0.69444, 0, 0, 0.66667],\n \"65\": [0, 0.69444, 0, 0, 0.66667],\n \"66\": [0, 0.69444, 0, 0, 0.66667],\n \"67\": [0, 0.69444, 0, 0, 0.63889],\n \"68\": [0, 0.69444, 0, 0, 0.72223],\n \"69\": [0, 0.69444, 0, 0, 0.59722],\n \"70\": [0, 0.69444, 0, 0, 0.56945],\n \"71\": [0, 0.69444, 0, 0, 0.66667],\n \"72\": [0, 0.69444, 0, 0, 0.70834],\n \"73\": [0, 0.69444, 0, 0, 0.27778],\n \"74\": [0, 0.69444, 0, 0, 0.47222],\n \"75\": [0, 0.69444, 0, 0, 0.69445],\n \"76\": [0, 0.69444, 0, 0, 0.54167],\n \"77\": [0, 0.69444, 0, 0, 0.875],\n \"78\": [0, 0.69444, 0, 0, 0.70834],\n \"79\": [0, 0.69444, 0, 0, 0.73611],\n \"80\": [0, 0.69444, 0, 0, 0.63889],\n \"81\": [0.125, 0.69444, 0, 0, 0.73611],\n \"82\": [0, 0.69444, 0, 0, 0.64584],\n \"83\": [0, 0.69444, 0, 0, 0.55556],\n \"84\": [0, 0.69444, 0, 0, 0.68056],\n \"85\": [0, 0.69444, 0, 0, 0.6875],\n \"86\": [0, 0.69444, 0.01389, 0, 0.66667],\n \"87\": [0, 0.69444, 0.01389, 0, 0.94445],\n \"88\": [0, 0.69444, 0, 0, 0.66667],\n \"89\": [0, 0.69444, 0.025, 0, 0.66667],\n \"90\": [0, 0.69444, 0, 0, 0.61111],\n \"91\": [0.25, 0.75, 0, 0, 0.28889],\n \"93\": [0.25, 0.75, 0, 0, 0.28889],\n \"94\": [0, 0.69444, 0, 0, 0.5],\n \"95\": [0.35, 0.09444, 0.02778, 0, 0.5],\n \"97\": [0, 0.44444, 0, 0, 0.48056],\n \"98\": [0, 0.69444, 0, 0, 0.51667],\n \"99\": [0, 0.44444, 0, 0, 0.44445],\n \"100\": [0, 0.69444, 0, 0, 0.51667],\n \"101\": [0, 0.44444, 0, 0, 0.44445],\n \"102\": [0, 0.69444, 0.06944, 0, 0.30556],\n \"103\": [0.19444, 0.44444, 0.01389, 0, 0.5],\n \"104\": [0, 0.69444, 0, 0, 0.51667],\n \"105\": [0, 0.67937, 0, 0, 0.23889],\n \"106\": [0.19444, 0.67937, 0, 0, 0.26667],\n \"107\": [0, 0.69444, 0, 0, 0.48889],\n \"108\": [0, 0.69444, 0, 0, 0.23889],\n \"109\": [0, 0.44444, 0, 0, 0.79445],\n \"110\": [0, 0.44444, 0, 0, 0.51667],\n \"111\": [0, 0.44444, 0, 0, 0.5],\n \"112\": [0.19444, 0.44444, 0, 0, 0.51667],\n \"113\": [0.19444, 0.44444, 0, 0, 0.51667],\n \"114\": [0, 0.44444, 0.01389, 0, 0.34167],\n \"115\": [0, 0.44444, 0, 0, 0.38333],\n \"116\": [0, 0.57143, 0, 0, 0.36111],\n \"117\": [0, 0.44444, 0, 0, 0.51667],\n \"118\": [0, 0.44444, 0.01389, 0, 0.46111],\n \"119\": [0, 0.44444, 0.01389, 0, 0.68334],\n \"120\": [0, 0.44444, 0, 0, 0.46111],\n \"121\": [0.19444, 0.44444, 0.01389, 0, 0.46111],\n \"122\": [0, 0.44444, 0, 0, 0.43472],\n \"126\": [0.35, 0.32659, 0, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.67937, 0, 0, 0.5],\n \"176\": [0, 0.69444, 0, 0, 0.66667],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"305\": [0, 0.44444, 0, 0, 0.23889],\n \"567\": [0.19444, 0.44444, 0, 0, 0.26667],\n \"710\": [0, 0.69444, 0, 0, 0.5],\n \"711\": [0, 0.63194, 0, 0, 0.5],\n \"713\": [0, 0.60889, 0, 0, 0.5],\n \"714\": [0, 0.69444, 0, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0, 0, 0.5],\n \"729\": [0, 0.67937, 0, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.66667],\n \"732\": [0, 0.67659, 0, 0, 0.5],\n \"733\": [0, 0.69444, 0, 0, 0.5],\n \"915\": [0, 0.69444, 0, 0, 0.54167],\n \"916\": [0, 0.69444, 0, 0, 0.83334],\n \"920\": [0, 0.69444, 0, 0, 0.77778],\n \"923\": [0, 0.69444, 0, 0, 0.61111],\n \"926\": [0, 0.69444, 0, 0, 0.66667],\n \"928\": [0, 0.69444, 0, 0, 0.70834],\n \"931\": [0, 0.69444, 0, 0, 0.72222],\n \"933\": [0, 0.69444, 0, 0, 0.77778],\n \"934\": [0, 0.69444, 0, 0, 0.72222],\n \"936\": [0, 0.69444, 0, 0, 0.77778],\n \"937\": [0, 0.69444, 0, 0, 0.72222],\n \"8211\": [0, 0.44444, 0.02778, 0, 0.5],\n \"8212\": [0, 0.44444, 0.02778, 0, 1.0],\n \"8216\": [0, 0.69444, 0, 0, 0.27778],\n \"8217\": [0, 0.69444, 0, 0, 0.27778],\n \"8220\": [0, 0.69444, 0, 0, 0.5],\n \"8221\": [0, 0.69444, 0, 0, 0.5]\n },\n \"Script-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.7, 0.22925, 0, 0.80253],\n \"66\": [0, 0.7, 0.04087, 0, 0.90757],\n \"67\": [0, 0.7, 0.1689, 0, 0.66619],\n \"68\": [0, 0.7, 0.09371, 0, 0.77443],\n \"69\": [0, 0.7, 0.18583, 0, 0.56162],\n \"70\": [0, 0.7, 0.13634, 0, 0.89544],\n \"71\": [0, 0.7, 0.17322, 0, 0.60961],\n \"72\": [0, 0.7, 0.29694, 0, 0.96919],\n \"73\": [0, 0.7, 0.19189, 0, 0.80907],\n \"74\": [0.27778, 0.7, 0.19189, 0, 1.05159],\n \"75\": [0, 0.7, 0.31259, 0, 0.91364],\n \"76\": [0, 0.7, 0.19189, 0, 0.87373],\n \"77\": [0, 0.7, 0.15981, 0, 1.08031],\n \"78\": [0, 0.7, 0.3525, 0, 0.9015],\n \"79\": [0, 0.7, 0.08078, 0, 0.73787],\n \"80\": [0, 0.7, 0.08078, 0, 1.01262],\n \"81\": [0, 0.7, 0.03305, 0, 0.88282],\n \"82\": [0, 0.7, 0.06259, 0, 0.85],\n \"83\": [0, 0.7, 0.19189, 0, 0.86767],\n \"84\": [0, 0.7, 0.29087, 0, 0.74697],\n \"85\": [0, 0.7, 0.25815, 0, 0.79996],\n \"86\": [0, 0.7, 0.27523, 0, 0.62204],\n \"87\": [0, 0.7, 0.27523, 0, 0.80532],\n \"88\": [0, 0.7, 0.26006, 0, 0.94445],\n \"89\": [0, 0.7, 0.2939, 0, 0.70961],\n \"90\": [0, 0.7, 0.24037, 0, 0.8212],\n \"160\": [0, 0, 0, 0, 0.25]\n },\n \"Size1-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.35001, 0.85, 0, 0, 0.45834],\n \"41\": [0.35001, 0.85, 0, 0, 0.45834],\n \"47\": [0.35001, 0.85, 0, 0, 0.57778],\n \"91\": [0.35001, 0.85, 0, 0, 0.41667],\n \"92\": [0.35001, 0.85, 0, 0, 0.57778],\n \"93\": [0.35001, 0.85, 0, 0, 0.41667],\n \"123\": [0.35001, 0.85, 0, 0, 0.58334],\n \"125\": [0.35001, 0.85, 0, 0, 0.58334],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.72222, 0, 0, 0.55556],\n \"732\": [0, 0.72222, 0, 0, 0.55556],\n \"770\": [0, 0.72222, 0, 0, 0.55556],\n \"771\": [0, 0.72222, 0, 0, 0.55556],\n \"8214\": [-0.00099, 0.601, 0, 0, 0.77778],\n \"8593\": [1e-05, 0.6, 0, 0, 0.66667],\n \"8595\": [1e-05, 0.6, 0, 0, 0.66667],\n \"8657\": [1e-05, 0.6, 0, 0, 0.77778],\n \"8659\": [1e-05, 0.6, 0, 0, 0.77778],\n \"8719\": [0.25001, 0.75, 0, 0, 0.94445],\n \"8720\": [0.25001, 0.75, 0, 0, 0.94445],\n \"8721\": [0.25001, 0.75, 0, 0, 1.05556],\n \"8730\": [0.35001, 0.85, 0, 0, 1.0],\n \"8739\": [-0.00599, 0.606, 0, 0, 0.33333],\n \"8741\": [-0.00599, 0.606, 0, 0, 0.55556],\n \"8747\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n \"8748\": [0.306, 0.805, 0.19445, 0, 0.47222],\n \"8749\": [0.306, 0.805, 0.19445, 0, 0.47222],\n \"8750\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n \"8896\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8897\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8898\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8899\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8968\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8969\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8970\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8971\": [0.35001, 0.85, 0, 0, 0.47222],\n \"9168\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"10216\": [0.35001, 0.85, 0, 0, 0.47222],\n \"10217\": [0.35001, 0.85, 0, 0, 0.47222],\n \"10752\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10753\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10754\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10756\": [0.25001, 0.75, 0, 0, 0.83334],\n \"10758\": [0.25001, 0.75, 0, 0, 0.83334]\n },\n \"Size2-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.65002, 1.15, 0, 0, 0.59722],\n \"41\": [0.65002, 1.15, 0, 0, 0.59722],\n \"47\": [0.65002, 1.15, 0, 0, 0.81111],\n \"91\": [0.65002, 1.15, 0, 0, 0.47222],\n \"92\": [0.65002, 1.15, 0, 0, 0.81111],\n \"93\": [0.65002, 1.15, 0, 0, 0.47222],\n \"123\": [0.65002, 1.15, 0, 0, 0.66667],\n \"125\": [0.65002, 1.15, 0, 0, 0.66667],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.75, 0, 0, 1.0],\n \"732\": [0, 0.75, 0, 0, 1.0],\n \"770\": [0, 0.75, 0, 0, 1.0],\n \"771\": [0, 0.75, 0, 0, 1.0],\n \"8719\": [0.55001, 1.05, 0, 0, 1.27778],\n \"8720\": [0.55001, 1.05, 0, 0, 1.27778],\n \"8721\": [0.55001, 1.05, 0, 0, 1.44445],\n \"8730\": [0.65002, 1.15, 0, 0, 1.0],\n \"8747\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n \"8748\": [0.862, 1.36, 0.44445, 0, 0.55556],\n \"8749\": [0.862, 1.36, 0.44445, 0, 0.55556],\n \"8750\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n \"8896\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8897\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8898\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8899\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8968\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8969\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8970\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8971\": [0.65002, 1.15, 0, 0, 0.52778],\n \"10216\": [0.65002, 1.15, 0, 0, 0.61111],\n \"10217\": [0.65002, 1.15, 0, 0, 0.61111],\n \"10752\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10753\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10754\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10756\": [0.55001, 1.05, 0, 0, 1.11111],\n \"10758\": [0.55001, 1.05, 0, 0, 1.11111]\n },\n \"Size3-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.95003, 1.45, 0, 0, 0.73611],\n \"41\": [0.95003, 1.45, 0, 0, 0.73611],\n \"47\": [0.95003, 1.45, 0, 0, 1.04445],\n \"91\": [0.95003, 1.45, 0, 0, 0.52778],\n \"92\": [0.95003, 1.45, 0, 0, 1.04445],\n \"93\": [0.95003, 1.45, 0, 0, 0.52778],\n \"123\": [0.95003, 1.45, 0, 0, 0.75],\n \"125\": [0.95003, 1.45, 0, 0, 0.75],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.75, 0, 0, 1.44445],\n \"732\": [0, 0.75, 0, 0, 1.44445],\n \"770\": [0, 0.75, 0, 0, 1.44445],\n \"771\": [0, 0.75, 0, 0, 1.44445],\n \"8730\": [0.95003, 1.45, 0, 0, 1.0],\n \"8968\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8969\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8970\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8971\": [0.95003, 1.45, 0, 0, 0.58334],\n \"10216\": [0.95003, 1.45, 0, 0, 0.75],\n \"10217\": [0.95003, 1.45, 0, 0, 0.75]\n },\n \"Size4-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [1.25003, 1.75, 0, 0, 0.79167],\n \"41\": [1.25003, 1.75, 0, 0, 0.79167],\n \"47\": [1.25003, 1.75, 0, 0, 1.27778],\n \"91\": [1.25003, 1.75, 0, 0, 0.58334],\n \"92\": [1.25003, 1.75, 0, 0, 1.27778],\n \"93\": [1.25003, 1.75, 0, 0, 0.58334],\n \"123\": [1.25003, 1.75, 0, 0, 0.80556],\n \"125\": [1.25003, 1.75, 0, 0, 0.80556],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.825, 0, 0, 1.8889],\n \"732\": [0, 0.825, 0, 0, 1.8889],\n \"770\": [0, 0.825, 0, 0, 1.8889],\n \"771\": [0, 0.825, 0, 0, 1.8889],\n \"8730\": [1.25003, 1.75, 0, 0, 1.0],\n \"8968\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8969\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8970\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8971\": [1.25003, 1.75, 0, 0, 0.63889],\n \"9115\": [0.64502, 1.155, 0, 0, 0.875],\n \"9116\": [1e-05, 0.6, 0, 0, 0.875],\n \"9117\": [0.64502, 1.155, 0, 0, 0.875],\n \"9118\": [0.64502, 1.155, 0, 0, 0.875],\n \"9119\": [1e-05, 0.6, 0, 0, 0.875],\n \"9120\": [0.64502, 1.155, 0, 0, 0.875],\n \"9121\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9122\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"9123\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9124\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9125\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"9126\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9127\": [1e-05, 0.9, 0, 0, 0.88889],\n \"9128\": [0.65002, 1.15, 0, 0, 0.88889],\n \"9129\": [0.90001, 0, 0, 0, 0.88889],\n \"9130\": [0, 0.3, 0, 0, 0.88889],\n \"9131\": [1e-05, 0.9, 0, 0, 0.88889],\n \"9132\": [0.65002, 1.15, 0, 0, 0.88889],\n \"9133\": [0.90001, 0, 0, 0, 0.88889],\n \"9143\": [0.88502, 0.915, 0, 0, 1.05556],\n \"10216\": [1.25003, 1.75, 0, 0, 0.80556],\n \"10217\": [1.25003, 1.75, 0, 0, 0.80556],\n \"57344\": [-0.00499, 0.605, 0, 0, 1.05556],\n \"57345\": [-0.00499, 0.605, 0, 0, 1.05556],\n \"57680\": [0, 0.12, 0, 0, 0.45],\n \"57681\": [0, 0.12, 0, 0, 0.45],\n \"57682\": [0, 0.12, 0, 0, 0.45],\n \"57683\": [0, 0.12, 0, 0, 0.45]\n },\n \"Typewriter-Regular\": {\n \"32\": [0, 0, 0, 0, 0.525],\n \"33\": [0, 0.61111, 0, 0, 0.525],\n \"34\": [0, 0.61111, 0, 0, 0.525],\n \"35\": [0, 0.61111, 0, 0, 0.525],\n \"36\": [0.08333, 0.69444, 0, 0, 0.525],\n \"37\": [0.08333, 0.69444, 0, 0, 0.525],\n \"38\": [0, 0.61111, 0, 0, 0.525],\n \"39\": [0, 0.61111, 0, 0, 0.525],\n \"40\": [0.08333, 0.69444, 0, 0, 0.525],\n \"41\": [0.08333, 0.69444, 0, 0, 0.525],\n \"42\": [0, 0.52083, 0, 0, 0.525],\n \"43\": [-0.08056, 0.53055, 0, 0, 0.525],\n \"44\": [0.13889, 0.125, 0, 0, 0.525],\n \"45\": [-0.08056, 0.53055, 0, 0, 0.525],\n \"46\": [0, 0.125, 0, 0, 0.525],\n \"47\": [0.08333, 0.69444, 0, 0, 0.525],\n \"48\": [0, 0.61111, 0, 0, 0.525],\n \"49\": [0, 0.61111, 0, 0, 0.525],\n \"50\": [0, 0.61111, 0, 0, 0.525],\n \"51\": [0, 0.61111, 0, 0, 0.525],\n \"52\": [0, 0.61111, 0, 0, 0.525],\n \"53\": [0, 0.61111, 0, 0, 0.525],\n \"54\": [0, 0.61111, 0, 0, 0.525],\n \"55\": [0, 0.61111, 0, 0, 0.525],\n \"56\": [0, 0.61111, 0, 0, 0.525],\n \"57\": [0, 0.61111, 0, 0, 0.525],\n \"58\": [0, 0.43056, 0, 0, 0.525],\n \"59\": [0.13889, 0.43056, 0, 0, 0.525],\n \"60\": [-0.05556, 0.55556, 0, 0, 0.525],\n \"61\": [-0.19549, 0.41562, 0, 0, 0.525],\n \"62\": [-0.05556, 0.55556, 0, 0, 0.525],\n \"63\": [0, 0.61111, 0, 0, 0.525],\n \"64\": [0, 0.61111, 0, 0, 0.525],\n \"65\": [0, 0.61111, 0, 0, 0.525],\n \"66\": [0, 0.61111, 0, 0, 0.525],\n \"67\": [0, 0.61111, 0, 0, 0.525],\n \"68\": [0, 0.61111, 0, 0, 0.525],\n \"69\": [0, 0.61111, 0, 0, 0.525],\n \"70\": [0, 0.61111, 0, 0, 0.525],\n \"71\": [0, 0.61111, 0, 0, 0.525],\n \"72\": [0, 0.61111, 0, 0, 0.525],\n \"73\": [0, 0.61111, 0, 0, 0.525],\n \"74\": [0, 0.61111, 0, 0, 0.525],\n \"75\": [0, 0.61111, 0, 0, 0.525],\n \"76\": [0, 0.61111, 0, 0, 0.525],\n \"77\": [0, 0.61111, 0, 0, 0.525],\n \"78\": [0, 0.61111, 0, 0, 0.525],\n \"79\": [0, 0.61111, 0, 0, 0.525],\n \"80\": [0, 0.61111, 0, 0, 0.525],\n \"81\": [0.13889, 0.61111, 0, 0, 0.525],\n \"82\": [0, 0.61111, 0, 0, 0.525],\n \"83\": [0, 0.61111, 0, 0, 0.525],\n \"84\": [0, 0.61111, 0, 0, 0.525],\n \"85\": [0, 0.61111, 0, 0, 0.525],\n \"86\": [0, 0.61111, 0, 0, 0.525],\n \"87\": [0, 0.61111, 0, 0, 0.525],\n \"88\": [0, 0.61111, 0, 0, 0.525],\n \"89\": [0, 0.61111, 0, 0, 0.525],\n \"90\": [0, 0.61111, 0, 0, 0.525],\n \"91\": [0.08333, 0.69444, 0, 0, 0.525],\n \"92\": [0.08333, 0.69444, 0, 0, 0.525],\n \"93\": [0.08333, 0.69444, 0, 0, 0.525],\n \"94\": [0, 0.61111, 0, 0, 0.525],\n \"95\": [0.09514, 0, 0, 0, 0.525],\n \"96\": [0, 0.61111, 0, 0, 0.525],\n \"97\": [0, 0.43056, 0, 0, 0.525],\n \"98\": [0, 0.61111, 0, 0, 0.525],\n \"99\": [0, 0.43056, 0, 0, 0.525],\n \"100\": [0, 0.61111, 0, 0, 0.525],\n \"101\": [0, 0.43056, 0, 0, 0.525],\n \"102\": [0, 0.61111, 0, 0, 0.525],\n \"103\": [0.22222, 0.43056, 0, 0, 0.525],\n \"104\": [0, 0.61111, 0, 0, 0.525],\n \"105\": [0, 0.61111, 0, 0, 0.525],\n \"106\": [0.22222, 0.61111, 0, 0, 0.525],\n \"107\": [0, 0.61111, 0, 0, 0.525],\n \"108\": [0, 0.61111, 0, 0, 0.525],\n \"109\": [0, 0.43056, 0, 0, 0.525],\n \"110\": [0, 0.43056, 0, 0, 0.525],\n \"111\": [0, 0.43056, 0, 0, 0.525],\n \"112\": [0.22222, 0.43056, 0, 0, 0.525],\n \"113\": [0.22222, 0.43056, 0, 0, 0.525],\n \"114\": [0, 0.43056, 0, 0, 0.525],\n \"115\": [0, 0.43056, 0, 0, 0.525],\n \"116\": [0, 0.55358, 0, 0, 0.525],\n \"117\": [0, 0.43056, 0, 0, 0.525],\n \"118\": [0, 0.43056, 0, 0, 0.525],\n \"119\": [0, 0.43056, 0, 0, 0.525],\n \"120\": [0, 0.43056, 0, 0, 0.525],\n \"121\": [0.22222, 0.43056, 0, 0, 0.525],\n \"122\": [0, 0.43056, 0, 0, 0.525],\n \"123\": [0.08333, 0.69444, 0, 0, 0.525],\n \"124\": [0.08333, 0.69444, 0, 0, 0.525],\n \"125\": [0.08333, 0.69444, 0, 0, 0.525],\n \"126\": [0, 0.61111, 0, 0, 0.525],\n \"127\": [0, 0.61111, 0, 0, 0.525],\n \"160\": [0, 0, 0, 0, 0.525],\n \"176\": [0, 0.61111, 0, 0, 0.525],\n \"184\": [0.19445, 0, 0, 0, 0.525],\n \"305\": [0, 0.43056, 0, 0, 0.525],\n \"567\": [0.22222, 0.43056, 0, 0, 0.525],\n \"711\": [0, 0.56597, 0, 0, 0.525],\n \"713\": [0, 0.56555, 0, 0, 0.525],\n \"714\": [0, 0.61111, 0, 0, 0.525],\n \"715\": [0, 0.61111, 0, 0, 0.525],\n \"728\": [0, 0.61111, 0, 0, 0.525],\n \"730\": [0, 0.61111, 0, 0, 0.525],\n \"770\": [0, 0.61111, 0, 0, 0.525],\n \"771\": [0, 0.61111, 0, 0, 0.525],\n \"776\": [0, 0.61111, 0, 0, 0.525],\n \"915\": [0, 0.61111, 0, 0, 0.525],\n \"916\": [0, 0.61111, 0, 0, 0.525],\n \"920\": [0, 0.61111, 0, 0, 0.525],\n \"923\": [0, 0.61111, 0, 0, 0.525],\n \"926\": [0, 0.61111, 0, 0, 0.525],\n \"928\": [0, 0.61111, 0, 0, 0.525],\n \"931\": [0, 0.61111, 0, 0, 0.525],\n \"933\": [0, 0.61111, 0, 0, 0.525],\n \"934\": [0, 0.61111, 0, 0, 0.525],\n \"936\": [0, 0.61111, 0, 0, 0.525],\n \"937\": [0, 0.61111, 0, 0, 0.525],\n \"8216\": [0, 0.61111, 0, 0, 0.525],\n \"8217\": [0, 0.61111, 0, 0, 0.525],\n \"8242\": [0, 0.61111, 0, 0, 0.525],\n \"9251\": [0.11111, 0.21944, 0, 0, 0.525]\n }\n});\n;// CONCATENATED MODULE: ./src/fontMetrics.js\n\n\n/**\n * This file contains metrics regarding fonts and individual symbols. The sigma\n * and xi variables, as well as the metricMap map contain data extracted from\n * TeX, TeX font metrics, and the TTF files. These data are then exposed via the\n * `metrics` variable and the getCharacterMetrics function.\n */\n// In TeX, there are actually three sets of dimensions, one for each of\n// textstyle (size index 5 and higher: >=9pt), scriptstyle (size index 3 and 4:\n// 7-8pt), and scriptscriptstyle (size index 1 and 2: 5-6pt). These are\n// provided in the arrays below, in that order.\n//\n// The font metrics are stored in fonts cmsy10, cmsy7, and cmsy5 respectively.\n// This was determined by running the following script:\n//\n// latex -interaction=nonstopmode \\\n// '\\documentclass{article}\\usepackage{amsmath}\\begin{document}' \\\n// '$a$ \\expandafter\\show\\the\\textfont2' \\\n// '\\expandafter\\show\\the\\scriptfont2' \\\n// '\\expandafter\\show\\the\\scriptscriptfont2' \\\n// '\\stop'\n//\n// The metrics themselves were retrieved using the following commands:\n//\n// tftopl cmsy10\n// tftopl cmsy7\n// tftopl cmsy5\n//\n// The output of each of these commands is quite lengthy. The only part we\n// care about is the FONTDIMEN section. Each value is measured in EMs.\nconst sigmasAndXis = {\n slant: [0.250, 0.250, 0.250],\n // sigma1\n space: [0.000, 0.000, 0.000],\n // sigma2\n stretch: [0.000, 0.000, 0.000],\n // sigma3\n shrink: [0.000, 0.000, 0.000],\n // sigma4\n xHeight: [0.431, 0.431, 0.431],\n // sigma5\n quad: [1.000, 1.171, 1.472],\n // sigma6\n extraSpace: [0.000, 0.000, 0.000],\n // sigma7\n num1: [0.677, 0.732, 0.925],\n // sigma8\n num2: [0.394, 0.384, 0.387],\n // sigma9\n num3: [0.444, 0.471, 0.504],\n // sigma10\n denom1: [0.686, 0.752, 1.025],\n // sigma11\n denom2: [0.345, 0.344, 0.532],\n // sigma12\n sup1: [0.413, 0.503, 0.504],\n // sigma13\n sup2: [0.363, 0.431, 0.404],\n // sigma14\n sup3: [0.289, 0.286, 0.294],\n // sigma15\n sub1: [0.150, 0.143, 0.200],\n // sigma16\n sub2: [0.247, 0.286, 0.400],\n // sigma17\n supDrop: [0.386, 0.353, 0.494],\n // sigma18\n subDrop: [0.050, 0.071, 0.100],\n // sigma19\n delim1: [2.390, 1.700, 1.980],\n // sigma20\n delim2: [1.010, 1.157, 1.420],\n // sigma21\n axisHeight: [0.250, 0.250, 0.250],\n // sigma22\n // These font metrics are extracted from TeX by using tftopl on cmex10.tfm;\n // they correspond to the font parameters of the extension fonts (family 3).\n // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to\n // match cmex7, we'd use cmex7.tfm values for script and scriptscript\n // values.\n defaultRuleThickness: [0.04, 0.049, 0.049],\n // xi8; cmex7: 0.049\n bigOpSpacing1: [0.111, 0.111, 0.111],\n // xi9\n bigOpSpacing2: [0.166, 0.166, 0.166],\n // xi10\n bigOpSpacing3: [0.2, 0.2, 0.2],\n // xi11\n bigOpSpacing4: [0.6, 0.611, 0.611],\n // xi12; cmex7: 0.611\n bigOpSpacing5: [0.1, 0.143, 0.143],\n // xi13; cmex7: 0.143\n // The \\sqrt rule width is taken from the height of the surd character.\n // Since we use the same font at all sizes, this thickness doesn't scale.\n sqrtRuleThickness: [0.04, 0.04, 0.04],\n // This value determines how large a pt is, for metrics which are defined\n // in terms of pts.\n // This value is also used in katex.scss; if you change it make sure the\n // values match.\n ptPerEm: [10.0, 10.0, 10.0],\n // The space between adjacent `|` columns in an array definition. From\n // `\\showthe\\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm.\n doubleRuleSep: [0.2, 0.2, 0.2],\n // The width of separator lines in {array} environments. From\n // `\\showthe\\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm.\n arrayRuleWidth: [0.04, 0.04, 0.04],\n // Two values from LaTeX source2e:\n fboxsep: [0.3, 0.3, 0.3],\n // 3 pt / ptPerEm\n fboxrule: [0.04, 0.04, 0.04] // 0.4 pt / ptPerEm\n\n}; // This map contains a mapping from font name and character code to character\n// metrics, including height, depth, italic correction, and skew (kern from the\n// character to the corresponding \\skewchar)\n// This map is generated via `make metrics`. It should not be changed manually.\n\n // These are very rough approximations. We default to Times New Roman which\n// should have Latin-1 and Cyrillic characters, but may not depending on the\n// operating system. The metrics do not account for extra height from the\n// accents. In the case of Cyrillic characters which have both ascenders and\n// descenders we prefer approximations with ascenders, primarily to prevent\n// the fraction bar or root line from intersecting the glyph.\n// TODO(kevinb) allow union of multiple glyph metrics for better accuracy.\n\nconst extraCharacterMap = {\n // Latin-1\n 'Å': 'A',\n 'Ð': 'D',\n 'Þ': 'o',\n 'å': 'a',\n 'ð': 'd',\n 'þ': 'o',\n // Cyrillic\n 'А': 'A',\n 'Б': 'B',\n 'В': 'B',\n 'Г': 'F',\n 'Д': 'A',\n 'Е': 'E',\n 'Ж': 'K',\n 'З': '3',\n 'И': 'N',\n 'Й': 'N',\n 'К': 'K',\n 'Л': 'N',\n 'М': 'M',\n 'Н': 'H',\n 'О': 'O',\n 'П': 'N',\n 'Р': 'P',\n 'С': 'C',\n 'Т': 'T',\n 'У': 'y',\n 'Ф': 'O',\n 'Х': 'X',\n 'Ц': 'U',\n 'Ч': 'h',\n 'Ш': 'W',\n 'Щ': 'W',\n 'Ъ': 'B',\n 'Ы': 'X',\n 'Ь': 'B',\n 'Э': '3',\n 'Ю': 'X',\n 'Я': 'R',\n 'а': 'a',\n 'б': 'b',\n 'в': 'a',\n 'г': 'r',\n 'д': 'y',\n 'е': 'e',\n 'ж': 'm',\n 'з': 'e',\n 'и': 'n',\n 'й': 'n',\n 'к': 'n',\n 'л': 'n',\n 'м': 'm',\n 'н': 'n',\n 'о': 'o',\n 'п': 'n',\n 'р': 'p',\n 'с': 'c',\n 'т': 'o',\n 'у': 'y',\n 'ф': 'b',\n 'х': 'x',\n 'ц': 'n',\n 'ч': 'n',\n 'ш': 'w',\n 'щ': 'w',\n 'ъ': 'a',\n 'ы': 'm',\n 'ь': 'a',\n 'э': 'e',\n 'ю': 'm',\n 'я': 'r'\n};\n\n/**\n * This function adds new font metrics to default metricMap\n * It can also override existing metrics\n */\nfunction setFontMetrics(fontName, metrics) {\n fontMetricsData[fontName] = metrics;\n}\n/**\n * This function is a convenience function for looking up information in the\n * metricMap table. It takes a character as a string, and a font.\n *\n * Note: the `width` property may be undefined if fontMetricsData.js wasn't\n * built using `Make extended_metrics`.\n */\n\nfunction getCharacterMetrics(character, font, mode) {\n if (!fontMetricsData[font]) {\n throw new Error(\"Font metrics not found for font: \" + font + \".\");\n }\n\n let ch = character.charCodeAt(0);\n let metrics = fontMetricsData[font][ch];\n\n if (!metrics && character[0] in extraCharacterMap) {\n ch = extraCharacterMap[character[0]].charCodeAt(0);\n metrics = fontMetricsData[font][ch];\n }\n\n if (!metrics && mode === 'text') {\n // We don't typically have font metrics for Asian scripts.\n // But since we support them in text mode, we need to return\n // some sort of metrics.\n // So if the character is in a script we support but we\n // don't have metrics for it, just use the metrics for\n // the Latin capital letter M. This is close enough because\n // we (currently) only care about the height of the glyph\n // not its width.\n if (supportedCodepoint(ch)) {\n metrics = fontMetricsData[font][77]; // 77 is the charcode for 'M'\n }\n }\n\n if (metrics) {\n return {\n depth: metrics[0],\n height: metrics[1],\n italic: metrics[2],\n skew: metrics[3],\n width: metrics[4]\n };\n }\n}\nconst fontMetricsBySizeIndex = {};\n/**\n * Get the font metrics for a given size.\n */\n\nfunction getGlobalMetrics(size) {\n let sizeIndex;\n\n if (size >= 5) {\n sizeIndex = 0;\n } else if (size >= 3) {\n sizeIndex = 1;\n } else {\n sizeIndex = 2;\n }\n\n if (!fontMetricsBySizeIndex[sizeIndex]) {\n const metrics = fontMetricsBySizeIndex[sizeIndex] = {\n cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18\n };\n\n for (const key in sigmasAndXis) {\n if (sigmasAndXis.hasOwnProperty(key)) {\n metrics[key] = sigmasAndXis[key][sizeIndex];\n }\n }\n }\n\n return fontMetricsBySizeIndex[sizeIndex];\n}\n;// CONCATENATED MODULE: ./src/Options.js\n/**\n * This file contains information about the options that the Parser carries\n * around with it while parsing. Data is held in an `Options` object, and when\n * recursing, a new `Options` object can be created with the `.with*` and\n * `.reset` functions.\n */\n\nconst sizeStyleMap = [// Each element contains [textsize, scriptsize, scriptscriptsize].\n// The size mappings are taken from TeX with \\normalsize=10pt.\n[1, 1, 1], // size1: [5, 5, 5] \\tiny\n[2, 1, 1], // size2: [6, 5, 5]\n[3, 1, 1], // size3: [7, 5, 5] \\scriptsize\n[4, 2, 1], // size4: [8, 6, 5] \\footnotesize\n[5, 2, 1], // size5: [9, 6, 5] \\small\n[6, 3, 1], // size6: [10, 7, 5] \\normalsize\n[7, 4, 2], // size7: [12, 8, 6] \\large\n[8, 6, 3], // size8: [14.4, 10, 7] \\Large\n[9, 7, 6], // size9: [17.28, 12, 10] \\LARGE\n[10, 8, 7], // size10: [20.74, 14.4, 12] \\huge\n[11, 10, 9] // size11: [24.88, 20.74, 17.28] \\HUGE\n];\nconst sizeMultipliers = [// fontMetrics.js:getGlobalMetrics also uses size indexes, so if\n// you change size indexes, change that function.\n0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.44, 1.728, 2.074, 2.488];\n\nconst sizeAtStyle = function (size, style) {\n return style.size < 2 ? size : sizeStyleMap[size - 1][style.size - 1];\n}; // In these types, \"\" (empty string) means \"no change\".\n\n\n/**\n * This is the main options class. It contains the current style, size, color,\n * and font.\n *\n * Options objects should not be modified. To create a new Options with\n * different properties, call a `.having*` method.\n */\nclass Options {\n // A font family applies to a group of fonts (i.e. SansSerif), while a font\n // represents a specific font (i.e. SansSerif Bold).\n // See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm\n\n /**\n * The base size index.\n */\n constructor(data) {\n this.style = void 0;\n this.color = void 0;\n this.size = void 0;\n this.textSize = void 0;\n this.phantom = void 0;\n this.font = void 0;\n this.fontFamily = void 0;\n this.fontWeight = void 0;\n this.fontShape = void 0;\n this.sizeMultiplier = void 0;\n this.maxSize = void 0;\n this.minRuleThickness = void 0;\n this._fontMetrics = void 0;\n this.style = data.style;\n this.color = data.color;\n this.size = data.size || Options.BASESIZE;\n this.textSize = data.textSize || this.size;\n this.phantom = !!data.phantom;\n this.font = data.font || \"\";\n this.fontFamily = data.fontFamily || \"\";\n this.fontWeight = data.fontWeight || '';\n this.fontShape = data.fontShape || '';\n this.sizeMultiplier = sizeMultipliers[this.size - 1];\n this.maxSize = data.maxSize;\n this.minRuleThickness = data.minRuleThickness;\n this._fontMetrics = undefined;\n }\n /**\n * Returns a new options object with the same properties as \"this\". Properties\n * from \"extension\" will be copied to the new options object.\n */\n\n\n extend(extension) {\n const data = {\n style: this.style,\n size: this.size,\n textSize: this.textSize,\n color: this.color,\n phantom: this.phantom,\n font: this.font,\n fontFamily: this.fontFamily,\n fontWeight: this.fontWeight,\n fontShape: this.fontShape,\n maxSize: this.maxSize,\n minRuleThickness: this.minRuleThickness\n };\n\n for (const key in extension) {\n if (extension.hasOwnProperty(key)) {\n data[key] = extension[key];\n }\n }\n\n return new Options(data);\n }\n /**\n * Return an options object with the given style. If `this.style === style`,\n * returns `this`.\n */\n\n\n havingStyle(style) {\n if (this.style === style) {\n return this;\n } else {\n return this.extend({\n style: style,\n size: sizeAtStyle(this.textSize, style)\n });\n }\n }\n /**\n * Return an options object with a cramped version of the current style. If\n * the current style is cramped, returns `this`.\n */\n\n\n havingCrampedStyle() {\n return this.havingStyle(this.style.cramp());\n }\n /**\n * Return an options object with the given size and in at least `\\textstyle`.\n * Returns `this` if appropriate.\n */\n\n\n havingSize(size) {\n if (this.size === size && this.textSize === size) {\n return this;\n } else {\n return this.extend({\n style: this.style.text(),\n size: size,\n textSize: size,\n sizeMultiplier: sizeMultipliers[size - 1]\n });\n }\n }\n /**\n * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted,\n * changes to at least `\\textstyle`.\n */\n\n\n havingBaseStyle(style) {\n style = style || this.style.text();\n const wantSize = sizeAtStyle(Options.BASESIZE, style);\n\n if (this.size === wantSize && this.textSize === Options.BASESIZE && this.style === style) {\n return this;\n } else {\n return this.extend({\n style: style,\n size: wantSize\n });\n }\n }\n /**\n * Remove the effect of sizing changes such as \\Huge.\n * Keep the effect of the current style, such as \\scriptstyle.\n */\n\n\n havingBaseSizing() {\n let size;\n\n switch (this.style.id) {\n case 4:\n case 5:\n size = 3; // normalsize in scriptstyle\n\n break;\n\n case 6:\n case 7:\n size = 1; // normalsize in scriptscriptstyle\n\n break;\n\n default:\n size = 6;\n // normalsize in textstyle or displaystyle\n }\n\n return this.extend({\n style: this.style.text(),\n size: size\n });\n }\n /**\n * Create a new options object with the given color.\n */\n\n\n withColor(color) {\n return this.extend({\n color: color\n });\n }\n /**\n * Create a new options object with \"phantom\" set to true.\n */\n\n\n withPhantom() {\n return this.extend({\n phantom: true\n });\n }\n /**\n * Creates a new options object with the given math font or old text font.\n * @type {[type]}\n */\n\n\n withFont(font) {\n return this.extend({\n font\n });\n }\n /**\n * Create a new options objects with the given fontFamily.\n */\n\n\n withTextFontFamily(fontFamily) {\n return this.extend({\n fontFamily,\n font: \"\"\n });\n }\n /**\n * Creates a new options object with the given font weight\n */\n\n\n withTextFontWeight(fontWeight) {\n return this.extend({\n fontWeight,\n font: \"\"\n });\n }\n /**\n * Creates a new options object with the given font weight\n */\n\n\n withTextFontShape(fontShape) {\n return this.extend({\n fontShape,\n font: \"\"\n });\n }\n /**\n * Return the CSS sizing classes required to switch from enclosing options\n * `oldOptions` to `this`. Returns an array of classes.\n */\n\n\n sizingClasses(oldOptions) {\n if (oldOptions.size !== this.size) {\n return [\"sizing\", \"reset-size\" + oldOptions.size, \"size\" + this.size];\n } else {\n return [];\n }\n }\n /**\n * Return the CSS sizing classes required to switch to the base size. Like\n * `this.havingSize(BASESIZE).sizingClasses(this)`.\n */\n\n\n baseSizingClasses() {\n if (this.size !== Options.BASESIZE) {\n return [\"sizing\", \"reset-size\" + this.size, \"size\" + Options.BASESIZE];\n } else {\n return [];\n }\n }\n /**\n * Return the font metrics for this size.\n */\n\n\n fontMetrics() {\n if (!this._fontMetrics) {\n this._fontMetrics = getGlobalMetrics(this.size);\n }\n\n return this._fontMetrics;\n }\n /**\n * Gets the CSS color of the current options object\n */\n\n\n getColor() {\n if (this.phantom) {\n return \"transparent\";\n } else {\n return this.color;\n }\n }\n\n}\n\nOptions.BASESIZE = 6;\n/* harmony default export */ var src_Options = (Options);\n;// CONCATENATED MODULE: ./src/units.js\n/**\n * This file does conversion between units. In particular, it provides\n * calculateSize to convert other units into ems.\n */\n\n // This table gives the number of TeX pts in one of each *absolute* TeX unit.\n// Thus, multiplying a length by this number converts the length from units\n// into pts. Dividing the result by ptPerEm gives the number of ems\n// *assuming* a font size of ptPerEm (normal size, normal style).\n\nconst ptPerUnit = {\n // https://en.wikibooks.org/wiki/LaTeX/Lengths and\n // https://tex.stackexchange.com/a/8263\n \"pt\": 1,\n // TeX point\n \"mm\": 7227 / 2540,\n // millimeter\n \"cm\": 7227 / 254,\n // centimeter\n \"in\": 72.27,\n // inch\n \"bp\": 803 / 800,\n // big (PostScript) points\n \"pc\": 12,\n // pica\n \"dd\": 1238 / 1157,\n // didot\n \"cc\": 14856 / 1157,\n // cicero (12 didot)\n \"nd\": 685 / 642,\n // new didot\n \"nc\": 1370 / 107,\n // new cicero (12 new didot)\n \"sp\": 1 / 65536,\n // scaled point (TeX's internal smallest unit)\n // https://tex.stackexchange.com/a/41371\n \"px\": 803 / 800 // \\pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX\n\n}; // Dictionary of relative units, for fast validity testing.\n\nconst relativeUnit = {\n \"ex\": true,\n \"em\": true,\n \"mu\": true\n};\n\n/**\n * Determine whether the specified unit (either a string defining the unit\n * or a \"size\" parse node containing a unit field) is valid.\n */\nconst validUnit = function (unit) {\n if (typeof unit !== \"string\") {\n unit = unit.unit;\n }\n\n return unit in ptPerUnit || unit in relativeUnit || unit === \"ex\";\n};\n/*\n * Convert a \"size\" parse node (with numeric \"number\" and string \"unit\" fields,\n * as parsed by functions.js argType \"size\") into a CSS em value for the\n * current style/scale. `options` gives the current options.\n */\n\nconst calculateSize = function (sizeValue, options) {\n let scale;\n\n if (sizeValue.unit in ptPerUnit) {\n // Absolute units\n scale = ptPerUnit[sizeValue.unit] // Convert unit to pt\n / options.fontMetrics().ptPerEm // Convert pt to CSS em\n / options.sizeMultiplier; // Unscale to make absolute units\n } else if (sizeValue.unit === \"mu\") {\n // `mu` units scale with scriptstyle/scriptscriptstyle.\n scale = options.fontMetrics().cssEmPerMu;\n } else {\n // Other relative units always refer to the *textstyle* font\n // in the current size.\n let unitOptions;\n\n if (options.style.isTight()) {\n // isTight() means current style is script/scriptscript.\n unitOptions = options.havingStyle(options.style.text());\n } else {\n unitOptions = options;\n } // TODO: In TeX these units are relative to the quad of the current\n // *text* font, e.g. cmr10. KaTeX instead uses values from the\n // comparably-sized *Computer Modern symbol* font. At 10pt, these\n // match. At 7pt and 5pt, they differ: cmr7=1.138894, cmsy7=1.170641;\n // cmr5=1.361133, cmsy5=1.472241. Consider $\\scriptsize a\\kern1emb$.\n // TeX \\showlists shows a kern of 1.13889 * fontsize;\n // KaTeX shows a kern of 1.171 * fontsize.\n\n\n if (sizeValue.unit === \"ex\") {\n scale = unitOptions.fontMetrics().xHeight;\n } else if (sizeValue.unit === \"em\") {\n scale = unitOptions.fontMetrics().quad;\n } else {\n throw new src_ParseError(\"Invalid unit: '\" + sizeValue.unit + \"'\");\n }\n\n if (unitOptions !== options) {\n scale *= unitOptions.sizeMultiplier / options.sizeMultiplier;\n }\n }\n\n return Math.min(sizeValue.number * scale, options.maxSize);\n};\n/**\n * Round `n` to 4 decimal places, or to the nearest 1/10,000th em. See\n * https://github.com/KaTeX/KaTeX/pull/2460.\n */\n\nconst makeEm = function (n) {\n return +n.toFixed(4) + \"em\";\n};\n;// CONCATENATED MODULE: ./src/domTree.js\n/**\n * These objects store the data about the DOM nodes we create, as well as some\n * extra data. They can then be transformed into real DOM nodes with the\n * `toNode` function or HTML markup using `toMarkup`. They are useful for both\n * storing extra properties on the nodes, as well as providing a way to easily\n * work with the DOM.\n *\n * Similar functions for working with MathML nodes exist in mathMLTree.js.\n *\n * TODO: refactor `span` and `anchor` into common superclass when\n * target environments support class inheritance\n */\n\n\n\n\n\n\n\n/**\n * Create an HTML className based on a list of classes. In addition to joining\n * with spaces, we also remove empty classes.\n */\nconst createClass = function (classes) {\n return classes.filter(cls => cls).join(\" \");\n};\n\nconst initNode = function (classes, options, style) {\n this.classes = classes || [];\n this.attributes = {};\n this.height = 0;\n this.depth = 0;\n this.maxFontSize = 0;\n this.style = style || {};\n\n if (options) {\n if (options.style.isTight()) {\n this.classes.push(\"mtight\");\n }\n\n const color = options.getColor();\n\n if (color) {\n this.style.color = color;\n }\n }\n};\n/**\n * Convert into an HTML node\n */\n\n\nconst toNode = function (tagName) {\n const node = document.createElement(tagName); // Apply the class\n\n node.className = createClass(this.classes); // Apply inline styles\n\n for (const style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n // $FlowFixMe Flow doesn't seem to understand span.style's type.\n node.style[style] = this.style[style];\n }\n } // Apply attributes\n\n\n for (const attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n } // Append the children, also as HTML nodes\n\n\n for (let i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n};\n/**\n * https://w3c.github.io/html-reference/syntax.html#syntax-attributes\n *\n * > Attribute Names must consist of one or more characters\n * other than the space characters, U+0000 NULL,\n * '\"', \"'\", \">\", \"/\", \"=\", the control characters,\n * and any characters that are not defined by Unicode.\n */\n\n\nconst invalidAttributeNameRegex = /[\\s\"'>/=\\x00-\\x1f]/;\n/**\n * Convert into an HTML markup string\n */\n\nconst toMarkup = function (tagName) {\n let markup = \"<\" + tagName; // Add the class\n\n if (this.classes.length) {\n markup += \" class=\\\"\" + utils.escape(createClass(this.classes)) + \"\\\"\";\n }\n\n let styles = \"\"; // Add the styles, after hyphenation\n\n for (const style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n } // Add the attributes\n\n\n for (const attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n if (invalidAttributeNameRegex.test(attr)) {\n throw new src_ParseError(\"Invalid attribute name '\" + attr + \"'\");\n }\n\n markup += \" \" + attr + \"=\\\"\" + utils.escape(this.attributes[attr]) + \"\\\"\";\n }\n }\n\n markup += \">\"; // Add the markup of the children, also as markup\n\n for (let i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"\";\n return markup;\n}; // Making the type below exact with all optional fields doesn't work due to\n// - https://github.com/facebook/flow/issues/4582\n// - https://github.com/facebook/flow/issues/5688\n// However, since *all* fields are optional, $Shape<> works as suggested in 5688\n// above.\n// This type does not include all CSS properties. Additional properties should\n// be added as needed.\n\n\n/**\n * This node represents a span node, with a className, a list of children, and\n * an inline style. It also contains information about its height, depth, and\n * maxFontSize.\n *\n * Represents two types with different uses: SvgSpan to wrap an SVG and DomSpan\n * otherwise. This typesafety is important when HTML builders access a span's\n * children.\n */\nclass Span {\n constructor(classes, children, options, style) {\n this.children = void 0;\n this.attributes = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.width = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n initNode.call(this, classes, options, style);\n this.children = children || [];\n }\n /**\n * Sets an arbitrary attribute on the span. Warning: use this wisely. Not\n * all browsers support attributes the same, and having too many custom\n * attributes is probably bad.\n */\n\n\n setAttribute(attribute, value) {\n this.attributes[attribute] = value;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n return toNode.call(this, \"span\");\n }\n\n toMarkup() {\n return toMarkup.call(this, \"span\");\n }\n\n}\n/**\n * This node represents an anchor () element with a hyperlink. See `span`\n * for further details.\n */\n\nclass Anchor {\n constructor(href, classes, children, options) {\n this.children = void 0;\n this.attributes = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n initNode.call(this, classes, options);\n this.children = children || [];\n this.setAttribute('href', href);\n }\n\n setAttribute(attribute, value) {\n this.attributes[attribute] = value;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n return toNode.call(this, \"a\");\n }\n\n toMarkup() {\n return toMarkup.call(this, \"a\");\n }\n\n}\n/**\n * This node represents an image embed () element.\n */\n\nclass Img {\n constructor(src, alt, style) {\n this.src = void 0;\n this.alt = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n this.alt = alt;\n this.src = src;\n this.classes = [\"mord\"];\n this.style = style;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n const node = document.createElement(\"img\");\n node.src = this.src;\n node.alt = this.alt;\n node.className = \"mord\"; // Apply inline styles\n\n for (const style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n // $FlowFixMe\n node.style[style] = this.style[style];\n }\n }\n\n return node;\n }\n\n toMarkup() {\n let markup = \"\\\"\"\";\n return markup;\n }\n\n}\nconst iCombinations = {\n 'î': '\\u0131\\u0302',\n 'ï': '\\u0131\\u0308',\n 'í': '\\u0131\\u0301',\n // 'ī': '\\u0131\\u0304', // enable when we add Extended Latin\n 'ì': '\\u0131\\u0300'\n};\n/**\n * A symbol node contains information about a single symbol. It either renders\n * to a single text node, or a span with a single text node in it, depending on\n * whether it has CSS classes, styles, or needs italic correction.\n */\n\nclass SymbolNode {\n constructor(text, height, depth, italic, skew, width, classes, style) {\n this.text = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.italic = void 0;\n this.skew = void 0;\n this.width = void 0;\n this.maxFontSize = void 0;\n this.classes = void 0;\n this.style = void 0;\n this.text = text;\n this.height = height || 0;\n this.depth = depth || 0;\n this.italic = italic || 0;\n this.skew = skew || 0;\n this.width = width || 0;\n this.classes = classes || [];\n this.style = style || {};\n this.maxFontSize = 0; // Mark text from non-Latin scripts with specific classes so that we\n // can specify which fonts to use. This allows us to render these\n // characters with a serif font in situations where the browser would\n // either default to a sans serif or render a placeholder character.\n // We use CSS class names like cjk_fallback, hangul_fallback and\n // brahmic_fallback. See ./unicodeScripts.js for the set of possible\n // script names\n\n const script = scriptFromCodepoint(this.text.charCodeAt(0));\n\n if (script) {\n this.classes.push(script + \"_fallback\");\n }\n\n if (/[îïíì]/.test(this.text)) {\n // add ī when we add Extended Latin\n this.text = iCombinations[this.text];\n }\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n /**\n * Creates a text node or span from a symbol node. Note that a span is only\n * created if it is needed.\n */\n\n\n toNode() {\n const node = document.createTextNode(this.text);\n let span = null;\n\n if (this.italic > 0) {\n span = document.createElement(\"span\");\n span.style.marginRight = makeEm(this.italic);\n }\n\n if (this.classes.length > 0) {\n span = span || document.createElement(\"span\");\n span.className = createClass(this.classes);\n }\n\n for (const style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n span = span || document.createElement(\"span\"); // $FlowFixMe Flow doesn't seem to understand span.style's type.\n\n span.style[style] = this.style[style];\n }\n }\n\n if (span) {\n span.appendChild(node);\n return span;\n } else {\n return node;\n }\n }\n /**\n * Creates markup for a symbol node.\n */\n\n\n toMarkup() {\n // TODO(alpert): More duplication than I'd like from\n // span.prototype.toMarkup and symbolNode.prototype.toNode...\n let needsSpan = false;\n let markup = \" 0) {\n styles += \"margin-right:\" + this.italic + \"em;\";\n }\n\n for (const style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n needsSpan = true;\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n const escaped = utils.escape(this.text);\n\n if (needsSpan) {\n markup += \">\";\n markup += escaped;\n markup += \"\";\n return markup;\n } else {\n return escaped;\n }\n }\n\n}\n/**\n * SVG nodes are used to render stretchy wide elements.\n */\n\nclass SvgNode {\n constructor(children, attributes) {\n this.children = void 0;\n this.attributes = void 0;\n this.children = children || [];\n this.attributes = attributes || {};\n }\n\n toNode() {\n const svgNS = \"http://www.w3.org/2000/svg\";\n const node = document.createElementNS(svgNS, \"svg\"); // Apply attributes\n\n for (const attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n for (let i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n }\n\n toMarkup() {\n let markup = \"\";\n\n for (let i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"\";\n return markup;\n }\n\n}\nclass PathNode {\n constructor(pathName, alternate) {\n this.pathName = void 0;\n this.alternate = void 0;\n this.pathName = pathName;\n this.alternate = alternate; // Used only for \\sqrt, \\phase, & tall delims\n }\n\n toNode() {\n const svgNS = \"http://www.w3.org/2000/svg\";\n const node = document.createElementNS(svgNS, \"path\");\n\n if (this.alternate) {\n node.setAttribute(\"d\", this.alternate);\n } else {\n node.setAttribute(\"d\", path[this.pathName]);\n }\n\n return node;\n }\n\n toMarkup() {\n if (this.alternate) {\n return \"\";\n } else {\n return \"\";\n }\n }\n\n}\nclass LineNode {\n constructor(attributes) {\n this.attributes = void 0;\n this.attributes = attributes || {};\n }\n\n toNode() {\n const svgNS = \"http://www.w3.org/2000/svg\";\n const node = document.createElementNS(svgNS, \"line\"); // Apply attributes\n\n for (const attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n return node;\n }\n\n toMarkup() {\n let markup = \"\";\n return markup;\n }\n\n}\nfunction assertSymbolDomNode(group) {\n if (group instanceof SymbolNode) {\n return group;\n } else {\n throw new Error(\"Expected symbolNode but got \" + String(group) + \".\");\n }\n}\nfunction assertSpan(group) {\n if (group instanceof Span) {\n return group;\n } else {\n throw new Error(\"Expected span but got \" + String(group) + \".\");\n }\n}\n;// CONCATENATED MODULE: ./src/symbols.js\n/**\n * This file holds a list of all no-argument functions and single-character\n * symbols (like 'a' or ';').\n *\n * For each of the symbols, there are three properties they can have:\n * - font (required): the font to be used for this symbol. Either \"main\" (the\n normal font), or \"ams\" (the ams fonts).\n * - group (required): the ParseNode group type the symbol should have (i.e.\n \"textord\", \"mathord\", etc).\n See https://github.com/KaTeX/KaTeX/wiki/Examining-TeX#group-types\n * - replace: the character that this symbol or function should be\n * replaced with (i.e. \"\\phi\" has a replace value of \"\\u03d5\", the phi\n * character in the main font).\n *\n * The outermost map in the table indicates what mode the symbols should be\n * accepted in (e.g. \"math\" or \"text\").\n */\n// Some of these have a \"-token\" suffix since these are also used as `ParseNode`\n// types for raw text tokens, and we want to avoid conflicts with higher-level\n// `ParseNode` types. These `ParseNode`s are constructed within `Parser` by\n// looking up the `symbols` map.\nconst ATOMS = {\n \"bin\": 1,\n \"close\": 1,\n \"inner\": 1,\n \"open\": 1,\n \"punct\": 1,\n \"rel\": 1\n};\nconst NON_ATOMS = {\n \"accent-token\": 1,\n \"mathord\": 1,\n \"op-token\": 1,\n \"spacing\": 1,\n \"textord\": 1\n};\nconst symbols = {\n \"math\": {},\n \"text\": {}\n};\n/* harmony default export */ var src_symbols = (symbols);\n/** `acceptUnicodeChar = true` is only applicable if `replace` is set. */\n\nfunction defineSymbol(mode, font, group, replace, name, acceptUnicodeChar) {\n symbols[mode][name] = {\n font,\n group,\n replace\n };\n\n if (acceptUnicodeChar && replace) {\n symbols[mode][replace] = symbols[mode][name];\n }\n} // Some abbreviations for commonly used strings.\n// This helps minify the code, and also spotting typos using jshint.\n// modes:\n\nconst math = \"math\";\nconst symbols_text = \"text\"; // fonts:\n\nconst main = \"main\";\nconst ams = \"ams\"; // groups:\n\nconst accent = \"accent-token\";\nconst bin = \"bin\";\nconst symbols_close = \"close\";\nconst inner = \"inner\";\nconst mathord = \"mathord\";\nconst op = \"op-token\";\nconst symbols_open = \"open\";\nconst punct = \"punct\";\nconst rel = \"rel\";\nconst spacing = \"spacing\";\nconst textord = \"textord\"; // Now comes the symbol table\n// Relation Symbols\n\ndefineSymbol(math, main, rel, \"\\u2261\", \"\\\\equiv\", true);\ndefineSymbol(math, main, rel, \"\\u227a\", \"\\\\prec\", true);\ndefineSymbol(math, main, rel, \"\\u227b\", \"\\\\succ\", true);\ndefineSymbol(math, main, rel, \"\\u223c\", \"\\\\sim\", true);\ndefineSymbol(math, main, rel, \"\\u22a5\", \"\\\\perp\");\ndefineSymbol(math, main, rel, \"\\u2aaf\", \"\\\\preceq\", true);\ndefineSymbol(math, main, rel, \"\\u2ab0\", \"\\\\succeq\", true);\ndefineSymbol(math, main, rel, \"\\u2243\", \"\\\\simeq\", true);\ndefineSymbol(math, main, rel, \"\\u2223\", \"\\\\mid\", true);\ndefineSymbol(math, main, rel, \"\\u226a\", \"\\\\ll\", true);\ndefineSymbol(math, main, rel, \"\\u226b\", \"\\\\gg\", true);\ndefineSymbol(math, main, rel, \"\\u224d\", \"\\\\asymp\", true);\ndefineSymbol(math, main, rel, \"\\u2225\", \"\\\\parallel\");\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\bowtie\", true);\ndefineSymbol(math, main, rel, \"\\u2323\", \"\\\\smile\", true);\ndefineSymbol(math, main, rel, \"\\u2291\", \"\\\\sqsubseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2292\", \"\\\\sqsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2250\", \"\\\\doteq\", true);\ndefineSymbol(math, main, rel, \"\\u2322\", \"\\\\frown\", true);\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\ni\", true);\ndefineSymbol(math, main, rel, \"\\u221d\", \"\\\\propto\", true);\ndefineSymbol(math, main, rel, \"\\u22a2\", \"\\\\vdash\", true);\ndefineSymbol(math, main, rel, \"\\u22a3\", \"\\\\dashv\", true);\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\owns\"); // Punctuation\n\ndefineSymbol(math, main, punct, \"\\u002e\", \"\\\\ldotp\");\ndefineSymbol(math, main, punct, \"\\u22c5\", \"\\\\cdotp\"); // Misc Symbols\n\ndefineSymbol(math, main, textord, \"\\u0023\", \"\\\\#\");\ndefineSymbol(symbols_text, main, textord, \"\\u0023\", \"\\\\#\");\ndefineSymbol(math, main, textord, \"\\u0026\", \"\\\\&\");\ndefineSymbol(symbols_text, main, textord, \"\\u0026\", \"\\\\&\");\ndefineSymbol(math, main, textord, \"\\u2135\", \"\\\\aleph\", true);\ndefineSymbol(math, main, textord, \"\\u2200\", \"\\\\forall\", true);\ndefineSymbol(math, main, textord, \"\\u210f\", \"\\\\hbar\", true);\ndefineSymbol(math, main, textord, \"\\u2203\", \"\\\\exists\", true);\ndefineSymbol(math, main, textord, \"\\u2207\", \"\\\\nabla\", true);\ndefineSymbol(math, main, textord, \"\\u266d\", \"\\\\flat\", true);\ndefineSymbol(math, main, textord, \"\\u2113\", \"\\\\ell\", true);\ndefineSymbol(math, main, textord, \"\\u266e\", \"\\\\natural\", true);\ndefineSymbol(math, main, textord, \"\\u2663\", \"\\\\clubsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2118\", \"\\\\wp\", true);\ndefineSymbol(math, main, textord, \"\\u266f\", \"\\\\sharp\", true);\ndefineSymbol(math, main, textord, \"\\u2662\", \"\\\\diamondsuit\", true);\ndefineSymbol(math, main, textord, \"\\u211c\", \"\\\\Re\", true);\ndefineSymbol(math, main, textord, \"\\u2661\", \"\\\\heartsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2111\", \"\\\\Im\", true);\ndefineSymbol(math, main, textord, \"\\u2660\", \"\\\\spadesuit\", true);\ndefineSymbol(math, main, textord, \"\\u00a7\", \"\\\\S\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00a7\", \"\\\\S\");\ndefineSymbol(math, main, textord, \"\\u00b6\", \"\\\\P\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00b6\", \"\\\\P\"); // Math and Text\n\ndefineSymbol(math, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(symbols_text, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(symbols_text, main, textord, \"\\u2020\", \"\\\\textdagger\");\ndefineSymbol(math, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(symbols_text, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(symbols_text, main, textord, \"\\u2021\", \"\\\\textdaggerdbl\"); // Large Delimiters\n\ndefineSymbol(math, main, symbols_close, \"\\u23b1\", \"\\\\rmoustache\", true);\ndefineSymbol(math, main, symbols_open, \"\\u23b0\", \"\\\\lmoustache\", true);\ndefineSymbol(math, main, symbols_close, \"\\u27ef\", \"\\\\rgroup\", true);\ndefineSymbol(math, main, symbols_open, \"\\u27ee\", \"\\\\lgroup\", true); // Binary Operators\n\ndefineSymbol(math, main, bin, \"\\u2213\", \"\\\\mp\", true);\ndefineSymbol(math, main, bin, \"\\u2296\", \"\\\\ominus\", true);\ndefineSymbol(math, main, bin, \"\\u228e\", \"\\\\uplus\", true);\ndefineSymbol(math, main, bin, \"\\u2293\", \"\\\\sqcap\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"\\\\ast\");\ndefineSymbol(math, main, bin, \"\\u2294\", \"\\\\sqcup\", true);\ndefineSymbol(math, main, bin, \"\\u25ef\", \"\\\\bigcirc\", true);\ndefineSymbol(math, main, bin, \"\\u2219\", \"\\\\bullet\", true);\ndefineSymbol(math, main, bin, \"\\u2021\", \"\\\\ddagger\");\ndefineSymbol(math, main, bin, \"\\u2240\", \"\\\\wr\", true);\ndefineSymbol(math, main, bin, \"\\u2a3f\", \"\\\\amalg\");\ndefineSymbol(math, main, bin, \"\\u0026\", \"\\\\And\"); // from amsmath\n// Arrow Symbols\n\ndefineSymbol(math, main, rel, \"\\u27f5\", \"\\\\longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d0\", \"\\\\Leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f8\", \"\\\\Longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f6\", \"\\\\longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d2\", \"\\\\Rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f9\", \"\\\\Longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2194\", \"\\\\leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f7\", \"\\\\longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d4\", \"\\\\Leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27fa\", \"\\\\Longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21a6\", \"\\\\mapsto\", true);\ndefineSymbol(math, main, rel, \"\\u27fc\", \"\\\\longmapsto\", true);\ndefineSymbol(math, main, rel, \"\\u2197\", \"\\\\nearrow\", true);\ndefineSymbol(math, main, rel, \"\\u21a9\", \"\\\\hookleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21aa\", \"\\\\hookrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2198\", \"\\\\searrow\", true);\ndefineSymbol(math, main, rel, \"\\u21bc\", \"\\\\leftharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u21c0\", \"\\\\rightharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u2199\", \"\\\\swarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21bd\", \"\\\\leftharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u21c1\", \"\\\\rightharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u2196\", \"\\\\nwarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21cc\", \"\\\\rightleftharpoons\", true); // AMS Negated Binary Relations\n\ndefineSymbol(math, ams, rel, \"\\u226e\", \"\\\\nless\", true); // Symbol names preceded by \"@\" each have a corresponding macro.\n\ndefineSymbol(math, ams, rel, \"\\ue010\", \"\\\\@nleqslant\");\ndefineSymbol(math, ams, rel, \"\\ue011\", \"\\\\@nleqq\");\ndefineSymbol(math, ams, rel, \"\\u2a87\", \"\\\\lneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2268\", \"\\\\lneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue00c\", \"\\\\@lvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e6\", \"\\\\lnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a89\", \"\\\\lnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2280\", \"\\\\nprec\", true); // unicode-math maps \\u22e0 to \\npreccurlyeq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u22e0\", \"\\\\npreceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22e8\", \"\\\\precnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab9\", \"\\\\precnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2241\", \"\\\\nsim\", true);\ndefineSymbol(math, ams, rel, \"\\ue006\", \"\\\\@nshortmid\");\ndefineSymbol(math, ams, rel, \"\\u2224\", \"\\\\nmid\", true);\ndefineSymbol(math, ams, rel, \"\\u22ac\", \"\\\\nvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u22ad\", \"\\\\nvDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22ea\", \"\\\\ntriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22ec\", \"\\\\ntrianglelefteq\", true);\ndefineSymbol(math, ams, rel, \"\\u228a\", \"\\\\subsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\ue01a\", \"\\\\@varsubsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acb\", \"\\\\subsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue017\", \"\\\\@varsubsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u226f\", \"\\\\ngtr\", true);\ndefineSymbol(math, ams, rel, \"\\ue00f\", \"\\\\@ngeqslant\");\ndefineSymbol(math, ams, rel, \"\\ue00e\", \"\\\\@ngeqq\");\ndefineSymbol(math, ams, rel, \"\\u2a88\", \"\\\\gneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2269\", \"\\\\gneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue00d\", \"\\\\@gvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e7\", \"\\\\gnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8a\", \"\\\\gnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2281\", \"\\\\nsucc\", true); // unicode-math maps \\u22e1 to \\nsucccurlyeq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u22e1\", \"\\\\nsucceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22e9\", \"\\\\succnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2aba\", \"\\\\succnapprox\", true); // unicode-math maps \\u2246 to \\simneqq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u2246\", \"\\\\ncong\", true);\ndefineSymbol(math, ams, rel, \"\\ue007\", \"\\\\@nshortparallel\");\ndefineSymbol(math, ams, rel, \"\\u2226\", \"\\\\nparallel\", true);\ndefineSymbol(math, ams, rel, \"\\u22af\", \"\\\\nVDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22eb\", \"\\\\ntriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22ed\", \"\\\\ntrianglerighteq\", true);\ndefineSymbol(math, ams, rel, \"\\ue018\", \"\\\\@nsupseteqq\");\ndefineSymbol(math, ams, rel, \"\\u228b\", \"\\\\supsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\ue01b\", \"\\\\@varsupsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acc\", \"\\\\supsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue019\", \"\\\\@varsupsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u22ae\", \"\\\\nVdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab5\", \"\\\\precneqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab6\", \"\\\\succneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue016\", \"\\\\@nsubseteqq\");\ndefineSymbol(math, ams, bin, \"\\u22b4\", \"\\\\unlhd\");\ndefineSymbol(math, ams, bin, \"\\u22b5\", \"\\\\unrhd\"); // AMS Negated Arrows\n\ndefineSymbol(math, ams, rel, \"\\u219a\", \"\\\\nleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219b\", \"\\\\nrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21cd\", \"\\\\nLeftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21cf\", \"\\\\nRightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21ae\", \"\\\\nleftrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21ce\", \"\\\\nLeftrightarrow\", true); // AMS Misc\n\ndefineSymbol(math, ams, rel, \"\\u25b3\", \"\\\\vartriangle\");\ndefineSymbol(math, ams, textord, \"\\u210f\", \"\\\\hslash\");\ndefineSymbol(math, ams, textord, \"\\u25bd\", \"\\\\triangledown\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\lozenge\");\ndefineSymbol(math, ams, textord, \"\\u24c8\", \"\\\\circledS\");\ndefineSymbol(math, ams, textord, \"\\u00ae\", \"\\\\circledR\");\ndefineSymbol(symbols_text, ams, textord, \"\\u00ae\", \"\\\\circledR\");\ndefineSymbol(math, ams, textord, \"\\u2221\", \"\\\\measuredangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2204\", \"\\\\nexists\");\ndefineSymbol(math, ams, textord, \"\\u2127\", \"\\\\mho\");\ndefineSymbol(math, ams, textord, \"\\u2132\", \"\\\\Finv\", true);\ndefineSymbol(math, ams, textord, \"\\u2141\", \"\\\\Game\", true);\ndefineSymbol(math, ams, textord, \"\\u2035\", \"\\\\backprime\");\ndefineSymbol(math, ams, textord, \"\\u25b2\", \"\\\\blacktriangle\");\ndefineSymbol(math, ams, textord, \"\\u25bc\", \"\\\\blacktriangledown\");\ndefineSymbol(math, ams, textord, \"\\u25a0\", \"\\\\blacksquare\");\ndefineSymbol(math, ams, textord, \"\\u29eb\", \"\\\\blacklozenge\");\ndefineSymbol(math, ams, textord, \"\\u2605\", \"\\\\bigstar\");\ndefineSymbol(math, ams, textord, \"\\u2222\", \"\\\\sphericalangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2201\", \"\\\\complement\", true); // unicode-math maps U+F0 to \\matheth. We map to AMS function \\eth\n\ndefineSymbol(math, ams, textord, \"\\u00f0\", \"\\\\eth\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00f0\", \"\\u00f0\");\ndefineSymbol(math, ams, textord, \"\\u2571\", \"\\\\diagup\");\ndefineSymbol(math, ams, textord, \"\\u2572\", \"\\\\diagdown\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\square\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\Box\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\Diamond\"); // unicode-math maps U+A5 to \\mathyen. We map to AMS function \\yen\n\ndefineSymbol(math, ams, textord, \"\\u00a5\", \"\\\\yen\", true);\ndefineSymbol(symbols_text, ams, textord, \"\\u00a5\", \"\\\\yen\", true);\ndefineSymbol(math, ams, textord, \"\\u2713\", \"\\\\checkmark\", true);\ndefineSymbol(symbols_text, ams, textord, \"\\u2713\", \"\\\\checkmark\"); // AMS Hebrew\n\ndefineSymbol(math, ams, textord, \"\\u2136\", \"\\\\beth\", true);\ndefineSymbol(math, ams, textord, \"\\u2138\", \"\\\\daleth\", true);\ndefineSymbol(math, ams, textord, \"\\u2137\", \"\\\\gimel\", true); // AMS Greek\n\ndefineSymbol(math, ams, textord, \"\\u03dd\", \"\\\\digamma\", true);\ndefineSymbol(math, ams, textord, \"\\u03f0\", \"\\\\varkappa\"); // AMS Delimiters\n\ndefineSymbol(math, ams, symbols_open, \"\\u250c\", \"\\\\@ulcorner\", true);\ndefineSymbol(math, ams, symbols_close, \"\\u2510\", \"\\\\@urcorner\", true);\ndefineSymbol(math, ams, symbols_open, \"\\u2514\", \"\\\\@llcorner\", true);\ndefineSymbol(math, ams, symbols_close, \"\\u2518\", \"\\\\@lrcorner\", true); // AMS Binary Relations\n\ndefineSymbol(math, ams, rel, \"\\u2266\", \"\\\\leqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2a7d\", \"\\\\leqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2a95\", \"\\\\eqslantless\", true);\ndefineSymbol(math, ams, rel, \"\\u2272\", \"\\\\lesssim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a85\", \"\\\\lessapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u224a\", \"\\\\approxeq\", true);\ndefineSymbol(math, ams, bin, \"\\u22d6\", \"\\\\lessdot\");\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\lll\", true);\ndefineSymbol(math, ams, rel, \"\\u2276\", \"\\\\lessgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u22da\", \"\\\\lesseqgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8b\", \"\\\\lesseqqgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\doteqdot\");\ndefineSymbol(math, ams, rel, \"\\u2253\", \"\\\\risingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u2252\", \"\\\\fallingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u223d\", \"\\\\backsim\", true);\ndefineSymbol(math, ams, rel, \"\\u22cd\", \"\\\\backsimeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2ac5\", \"\\\\subseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22d0\", \"\\\\Subset\", true);\ndefineSymbol(math, ams, rel, \"\\u228f\", \"\\\\sqsubset\", true);\ndefineSymbol(math, ams, rel, \"\\u227c\", \"\\\\preccurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22de\", \"\\\\curlyeqprec\", true);\ndefineSymbol(math, ams, rel, \"\\u227e\", \"\\\\precsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab7\", \"\\\\precapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22b2\", \"\\\\vartriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22b4\", \"\\\\trianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u22a8\", \"\\\\vDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22aa\", \"\\\\Vvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2323\", \"\\\\smallsmile\");\ndefineSymbol(math, ams, rel, \"\\u2322\", \"\\\\smallfrown\");\ndefineSymbol(math, ams, rel, \"\\u224f\", \"\\\\bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u224e\", \"\\\\Bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2267\", \"\\\\geqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2a7e\", \"\\\\geqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2a96\", \"\\\\eqslantgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2273\", \"\\\\gtrsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a86\", \"\\\\gtrapprox\", true);\ndefineSymbol(math, ams, bin, \"\\u22d7\", \"\\\\gtrdot\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\ggg\", true);\ndefineSymbol(math, ams, rel, \"\\u2277\", \"\\\\gtrless\", true);\ndefineSymbol(math, ams, rel, \"\\u22db\", \"\\\\gtreqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8c\", \"\\\\gtreqqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2256\", \"\\\\eqcirc\", true);\ndefineSymbol(math, ams, rel, \"\\u2257\", \"\\\\circeq\", true);\ndefineSymbol(math, ams, rel, \"\\u225c\", \"\\\\triangleq\", true);\ndefineSymbol(math, ams, rel, \"\\u223c\", \"\\\\thicksim\");\ndefineSymbol(math, ams, rel, \"\\u2248\", \"\\\\thickapprox\");\ndefineSymbol(math, ams, rel, \"\\u2ac6\", \"\\\\supseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22d1\", \"\\\\Supset\", true);\ndefineSymbol(math, ams, rel, \"\\u2290\", \"\\\\sqsupset\", true);\ndefineSymbol(math, ams, rel, \"\\u227d\", \"\\\\succcurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22df\", \"\\\\curlyeqsucc\", true);\ndefineSymbol(math, ams, rel, \"\\u227f\", \"\\\\succsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab8\", \"\\\\succapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22b3\", \"\\\\vartriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22b5\", \"\\\\trianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\u22a9\", \"\\\\Vdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2223\", \"\\\\shortmid\");\ndefineSymbol(math, ams, rel, \"\\u2225\", \"\\\\shortparallel\");\ndefineSymbol(math, ams, rel, \"\\u226c\", \"\\\\between\", true);\ndefineSymbol(math, ams, rel, \"\\u22d4\", \"\\\\pitchfork\", true);\ndefineSymbol(math, ams, rel, \"\\u221d\", \"\\\\varpropto\");\ndefineSymbol(math, ams, rel, \"\\u25c0\", \"\\\\blacktriangleleft\"); // unicode-math says that \\therefore is a mathord atom.\n// We kept the amssymb atom type, which is rel.\n\ndefineSymbol(math, ams, rel, \"\\u2234\", \"\\\\therefore\", true);\ndefineSymbol(math, ams, rel, \"\\u220d\", \"\\\\backepsilon\");\ndefineSymbol(math, ams, rel, \"\\u25b6\", \"\\\\blacktriangleright\"); // unicode-math says that \\because is a mathord atom.\n// We kept the amssymb atom type, which is rel.\n\ndefineSymbol(math, ams, rel, \"\\u2235\", \"\\\\because\", true);\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\llless\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\gggtr\");\ndefineSymbol(math, ams, bin, \"\\u22b2\", \"\\\\lhd\");\ndefineSymbol(math, ams, bin, \"\\u22b3\", \"\\\\rhd\");\ndefineSymbol(math, ams, rel, \"\\u2242\", \"\\\\eqsim\", true);\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\Join\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\Doteq\", true); // AMS Binary Operators\n\ndefineSymbol(math, ams, bin, \"\\u2214\", \"\\\\dotplus\", true);\ndefineSymbol(math, ams, bin, \"\\u2216\", \"\\\\smallsetminus\");\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\Cap\", true);\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\Cup\", true);\ndefineSymbol(math, ams, bin, \"\\u2a5e\", \"\\\\doublebarwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u229f\", \"\\\\boxminus\", true);\ndefineSymbol(math, ams, bin, \"\\u229e\", \"\\\\boxplus\", true);\ndefineSymbol(math, ams, bin, \"\\u22c7\", \"\\\\divideontimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22c9\", \"\\\\ltimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22ca\", \"\\\\rtimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cb\", \"\\\\leftthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cc\", \"\\\\rightthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cf\", \"\\\\curlywedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22ce\", \"\\\\curlyvee\", true);\ndefineSymbol(math, ams, bin, \"\\u229d\", \"\\\\circleddash\", true);\ndefineSymbol(math, ams, bin, \"\\u229b\", \"\\\\circledast\", true);\ndefineSymbol(math, ams, bin, \"\\u22c5\", \"\\\\centerdot\");\ndefineSymbol(math, ams, bin, \"\\u22ba\", \"\\\\intercal\", true);\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\doublecap\");\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\doublecup\");\ndefineSymbol(math, ams, bin, \"\\u22a0\", \"\\\\boxtimes\", true); // AMS Arrows\n// Note: unicode-math maps \\u21e2 to their own function \\rightdasharrow.\n// We'll map it to AMS function \\dashrightarrow. It produces the same atom.\n\ndefineSymbol(math, ams, rel, \"\\u21e2\", \"\\\\dashrightarrow\", true); // unicode-math maps \\u21e0 to \\leftdasharrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21e0\", \"\\\\dashleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21c7\", \"\\\\leftleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21c6\", \"\\\\leftrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21da\", \"\\\\Lleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219e\", \"\\\\twoheadleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21a2\", \"\\\\leftarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21ab\", \"\\\\looparrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21cb\", \"\\\\leftrightharpoons\", true);\ndefineSymbol(math, ams, rel, \"\\u21b6\", \"\\\\curvearrowleft\", true); // unicode-math maps \\u21ba to \\acwopencirclearrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21ba\", \"\\\\circlearrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21b0\", \"\\\\Lsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21c8\", \"\\\\upuparrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21bf\", \"\\\\upharpoonleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21c3\", \"\\\\downharpoonleft\", true);\ndefineSymbol(math, main, rel, \"\\u22b6\", \"\\\\origof\", true); // not in font\n\ndefineSymbol(math, main, rel, \"\\u22b7\", \"\\\\imageof\", true); // not in font\n\ndefineSymbol(math, ams, rel, \"\\u22b8\", \"\\\\multimap\", true);\ndefineSymbol(math, ams, rel, \"\\u21ad\", \"\\\\leftrightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21c9\", \"\\\\rightrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21c4\", \"\\\\rightleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21a0\", \"\\\\twoheadrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21a3\", \"\\\\rightarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21ac\", \"\\\\looparrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21b7\", \"\\\\curvearrowright\", true); // unicode-math maps \\u21bb to \\cwopencirclearrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21bb\", \"\\\\circlearrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21b1\", \"\\\\Rsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21ca\", \"\\\\downdownarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\upharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21c2\", \"\\\\downharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\rightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\leadsto\");\ndefineSymbol(math, ams, rel, \"\\u21db\", \"\\\\Rrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\restriction\");\ndefineSymbol(math, main, textord, \"\\u2018\", \"`\");\ndefineSymbol(math, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(symbols_text, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(symbols_text, main, textord, \"$\", \"\\\\textdollar\");\ndefineSymbol(math, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(symbols_text, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(math, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(symbols_text, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(symbols_text, main, textord, \"_\", \"\\\\textunderscore\");\ndefineSymbol(math, main, textord, \"\\u2220\", \"\\\\angle\", true);\ndefineSymbol(math, main, textord, \"\\u221e\", \"\\\\infty\", true);\ndefineSymbol(math, main, textord, \"\\u2032\", \"\\\\prime\");\ndefineSymbol(math, main, textord, \"\\u25b3\", \"\\\\triangle\");\ndefineSymbol(math, main, textord, \"\\u0393\", \"\\\\Gamma\", true);\ndefineSymbol(math, main, textord, \"\\u0394\", \"\\\\Delta\", true);\ndefineSymbol(math, main, textord, \"\\u0398\", \"\\\\Theta\", true);\ndefineSymbol(math, main, textord, \"\\u039b\", \"\\\\Lambda\", true);\ndefineSymbol(math, main, textord, \"\\u039e\", \"\\\\Xi\", true);\ndefineSymbol(math, main, textord, \"\\u03a0\", \"\\\\Pi\", true);\ndefineSymbol(math, main, textord, \"\\u03a3\", \"\\\\Sigma\", true);\ndefineSymbol(math, main, textord, \"\\u03a5\", \"\\\\Upsilon\", true);\ndefineSymbol(math, main, textord, \"\\u03a6\", \"\\\\Phi\", true);\ndefineSymbol(math, main, textord, \"\\u03a8\", \"\\\\Psi\", true);\ndefineSymbol(math, main, textord, \"\\u03a9\", \"\\\\Omega\", true);\ndefineSymbol(math, main, textord, \"A\", \"\\u0391\");\ndefineSymbol(math, main, textord, \"B\", \"\\u0392\");\ndefineSymbol(math, main, textord, \"E\", \"\\u0395\");\ndefineSymbol(math, main, textord, \"Z\", \"\\u0396\");\ndefineSymbol(math, main, textord, \"H\", \"\\u0397\");\ndefineSymbol(math, main, textord, \"I\", \"\\u0399\");\ndefineSymbol(math, main, textord, \"K\", \"\\u039A\");\ndefineSymbol(math, main, textord, \"M\", \"\\u039C\");\ndefineSymbol(math, main, textord, \"N\", \"\\u039D\");\ndefineSymbol(math, main, textord, \"O\", \"\\u039F\");\ndefineSymbol(math, main, textord, \"P\", \"\\u03A1\");\ndefineSymbol(math, main, textord, \"T\", \"\\u03A4\");\ndefineSymbol(math, main, textord, \"X\", \"\\u03A7\");\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\neg\", true);\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\lnot\");\ndefineSymbol(math, main, textord, \"\\u22a4\", \"\\\\top\");\ndefineSymbol(math, main, textord, \"\\u22a5\", \"\\\\bot\");\ndefineSymbol(math, main, textord, \"\\u2205\", \"\\\\emptyset\");\ndefineSymbol(math, ams, textord, \"\\u2205\", \"\\\\varnothing\");\ndefineSymbol(math, main, mathord, \"\\u03b1\", \"\\\\alpha\", true);\ndefineSymbol(math, main, mathord, \"\\u03b2\", \"\\\\beta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b3\", \"\\\\gamma\", true);\ndefineSymbol(math, main, mathord, \"\\u03b4\", \"\\\\delta\", true);\ndefineSymbol(math, main, mathord, \"\\u03f5\", \"\\\\epsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03b6\", \"\\\\zeta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b7\", \"\\\\eta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b8\", \"\\\\theta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b9\", \"\\\\iota\", true);\ndefineSymbol(math, main, mathord, \"\\u03ba\", \"\\\\kappa\", true);\ndefineSymbol(math, main, mathord, \"\\u03bb\", \"\\\\lambda\", true);\ndefineSymbol(math, main, mathord, \"\\u03bc\", \"\\\\mu\", true);\ndefineSymbol(math, main, mathord, \"\\u03bd\", \"\\\\nu\", true);\ndefineSymbol(math, main, mathord, \"\\u03be\", \"\\\\xi\", true);\ndefineSymbol(math, main, mathord, \"\\u03bf\", \"\\\\omicron\", true);\ndefineSymbol(math, main, mathord, \"\\u03c0\", \"\\\\pi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c1\", \"\\\\rho\", true);\ndefineSymbol(math, main, mathord, \"\\u03c3\", \"\\\\sigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03c4\", \"\\\\tau\", true);\ndefineSymbol(math, main, mathord, \"\\u03c5\", \"\\\\upsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03d5\", \"\\\\phi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c7\", \"\\\\chi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c8\", \"\\\\psi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c9\", \"\\\\omega\", true);\ndefineSymbol(math, main, mathord, \"\\u03b5\", \"\\\\varepsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03d1\", \"\\\\vartheta\", true);\ndefineSymbol(math, main, mathord, \"\\u03d6\", \"\\\\varpi\", true);\ndefineSymbol(math, main, mathord, \"\\u03f1\", \"\\\\varrho\", true);\ndefineSymbol(math, main, mathord, \"\\u03c2\", \"\\\\varsigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03c6\", \"\\\\varphi\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"*\", true);\ndefineSymbol(math, main, bin, \"+\", \"+\");\ndefineSymbol(math, main, bin, \"\\u2212\", \"-\", true);\ndefineSymbol(math, main, bin, \"\\u22c5\", \"\\\\cdot\", true);\ndefineSymbol(math, main, bin, \"\\u2218\", \"\\\\circ\", true);\ndefineSymbol(math, main, bin, \"\\u00f7\", \"\\\\div\", true);\ndefineSymbol(math, main, bin, \"\\u00b1\", \"\\\\pm\", true);\ndefineSymbol(math, main, bin, \"\\u00d7\", \"\\\\times\", true);\ndefineSymbol(math, main, bin, \"\\u2229\", \"\\\\cap\", true);\ndefineSymbol(math, main, bin, \"\\u222a\", \"\\\\cup\", true);\ndefineSymbol(math, main, bin, \"\\u2216\", \"\\\\setminus\", true);\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\land\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\lor\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\wedge\", true);\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\vee\", true);\ndefineSymbol(math, main, textord, \"\\u221a\", \"\\\\surd\");\ndefineSymbol(math, main, symbols_open, \"\\u27e8\", \"\\\\langle\", true);\ndefineSymbol(math, main, symbols_open, \"\\u2223\", \"\\\\lvert\");\ndefineSymbol(math, main, symbols_open, \"\\u2225\", \"\\\\lVert\");\ndefineSymbol(math, main, symbols_close, \"?\", \"?\");\ndefineSymbol(math, main, symbols_close, \"!\", \"!\");\ndefineSymbol(math, main, symbols_close, \"\\u27e9\", \"\\\\rangle\", true);\ndefineSymbol(math, main, symbols_close, \"\\u2223\", \"\\\\rvert\");\ndefineSymbol(math, main, symbols_close, \"\\u2225\", \"\\\\rVert\");\ndefineSymbol(math, main, rel, \"=\", \"=\");\ndefineSymbol(math, main, rel, \":\", \":\");\ndefineSymbol(math, main, rel, \"\\u2248\", \"\\\\approx\", true);\ndefineSymbol(math, main, rel, \"\\u2245\", \"\\\\cong\", true);\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\ge\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\geq\", true);\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\gets\");\ndefineSymbol(math, main, rel, \">\", \"\\\\gt\", true);\ndefineSymbol(math, main, rel, \"\\u2208\", \"\\\\in\", true);\ndefineSymbol(math, main, rel, \"\\ue020\", \"\\\\@not\");\ndefineSymbol(math, main, rel, \"\\u2282\", \"\\\\subset\", true);\ndefineSymbol(math, main, rel, \"\\u2283\", \"\\\\supset\", true);\ndefineSymbol(math, main, rel, \"\\u2286\", \"\\\\subseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2287\", \"\\\\supseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2288\", \"\\\\nsubseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2289\", \"\\\\nsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u22a8\", \"\\\\models\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\le\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\leq\", true);\ndefineSymbol(math, main, rel, \"<\", \"\\\\lt\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\to\");\ndefineSymbol(math, ams, rel, \"\\u2271\", \"\\\\ngeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2270\", \"\\\\nleq\", true);\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\space\"); // Ref: LaTeX Source 2e: \\DeclareRobustCommand{\\nobreakspace}{%\n\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\nobreakspace\");\ndefineSymbol(symbols_text, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(symbols_text, main, spacing, \"\\u00a0\", \" \");\ndefineSymbol(symbols_text, main, spacing, \"\\u00a0\", \"\\\\space\");\ndefineSymbol(symbols_text, main, spacing, \"\\u00a0\", \"\\\\nobreakspace\");\ndefineSymbol(math, main, spacing, null, \"\\\\nobreak\");\ndefineSymbol(math, main, spacing, null, \"\\\\allowbreak\");\ndefineSymbol(math, main, punct, \",\", \",\");\ndefineSymbol(math, main, punct, \";\", \";\");\ndefineSymbol(math, ams, bin, \"\\u22bc\", \"\\\\barwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22bb\", \"\\\\veebar\", true);\ndefineSymbol(math, main, bin, \"\\u2299\", \"\\\\odot\", true);\ndefineSymbol(math, main, bin, \"\\u2295\", \"\\\\oplus\", true);\ndefineSymbol(math, main, bin, \"\\u2297\", \"\\\\otimes\", true);\ndefineSymbol(math, main, textord, \"\\u2202\", \"\\\\partial\", true);\ndefineSymbol(math, main, bin, \"\\u2298\", \"\\\\oslash\", true);\ndefineSymbol(math, ams, bin, \"\\u229a\", \"\\\\circledcirc\", true);\ndefineSymbol(math, ams, bin, \"\\u22a1\", \"\\\\boxdot\", true);\ndefineSymbol(math, main, bin, \"\\u25b3\", \"\\\\bigtriangleup\");\ndefineSymbol(math, main, bin, \"\\u25bd\", \"\\\\bigtriangledown\");\ndefineSymbol(math, main, bin, \"\\u2020\", \"\\\\dagger\");\ndefineSymbol(math, main, bin, \"\\u22c4\", \"\\\\diamond\");\ndefineSymbol(math, main, bin, \"\\u22c6\", \"\\\\star\");\ndefineSymbol(math, main, bin, \"\\u25c3\", \"\\\\triangleleft\");\ndefineSymbol(math, main, bin, \"\\u25b9\", \"\\\\triangleright\");\ndefineSymbol(math, main, symbols_open, \"{\", \"\\\\{\");\ndefineSymbol(symbols_text, main, textord, \"{\", \"\\\\{\");\ndefineSymbol(symbols_text, main, textord, \"{\", \"\\\\textbraceleft\");\ndefineSymbol(math, main, symbols_close, \"}\", \"\\\\}\");\ndefineSymbol(symbols_text, main, textord, \"}\", \"\\\\}\");\ndefineSymbol(symbols_text, main, textord, \"}\", \"\\\\textbraceright\");\ndefineSymbol(math, main, symbols_open, \"{\", \"\\\\lbrace\");\ndefineSymbol(math, main, symbols_close, \"}\", \"\\\\rbrace\");\ndefineSymbol(math, main, symbols_open, \"[\", \"\\\\lbrack\", true);\ndefineSymbol(symbols_text, main, textord, \"[\", \"\\\\lbrack\", true);\ndefineSymbol(math, main, symbols_close, \"]\", \"\\\\rbrack\", true);\ndefineSymbol(symbols_text, main, textord, \"]\", \"\\\\rbrack\", true);\ndefineSymbol(math, main, symbols_open, \"(\", \"\\\\lparen\", true);\ndefineSymbol(math, main, symbols_close, \")\", \"\\\\rparen\", true);\ndefineSymbol(symbols_text, main, textord, \"<\", \"\\\\textless\", true); // in T1 fontenc\n\ndefineSymbol(symbols_text, main, textord, \">\", \"\\\\textgreater\", true); // in T1 fontenc\n\ndefineSymbol(math, main, symbols_open, \"\\u230a\", \"\\\\lfloor\", true);\ndefineSymbol(math, main, symbols_close, \"\\u230b\", \"\\\\rfloor\", true);\ndefineSymbol(math, main, symbols_open, \"\\u2308\", \"\\\\lceil\", true);\ndefineSymbol(math, main, symbols_close, \"\\u2309\", \"\\\\rceil\", true);\ndefineSymbol(math, main, textord, \"\\\\\", \"\\\\backslash\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"|\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"\\\\vert\");\ndefineSymbol(symbols_text, main, textord, \"|\", \"\\\\textbar\", true); // in T1 fontenc\n\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\|\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\Vert\");\ndefineSymbol(symbols_text, main, textord, \"\\u2225\", \"\\\\textbardbl\");\ndefineSymbol(symbols_text, main, textord, \"~\", \"\\\\textasciitilde\");\ndefineSymbol(symbols_text, main, textord, \"\\\\\", \"\\\\textbackslash\");\ndefineSymbol(symbols_text, main, textord, \"^\", \"\\\\textasciicircum\");\ndefineSymbol(math, main, rel, \"\\u2191\", \"\\\\uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d1\", \"\\\\Uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u2193\", \"\\\\downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d3\", \"\\\\Downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2195\", \"\\\\updownarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d5\", \"\\\\Updownarrow\", true);\ndefineSymbol(math, main, op, \"\\u2210\", \"\\\\coprod\");\ndefineSymbol(math, main, op, \"\\u22c1\", \"\\\\bigvee\");\ndefineSymbol(math, main, op, \"\\u22c0\", \"\\\\bigwedge\");\ndefineSymbol(math, main, op, \"\\u2a04\", \"\\\\biguplus\");\ndefineSymbol(math, main, op, \"\\u22c2\", \"\\\\bigcap\");\ndefineSymbol(math, main, op, \"\\u22c3\", \"\\\\bigcup\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\int\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\intop\");\ndefineSymbol(math, main, op, \"\\u222c\", \"\\\\iint\");\ndefineSymbol(math, main, op, \"\\u222d\", \"\\\\iiint\");\ndefineSymbol(math, main, op, \"\\u220f\", \"\\\\prod\");\ndefineSymbol(math, main, op, \"\\u2211\", \"\\\\sum\");\ndefineSymbol(math, main, op, \"\\u2a02\", \"\\\\bigotimes\");\ndefineSymbol(math, main, op, \"\\u2a01\", \"\\\\bigoplus\");\ndefineSymbol(math, main, op, \"\\u2a00\", \"\\\\bigodot\");\ndefineSymbol(math, main, op, \"\\u222e\", \"\\\\oint\");\ndefineSymbol(math, main, op, \"\\u222f\", \"\\\\oiint\");\ndefineSymbol(math, main, op, \"\\u2230\", \"\\\\oiiint\");\ndefineSymbol(math, main, op, \"\\u2a06\", \"\\\\bigsqcup\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\smallint\");\ndefineSymbol(symbols_text, main, inner, \"\\u2026\", \"\\\\textellipsis\");\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\mathellipsis\");\ndefineSymbol(symbols_text, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u22ef\", \"\\\\@cdots\", true);\ndefineSymbol(math, main, inner, \"\\u22f1\", \"\\\\ddots\", true); // \\vdots is a macro that uses one of these two symbols (with made-up names):\n\ndefineSymbol(math, main, textord, \"\\u22ee\", \"\\\\varvdots\");\ndefineSymbol(symbols_text, main, textord, \"\\u22ee\", \"\\\\varvdots\");\ndefineSymbol(math, main, accent, \"\\u02ca\", \"\\\\acute\");\ndefineSymbol(math, main, accent, \"\\u02cb\", \"\\\\grave\");\ndefineSymbol(math, main, accent, \"\\u00a8\", \"\\\\ddot\");\ndefineSymbol(math, main, accent, \"\\u007e\", \"\\\\tilde\");\ndefineSymbol(math, main, accent, \"\\u02c9\", \"\\\\bar\");\ndefineSymbol(math, main, accent, \"\\u02d8\", \"\\\\breve\");\ndefineSymbol(math, main, accent, \"\\u02c7\", \"\\\\check\");\ndefineSymbol(math, main, accent, \"\\u005e\", \"\\\\hat\");\ndefineSymbol(math, main, accent, \"\\u20d7\", \"\\\\vec\");\ndefineSymbol(math, main, accent, \"\\u02d9\", \"\\\\dot\");\ndefineSymbol(math, main, accent, \"\\u02da\", \"\\\\mathring\"); // \\imath and \\jmath should be invariant to \\mathrm, \\mathbf, etc., so use PUA\n\ndefineSymbol(math, main, mathord, \"\\ue131\", \"\\\\@imath\");\ndefineSymbol(math, main, mathord, \"\\ue237\", \"\\\\@jmath\");\ndefineSymbol(math, main, textord, \"\\u0131\", \"\\u0131\");\ndefineSymbol(math, main, textord, \"\\u0237\", \"\\u0237\");\ndefineSymbol(symbols_text, main, textord, \"\\u0131\", \"\\\\i\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u0237\", \"\\\\j\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00df\", \"\\\\ss\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00e6\", \"\\\\ae\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u0153\", \"\\\\oe\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00f8\", \"\\\\o\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00c6\", \"\\\\AE\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u0152\", \"\\\\OE\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00d8\", \"\\\\O\", true);\ndefineSymbol(symbols_text, main, accent, \"\\u02ca\", \"\\\\'\"); // acute\n\ndefineSymbol(symbols_text, main, accent, \"\\u02cb\", \"\\\\`\"); // grave\n\ndefineSymbol(symbols_text, main, accent, \"\\u02c6\", \"\\\\^\"); // circumflex\n\ndefineSymbol(symbols_text, main, accent, \"\\u02dc\", \"\\\\~\"); // tilde\n\ndefineSymbol(symbols_text, main, accent, \"\\u02c9\", \"\\\\=\"); // macron\n\ndefineSymbol(symbols_text, main, accent, \"\\u02d8\", \"\\\\u\"); // breve\n\ndefineSymbol(symbols_text, main, accent, \"\\u02d9\", \"\\\\.\"); // dot above\n\ndefineSymbol(symbols_text, main, accent, \"\\u00b8\", \"\\\\c\"); // cedilla\n\ndefineSymbol(symbols_text, main, accent, \"\\u02da\", \"\\\\r\"); // ring above\n\ndefineSymbol(symbols_text, main, accent, \"\\u02c7\", \"\\\\v\"); // caron\n\ndefineSymbol(symbols_text, main, accent, \"\\u00a8\", '\\\\\"'); // diaresis\n\ndefineSymbol(symbols_text, main, accent, \"\\u02dd\", \"\\\\H\"); // double acute\n\ndefineSymbol(symbols_text, main, accent, \"\\u25ef\", \"\\\\textcircled\"); // \\bigcirc glyph\n// These ligatures are detected and created in Parser.js's `formLigatures`.\n\nconst ligatures = {\n \"--\": true,\n \"---\": true,\n \"``\": true,\n \"''\": true\n};\ndefineSymbol(symbols_text, main, textord, \"\\u2013\", \"--\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u2013\", \"\\\\textendash\");\ndefineSymbol(symbols_text, main, textord, \"\\u2014\", \"---\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u2014\", \"\\\\textemdash\");\ndefineSymbol(symbols_text, main, textord, \"\\u2018\", \"`\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u2018\", \"\\\\textquoteleft\");\ndefineSymbol(symbols_text, main, textord, \"\\u2019\", \"'\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u2019\", \"\\\\textquoteright\");\ndefineSymbol(symbols_text, main, textord, \"\\u201c\", \"``\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u201c\", \"\\\\textquotedblleft\");\ndefineSymbol(symbols_text, main, textord, \"\\u201d\", \"''\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u201d\", \"\\\\textquotedblright\"); // \\degree from gensymb package\n\ndefineSymbol(math, main, textord, \"\\u00b0\", \"\\\\degree\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00b0\", \"\\\\degree\"); // \\textdegree from inputenc package\n\ndefineSymbol(symbols_text, main, textord, \"\\u00b0\", \"\\\\textdegree\", true); // TODO: In LaTeX, \\pounds can generate a different character in text and math\n// mode, but among our fonts, only Main-Regular defines this character \"163\".\n\ndefineSymbol(math, main, textord, \"\\u00a3\", \"\\\\pounds\");\ndefineSymbol(math, main, textord, \"\\u00a3\", \"\\\\mathsterling\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u00a3\", \"\\\\pounds\");\ndefineSymbol(symbols_text, main, textord, \"\\u00a3\", \"\\\\textsterling\", true);\ndefineSymbol(math, ams, textord, \"\\u2720\", \"\\\\maltese\");\ndefineSymbol(symbols_text, ams, textord, \"\\u2720\", \"\\\\maltese\"); // There are lots of symbols which are the same, so we add them in afterwards.\n// All of these are textords in math mode\n\nconst mathTextSymbols = \"0123456789/@.\\\"\";\n\nfor (let i = 0; i < mathTextSymbols.length; i++) {\n const ch = mathTextSymbols.charAt(i);\n defineSymbol(math, main, textord, ch, ch);\n} // All of these are textords in text mode\n\n\nconst textSymbols = \"0123456789!@*()-=+\\\";:?/.,\";\n\nfor (let i = 0; i < textSymbols.length; i++) {\n const ch = textSymbols.charAt(i);\n defineSymbol(symbols_text, main, textord, ch, ch);\n} // All of these are textords in text mode, and mathords in math mode\n\n\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\nfor (let i = 0; i < letters.length; i++) {\n const ch = letters.charAt(i);\n defineSymbol(math, main, mathord, ch, ch);\n defineSymbol(symbols_text, main, textord, ch, ch);\n} // Blackboard bold and script letters in Unicode range\n\n\ndefineSymbol(math, ams, textord, \"C\", \"\\u2102\"); // blackboard bold\n\ndefineSymbol(symbols_text, ams, textord, \"C\", \"\\u2102\");\ndefineSymbol(math, ams, textord, \"H\", \"\\u210D\");\ndefineSymbol(symbols_text, ams, textord, \"H\", \"\\u210D\");\ndefineSymbol(math, ams, textord, \"N\", \"\\u2115\");\ndefineSymbol(symbols_text, ams, textord, \"N\", \"\\u2115\");\ndefineSymbol(math, ams, textord, \"P\", \"\\u2119\");\ndefineSymbol(symbols_text, ams, textord, \"P\", \"\\u2119\");\ndefineSymbol(math, ams, textord, \"Q\", \"\\u211A\");\ndefineSymbol(symbols_text, ams, textord, \"Q\", \"\\u211A\");\ndefineSymbol(math, ams, textord, \"R\", \"\\u211D\");\ndefineSymbol(symbols_text, ams, textord, \"R\", \"\\u211D\");\ndefineSymbol(math, ams, textord, \"Z\", \"\\u2124\");\ndefineSymbol(symbols_text, ams, textord, \"Z\", \"\\u2124\");\ndefineSymbol(math, main, mathord, \"h\", \"\\u210E\"); // italic h, Planck constant\n\ndefineSymbol(symbols_text, main, mathord, \"h\", \"\\u210E\"); // The next loop loads wide (surrogate pair) characters.\n// We support some letters in the Unicode range U+1D400 to U+1D7FF,\n// Mathematical Alphanumeric Symbols.\n// Some editors do not deal well with wide characters. So don't write the\n// string into this file. Instead, create the string from the surrogate pair.\n\nlet wideChar = \"\";\n\nfor (let i = 0; i < letters.length; i++) {\n const ch = letters.charAt(i); // The hex numbers in the next line are a surrogate pair.\n // 0xD835 is the high surrogate for all letters in the range we support.\n // 0xDC00 is the low surrogate for bold A.\n\n wideChar = String.fromCharCode(0xD835, 0xDC00 + i); // A-Z a-z bold\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC34 + i); // A-Z a-z italic\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC68 + i); // A-Z a-z bold italic\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDD04 + i); // A-Z a-z Fraktur\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDD6C + i); // A-Z a-z bold Fraktur\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDDA0 + i); // A-Z a-z sans-serif\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDDD4 + i); // A-Z a-z sans bold\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDE08 + i); // A-Z a-z sans italic\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDE70 + i); // A-Z a-z monospace\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n\n if (i < 26) {\n // KaTeX fonts have only capital letters for blackboard bold and script.\n // See exception for k below.\n wideChar = String.fromCharCode(0xD835, 0xDD38 + i); // A-Z double struck\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC9C + i); // A-Z script\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n } // TODO: Add bold script when it is supported by a KaTeX font.\n\n} // \"k\" is the only double struck lower case letter in the KaTeX fonts.\n\n\nwideChar = String.fromCharCode(0xD835, 0xDD5C); // k double struck\n\ndefineSymbol(math, main, mathord, \"k\", wideChar);\ndefineSymbol(symbols_text, main, textord, \"k\", wideChar); // Next, some wide character numerals\n\nfor (let i = 0; i < 10; i++) {\n const ch = i.toString();\n wideChar = String.fromCharCode(0xD835, 0xDFCE + i); // 0-9 bold\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFE2 + i); // 0-9 sans serif\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFEC + i); // 0-9 bold sans\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFF6 + i); // 0-9 monospace\n\n defineSymbol(math, main, mathord, ch, wideChar);\n defineSymbol(symbols_text, main, textord, ch, wideChar);\n} // We add these Latin-1 letters as symbols for backwards-compatibility,\n// but they are not actually in the font, nor are they supported by the\n// Unicode accent mechanism, so they fall back to Times font and look ugly.\n// TODO(edemaine): Fix this.\n\n\nconst extraLatin = \"\\u00d0\\u00de\\u00fe\";\n\nfor (let i = 0; i < extraLatin.length; i++) {\n const ch = extraLatin.charAt(i);\n defineSymbol(math, main, mathord, ch, ch);\n defineSymbol(symbols_text, main, textord, ch, ch);\n}\n;// CONCATENATED MODULE: ./src/wide-character.js\n/**\n * This file provides support for Unicode range U+1D400 to U+1D7FF,\n * Mathematical Alphanumeric Symbols.\n *\n * Function wideCharacterFont takes a wide character as input and returns\n * the font information necessary to render it properly.\n */\n\n/**\n * Data below is from https://www.unicode.org/charts/PDF/U1D400.pdf\n * That document sorts characters into groups by font type, say bold or italic.\n *\n * In the arrays below, each subarray consists three elements:\n * * The CSS class of that group when in math mode.\n * * The CSS class of that group when in text mode.\n * * The font name, so that KaTeX can get font metrics.\n */\n\nconst wideLatinLetterData = [[\"mathbf\", \"textbf\", \"Main-Bold\"], // A-Z bold upright\n[\"mathbf\", \"textbf\", \"Main-Bold\"], // a-z bold upright\n[\"mathnormal\", \"textit\", \"Math-Italic\"], // A-Z italic\n[\"mathnormal\", \"textit\", \"Math-Italic\"], // a-z italic\n[\"boldsymbol\", \"boldsymbol\", \"Main-BoldItalic\"], // A-Z bold italic\n[\"boldsymbol\", \"boldsymbol\", \"Main-BoldItalic\"], // a-z bold italic\n// Map fancy A-Z letters to script, not calligraphic.\n// This aligns with unicode-math and math fonts (except Cambria Math).\n[\"mathscr\", \"textscr\", \"Script-Regular\"], // A-Z script\n[\"\", \"\", \"\"], // a-z script. No font\n[\"\", \"\", \"\"], // A-Z bold script. No font\n[\"\", \"\", \"\"], // a-z bold script. No font\n[\"mathfrak\", \"textfrak\", \"Fraktur-Regular\"], // A-Z Fraktur\n[\"mathfrak\", \"textfrak\", \"Fraktur-Regular\"], // a-z Fraktur\n[\"mathbb\", \"textbb\", \"AMS-Regular\"], // A-Z double-struck\n[\"mathbb\", \"textbb\", \"AMS-Regular\"], // k double-struck\n// Note that we are using a bold font, but font metrics for regular Fraktur.\n[\"mathboldfrak\", \"textboldfrak\", \"Fraktur-Regular\"], // A-Z bold Fraktur\n[\"mathboldfrak\", \"textboldfrak\", \"Fraktur-Regular\"], // a-z bold Fraktur\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // A-Z sans-serif\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // a-z sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // A-Z bold sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // a-z bold sans-serif\n[\"mathitsf\", \"textitsf\", \"SansSerif-Italic\"], // A-Z italic sans-serif\n[\"mathitsf\", \"textitsf\", \"SansSerif-Italic\"], // a-z italic sans-serif\n[\"\", \"\", \"\"], // A-Z bold italic sans. No font\n[\"\", \"\", \"\"], // a-z bold italic sans. No font\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"], // A-Z monospace\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"] // a-z monospace\n];\nconst wideNumeralData = [[\"mathbf\", \"textbf\", \"Main-Bold\"], // 0-9 bold\n[\"\", \"\", \"\"], // 0-9 double-struck. No KaTeX font.\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // 0-9 sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // 0-9 bold sans-serif\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"] // 0-9 monospace\n];\nconst wideCharacterFont = function (wideChar, mode) {\n // IE doesn't support codePointAt(). So work with the surrogate pair.\n const H = wideChar.charCodeAt(0); // high surrogate\n\n const L = wideChar.charCodeAt(1); // low surrogate\n\n const codePoint = (H - 0xD800) * 0x400 + (L - 0xDC00) + 0x10000;\n const j = mode === \"math\" ? 0 : 1; // column index for CSS class.\n\n if (0x1D400 <= codePoint && codePoint < 0x1D6A4) {\n // wideLatinLetterData contains exactly 26 chars on each row.\n // So we can calculate the relevant row. No traverse necessary.\n const i = Math.floor((codePoint - 0x1D400) / 26);\n return [wideLatinLetterData[i][2], wideLatinLetterData[i][j]];\n } else if (0x1D7CE <= codePoint && codePoint <= 0x1D7FF) {\n // Numerals, ten per row.\n const i = Math.floor((codePoint - 0x1D7CE) / 10);\n return [wideNumeralData[i][2], wideNumeralData[i][j]];\n } else if (codePoint === 0x1D6A5 || codePoint === 0x1D6A6) {\n // dotless i or j\n return [wideLatinLetterData[0][2], wideLatinLetterData[0][j]];\n } else if (0x1D6A6 < codePoint && codePoint < 0x1D7CE) {\n // Greek letters. Not supported, yet.\n return [\"\", \"\"];\n } else {\n // We don't support any wide characters outside 1D400–1D7FF.\n throw new src_ParseError(\"Unsupported character: \" + wideChar);\n }\n};\n;// CONCATENATED MODULE: ./src/buildCommon.js\n/* eslint no-console:0 */\n\n/**\n * This module contains general functions that can be used for building\n * different kinds of domTree nodes in a consistent manner.\n */\n\n\n\n\n\n\n\n/**\n * Looks up the given symbol in fontMetrics, after applying any symbol\n * replacements defined in symbol.js\n */\nconst lookupSymbol = function (value, // TODO(#963): Use a union type for this.\nfontName, mode) {\n // Replace the value with its replaced value from symbol.js\n if (src_symbols[mode][value] && src_symbols[mode][value].replace) {\n value = src_symbols[mode][value].replace;\n }\n\n return {\n value: value,\n metrics: getCharacterMetrics(value, fontName, mode)\n };\n};\n/**\n * Makes a symbolNode after translation via the list of symbols in symbols.js.\n * Correctly pulls out metrics for the character, and optionally takes a list of\n * classes to be attached to the node.\n *\n * TODO: make argument order closer to makeSpan\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n * TODO(#953): Make `options` mandatory and always pass it in.\n */\n\n\nconst makeSymbol = function (value, fontName, mode, options, classes) {\n const lookup = lookupSymbol(value, fontName, mode);\n const metrics = lookup.metrics;\n value = lookup.value;\n let symbolNode;\n\n if (metrics) {\n let italic = metrics.italic;\n\n if (mode === \"text\" || options && options.font === \"mathit\") {\n italic = 0;\n }\n\n symbolNode = new SymbolNode(value, metrics.height, metrics.depth, italic, metrics.skew, metrics.width, classes);\n } else {\n // TODO(emily): Figure out a good way to only print this in development\n typeof console !== \"undefined\" && console.warn(\"No character metrics \" + (\"for '\" + value + \"' in style '\" + fontName + \"' and mode '\" + mode + \"'\"));\n symbolNode = new SymbolNode(value, 0, 0, 0, 0, 0, classes);\n }\n\n if (options) {\n symbolNode.maxFontSize = options.sizeMultiplier;\n\n if (options.style.isTight()) {\n symbolNode.classes.push(\"mtight\");\n }\n\n const color = options.getColor();\n\n if (color) {\n symbolNode.style.color = color;\n }\n }\n\n return symbolNode;\n};\n/**\n * Makes a symbol in Main-Regular or AMS-Regular.\n * Used for rel, bin, open, close, inner, and punct.\n */\n\n\nconst mathsym = function (value, mode, options, classes) {\n if (classes === void 0) {\n classes = [];\n }\n\n // Decide what font to render the symbol in by its entry in the symbols\n // table.\n // Have a special case for when the value = \\ because the \\ is used as a\n // textord in unsupported command errors but cannot be parsed as a regular\n // text ordinal and is therefore not present as a symbol in the symbols\n // table for text, as well as a special case for boldsymbol because it\n // can be used for bold + and -\n if (options.font === \"boldsymbol\" && lookupSymbol(value, \"Main-Bold\", mode).metrics) {\n return makeSymbol(value, \"Main-Bold\", mode, options, classes.concat([\"mathbf\"]));\n } else if (value === \"\\\\\" || src_symbols[mode][value].font === \"main\") {\n return makeSymbol(value, \"Main-Regular\", mode, options, classes);\n } else {\n return makeSymbol(value, \"AMS-Regular\", mode, options, classes.concat([\"amsrm\"]));\n }\n};\n/**\n * Determines which of the two font names (Main-Bold and Math-BoldItalic) and\n * corresponding style tags (mathbf or boldsymbol) to use for font \"boldsymbol\",\n * depending on the symbol. Use this function instead of fontMap for font\n * \"boldsymbol\".\n */\n\n\nconst boldsymbol = function (value, mode, options, classes, type) {\n if (type !== \"textord\" && lookupSymbol(value, \"Math-BoldItalic\", mode).metrics) {\n return {\n fontName: \"Math-BoldItalic\",\n fontClass: \"boldsymbol\"\n };\n } else {\n // Some glyphs do not exist in Math-BoldItalic so we need to use\n // Main-Bold instead.\n return {\n fontName: \"Main-Bold\",\n fontClass: \"mathbf\"\n };\n }\n};\n/**\n * Makes either a mathord or textord in the correct font and color.\n */\n\n\nconst makeOrd = function (group, options, type) {\n const mode = group.mode;\n const text = group.text;\n const classes = [\"mord\"]; // Math mode or Old font (i.e. \\rm)\n\n const isFont = mode === \"math\" || mode === \"text\" && options.font;\n const fontOrFamily = isFont ? options.font : options.fontFamily;\n let wideFontName = \"\";\n let wideFontClass = \"\";\n\n if (text.charCodeAt(0) === 0xD835) {\n [wideFontName, wideFontClass] = wideCharacterFont(text, mode);\n }\n\n if (wideFontName.length > 0) {\n // surrogate pairs get special treatment\n return makeSymbol(text, wideFontName, mode, options, classes.concat(wideFontClass));\n } else if (fontOrFamily) {\n let fontName;\n let fontClasses;\n\n if (fontOrFamily === \"boldsymbol\") {\n const fontData = boldsymbol(text, mode, options, classes, type);\n fontName = fontData.fontName;\n fontClasses = [fontData.fontClass];\n } else if (isFont) {\n fontName = fontMap[fontOrFamily].fontName;\n fontClasses = [fontOrFamily];\n } else {\n fontName = retrieveTextFontName(fontOrFamily, options.fontWeight, options.fontShape);\n fontClasses = [fontOrFamily, options.fontWeight, options.fontShape];\n }\n\n if (lookupSymbol(text, fontName, mode).metrics) {\n return makeSymbol(text, fontName, mode, options, classes.concat(fontClasses));\n } else if (ligatures.hasOwnProperty(text) && fontName.slice(0, 10) === \"Typewriter\") {\n // Deconstruct ligatures in monospace fonts (\\texttt, \\tt).\n const parts = [];\n\n for (let i = 0; i < text.length; i++) {\n parts.push(makeSymbol(text[i], fontName, mode, options, classes.concat(fontClasses)));\n }\n\n return makeFragment(parts);\n }\n } // Makes a symbol in the default font for mathords and textords.\n\n\n if (type === \"mathord\") {\n return makeSymbol(text, \"Math-Italic\", mode, options, classes.concat([\"mathnormal\"]));\n } else if (type === \"textord\") {\n const font = src_symbols[mode][text] && src_symbols[mode][text].font;\n\n if (font === \"ams\") {\n const fontName = retrieveTextFontName(\"amsrm\", options.fontWeight, options.fontShape);\n return makeSymbol(text, fontName, mode, options, classes.concat(\"amsrm\", options.fontWeight, options.fontShape));\n } else if (font === \"main\" || !font) {\n const fontName = retrieveTextFontName(\"textrm\", options.fontWeight, options.fontShape);\n return makeSymbol(text, fontName, mode, options, classes.concat(options.fontWeight, options.fontShape));\n } else {\n // fonts added by plugins\n const fontName = retrieveTextFontName(font, options.fontWeight, options.fontShape); // We add font name as a css class\n\n return makeSymbol(text, fontName, mode, options, classes.concat(fontName, options.fontWeight, options.fontShape));\n }\n } else {\n throw new Error(\"unexpected type: \" + type + \" in makeOrd\");\n }\n};\n/**\n * Returns true if subsequent symbolNodes have the same classes, skew, maxFont,\n * and styles.\n */\n\n\nconst canCombine = (prev, next) => {\n if (createClass(prev.classes) !== createClass(next.classes) || prev.skew !== next.skew || prev.maxFontSize !== next.maxFontSize) {\n return false;\n } // If prev and next both are just \"mbin\"s or \"mord\"s we don't combine them\n // so that the proper spacing can be preserved.\n\n\n if (prev.classes.length === 1) {\n const cls = prev.classes[0];\n\n if (cls === \"mbin\" || cls === \"mord\") {\n return false;\n }\n }\n\n for (const style in prev.style) {\n if (prev.style.hasOwnProperty(style) && prev.style[style] !== next.style[style]) {\n return false;\n }\n }\n\n for (const style in next.style) {\n if (next.style.hasOwnProperty(style) && prev.style[style] !== next.style[style]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Combine consecutive domTree.symbolNodes into a single symbolNode.\n * Note: this function mutates the argument.\n */\n\n\nconst tryCombineChars = chars => {\n for (let i = 0; i < chars.length - 1; i++) {\n const prev = chars[i];\n const next = chars[i + 1];\n\n if (prev instanceof SymbolNode && next instanceof SymbolNode && canCombine(prev, next)) {\n prev.text += next.text;\n prev.height = Math.max(prev.height, next.height);\n prev.depth = Math.max(prev.depth, next.depth); // Use the last character's italic correction since we use\n // it to add padding to the right of the span created from\n // the combined characters.\n\n prev.italic = next.italic;\n chars.splice(i + 1, 1);\n i--;\n }\n }\n\n return chars;\n};\n/**\n * Calculate the height, depth, and maxFontSize of an element based on its\n * children.\n */\n\n\nconst sizeElementFromChildren = function (elem) {\n let height = 0;\n let depth = 0;\n let maxFontSize = 0;\n\n for (let i = 0; i < elem.children.length; i++) {\n const child = elem.children[i];\n\n if (child.height > height) {\n height = child.height;\n }\n\n if (child.depth > depth) {\n depth = child.depth;\n }\n\n if (child.maxFontSize > maxFontSize) {\n maxFontSize = child.maxFontSize;\n }\n }\n\n elem.height = height;\n elem.depth = depth;\n elem.maxFontSize = maxFontSize;\n};\n/**\n * Makes a span with the given list of classes, list of children, and options.\n *\n * TODO(#953): Ensure that `options` is always provided (currently some call\n * sites don't pass it) and make the type below mandatory.\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n */\n\n\nconst makeSpan = function (classes, children, options, style) {\n const span = new Span(classes, children, options, style);\n sizeElementFromChildren(span);\n return span;\n}; // SVG one is simpler -- doesn't require height, depth, max-font setting.\n// This is also a separate method for typesafety.\n\n\nconst makeSvgSpan = (classes, children, options, style) => new Span(classes, children, options, style);\n\nconst makeLineSpan = function (className, options, thickness) {\n const line = makeSpan([className], [], options);\n line.height = Math.max(thickness || options.fontMetrics().defaultRuleThickness, options.minRuleThickness);\n line.style.borderBottomWidth = makeEm(line.height);\n line.maxFontSize = 1.0;\n return line;\n};\n/**\n * Makes an anchor with the given href, list of classes, list of children,\n * and options.\n */\n\n\nconst makeAnchor = function (href, classes, children, options) {\n const anchor = new Anchor(href, classes, children, options);\n sizeElementFromChildren(anchor);\n return anchor;\n};\n/**\n * Makes a document fragment with the given list of children.\n */\n\n\nconst makeFragment = function (children) {\n const fragment = new DocumentFragment(children);\n sizeElementFromChildren(fragment);\n return fragment;\n};\n/**\n * Wraps group in a span if it's a document fragment, allowing to apply classes\n * and styles\n */\n\n\nconst wrapFragment = function (group, options) {\n if (group instanceof DocumentFragment) {\n return makeSpan([], [group], options);\n }\n\n return group;\n}; // These are exact object types to catch typos in the names of the optional fields.\n\n\n// Computes the updated `children` list and the overall depth.\n//\n// This helper function for makeVList makes it easier to enforce type safety by\n// allowing early exits (returns) in the logic.\nconst getVListChildrenAndDepth = function (params) {\n if (params.positionType === \"individualShift\") {\n const oldChildren = params.children;\n const children = [oldChildren[0]]; // Add in kerns to the list of params.children to get each element to be\n // shifted to the correct specified shift\n\n const depth = -oldChildren[0].shift - oldChildren[0].elem.depth;\n let currPos = depth;\n\n for (let i = 1; i < oldChildren.length; i++) {\n const diff = -oldChildren[i].shift - currPos - oldChildren[i].elem.depth;\n const size = diff - (oldChildren[i - 1].elem.height + oldChildren[i - 1].elem.depth);\n currPos = currPos + diff;\n children.push({\n type: \"kern\",\n size\n });\n children.push(oldChildren[i]);\n }\n\n return {\n children,\n depth\n };\n }\n\n let depth;\n\n if (params.positionType === \"top\") {\n // We always start at the bottom, so calculate the bottom by adding up\n // all the sizes\n let bottom = params.positionData;\n\n for (let i = 0; i < params.children.length; i++) {\n const child = params.children[i];\n bottom -= child.type === \"kern\" ? child.size : child.elem.height + child.elem.depth;\n }\n\n depth = bottom;\n } else if (params.positionType === \"bottom\") {\n depth = -params.positionData;\n } else {\n const firstChild = params.children[0];\n\n if (firstChild.type !== \"elem\") {\n throw new Error('First child must have type \"elem\".');\n }\n\n if (params.positionType === \"shift\") {\n depth = -firstChild.elem.depth - params.positionData;\n } else if (params.positionType === \"firstBaseline\") {\n depth = -firstChild.elem.depth;\n } else {\n throw new Error(\"Invalid positionType \" + params.positionType + \".\");\n }\n }\n\n return {\n children: params.children,\n depth\n };\n};\n/**\n * Makes a vertical list by stacking elements and kerns on top of each other.\n * Allows for many different ways of specifying the positioning method.\n *\n * See VListParam documentation above.\n */\n\n\nconst makeVList = function (params, options) {\n const {\n children,\n depth\n } = getVListChildrenAndDepth(params); // Create a strut that is taller than any list item. The strut is added to\n // each item, where it will determine the item's baseline. Since it has\n // `overflow:hidden`, the strut's top edge will sit on the item's line box's\n // top edge and the strut's bottom edge will sit on the item's baseline,\n // with no additional line-height spacing. This allows the item baseline to\n // be positioned precisely without worrying about font ascent and\n // line-height.\n\n let pstrutSize = 0;\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n\n if (child.type === \"elem\") {\n const elem = child.elem;\n pstrutSize = Math.max(pstrutSize, elem.maxFontSize, elem.height);\n }\n }\n\n pstrutSize += 2;\n const pstrut = makeSpan([\"pstrut\"], []);\n pstrut.style.height = makeEm(pstrutSize); // Create a new list of actual children at the correct offsets\n\n const realChildren = [];\n let minPos = depth;\n let maxPos = depth;\n let currPos = depth;\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n\n if (child.type === \"kern\") {\n currPos += child.size;\n } else {\n const elem = child.elem;\n const classes = child.wrapperClasses || [];\n const style = child.wrapperStyle || {};\n const childWrap = makeSpan(classes, [pstrut, elem], undefined, style);\n childWrap.style.top = makeEm(-pstrutSize - currPos - elem.depth);\n\n if (child.marginLeft) {\n childWrap.style.marginLeft = child.marginLeft;\n }\n\n if (child.marginRight) {\n childWrap.style.marginRight = child.marginRight;\n }\n\n realChildren.push(childWrap);\n currPos += elem.height + elem.depth;\n }\n\n minPos = Math.min(minPos, currPos);\n maxPos = Math.max(maxPos, currPos);\n } // The vlist contents go in a table-cell with `vertical-align:bottom`.\n // This cell's bottom edge will determine the containing table's baseline\n // without overly expanding the containing line-box.\n\n\n const vlist = makeSpan([\"vlist\"], realChildren);\n vlist.style.height = makeEm(maxPos); // A second row is used if necessary to represent the vlist's depth.\n\n let rows;\n\n if (minPos < 0) {\n // We will define depth in an empty span with display: table-cell.\n // It should render with the height that we define. But Chrome, in\n // contenteditable mode only, treats that span as if it contains some\n // text content. And that min-height over-rides our desired height.\n // So we put another empty span inside the depth strut span.\n const emptySpan = makeSpan([], []);\n const depthStrut = makeSpan([\"vlist\"], [emptySpan]);\n depthStrut.style.height = makeEm(-minPos); // Safari wants the first row to have inline content; otherwise it\n // puts the bottom of the *second* row on the baseline.\n\n const topStrut = makeSpan([\"vlist-s\"], [new SymbolNode(\"\\u200b\")]);\n rows = [makeSpan([\"vlist-r\"], [vlist, topStrut]), makeSpan([\"vlist-r\"], [depthStrut])];\n } else {\n rows = [makeSpan([\"vlist-r\"], [vlist])];\n }\n\n const vtable = makeSpan([\"vlist-t\"], rows);\n\n if (rows.length === 2) {\n vtable.classes.push(\"vlist-t2\");\n }\n\n vtable.height = maxPos;\n vtable.depth = -minPos;\n return vtable;\n}; // Glue is a concept from TeX which is a flexible space between elements in\n// either a vertical or horizontal list. In KaTeX, at least for now, it's\n// static space between elements in a horizontal layout.\n\n\nconst makeGlue = (measurement, options) => {\n // Make an empty span for the space\n const rule = makeSpan([\"mspace\"], [], options);\n const size = calculateSize(measurement, options);\n rule.style.marginRight = makeEm(size);\n return rule;\n}; // Takes font options, and returns the appropriate fontLookup name\n\n\nconst retrieveTextFontName = function (fontFamily, fontWeight, fontShape) {\n let baseFontName = \"\";\n\n switch (fontFamily) {\n case \"amsrm\":\n baseFontName = \"AMS\";\n break;\n\n case \"textrm\":\n baseFontName = \"Main\";\n break;\n\n case \"textsf\":\n baseFontName = \"SansSerif\";\n break;\n\n case \"texttt\":\n baseFontName = \"Typewriter\";\n break;\n\n default:\n baseFontName = fontFamily;\n // use fonts added by a plugin\n }\n\n let fontStylesName;\n\n if (fontWeight === \"textbf\" && fontShape === \"textit\") {\n fontStylesName = \"BoldItalic\";\n } else if (fontWeight === \"textbf\") {\n fontStylesName = \"Bold\";\n } else if (fontWeight === \"textit\") {\n fontStylesName = \"Italic\";\n } else {\n fontStylesName = \"Regular\";\n }\n\n return baseFontName + \"-\" + fontStylesName;\n};\n/**\n * Maps TeX font commands to objects containing:\n * - variant: string used for \"mathvariant\" attribute in buildMathML.js\n * - fontName: the \"style\" parameter to fontMetrics.getCharacterMetrics\n */\n// A map between tex font commands an MathML mathvariant attribute values\n\n\nconst fontMap = {\n // styles\n \"mathbf\": {\n variant: \"bold\",\n fontName: \"Main-Bold\"\n },\n \"mathrm\": {\n variant: \"normal\",\n fontName: \"Main-Regular\"\n },\n \"textit\": {\n variant: \"italic\",\n fontName: \"Main-Italic\"\n },\n \"mathit\": {\n variant: \"italic\",\n fontName: \"Main-Italic\"\n },\n \"mathnormal\": {\n variant: \"italic\",\n fontName: \"Math-Italic\"\n },\n \"mathsfit\": {\n variant: \"sans-serif-italic\",\n fontName: \"SansSerif-Italic\"\n },\n // \"boldsymbol\" is missing because they require the use of multiple fonts:\n // Math-BoldItalic and Main-Bold. This is handled by a special case in\n // makeOrd which ends up calling boldsymbol.\n // families\n \"mathbb\": {\n variant: \"double-struck\",\n fontName: \"AMS-Regular\"\n },\n \"mathcal\": {\n variant: \"script\",\n fontName: \"Caligraphic-Regular\"\n },\n \"mathfrak\": {\n variant: \"fraktur\",\n fontName: \"Fraktur-Regular\"\n },\n \"mathscr\": {\n variant: \"script\",\n fontName: \"Script-Regular\"\n },\n \"mathsf\": {\n variant: \"sans-serif\",\n fontName: \"SansSerif-Regular\"\n },\n \"mathtt\": {\n variant: \"monospace\",\n fontName: \"Typewriter-Regular\"\n }\n};\nconst svgData = {\n // path, width, height\n vec: [\"vec\", 0.471, 0.714],\n // values from the font glyph\n oiintSize1: [\"oiintSize1\", 0.957, 0.499],\n // oval to overlay the integrand\n oiintSize2: [\"oiintSize2\", 1.472, 0.659],\n oiiintSize1: [\"oiiintSize1\", 1.304, 0.499],\n oiiintSize2: [\"oiiintSize2\", 1.98, 0.659]\n};\n\nconst staticSvg = function (value, options) {\n // Create a span with inline SVG for the element.\n const [pathName, width, height] = svgData[value];\n const path = new PathNode(pathName);\n const svgNode = new SvgNode([path], {\n \"width\": makeEm(width),\n \"height\": makeEm(height),\n // Override CSS rule `.katex svg { width: 100% }`\n \"style\": \"width:\" + makeEm(width),\n \"viewBox\": \"0 0 \" + 1000 * width + \" \" + 1000 * height,\n \"preserveAspectRatio\": \"xMinYMin\"\n });\n const span = makeSvgSpan([\"overlay\"], [svgNode], options);\n span.height = height;\n span.style.height = makeEm(height);\n span.style.width = makeEm(width);\n return span;\n};\n\n/* harmony default export */ var buildCommon = ({\n fontMap,\n makeSymbol,\n mathsym,\n makeSpan,\n makeSvgSpan,\n makeLineSpan,\n makeAnchor,\n makeFragment,\n wrapFragment,\n makeVList,\n makeOrd,\n makeGlue,\n staticSvg,\n svgData,\n tryCombineChars\n});\n;// CONCATENATED MODULE: ./src/spacingData.js\n/**\n * Describes spaces between different classes of atoms.\n */\nconst thinspace = {\n number: 3,\n unit: \"mu\"\n};\nconst mediumspace = {\n number: 4,\n unit: \"mu\"\n};\nconst thickspace = {\n number: 5,\n unit: \"mu\"\n}; // Making the type below exact with all optional fields doesn't work due to\n// - https://github.com/facebook/flow/issues/4582\n// - https://github.com/facebook/flow/issues/5688\n// However, since *all* fields are optional, $Shape<> works as suggested in 5688\n// above.\n\n// Spacing relationships for display and text styles\nconst spacings = {\n mord: {\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n minner: thinspace\n },\n mop: {\n mord: thinspace,\n mop: thinspace,\n mrel: thickspace,\n minner: thinspace\n },\n mbin: {\n mord: mediumspace,\n mop: mediumspace,\n mopen: mediumspace,\n minner: mediumspace\n },\n mrel: {\n mord: thickspace,\n mop: thickspace,\n mopen: thickspace,\n minner: thickspace\n },\n mopen: {},\n mclose: {\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n minner: thinspace\n },\n mpunct: {\n mord: thinspace,\n mop: thinspace,\n mrel: thickspace,\n mopen: thinspace,\n mclose: thinspace,\n mpunct: thinspace,\n minner: thinspace\n },\n minner: {\n mord: thinspace,\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n mopen: thinspace,\n mpunct: thinspace,\n minner: thinspace\n }\n}; // Spacing relationships for script and scriptscript styles\n\nconst tightSpacings = {\n mord: {\n mop: thinspace\n },\n mop: {\n mord: thinspace,\n mop: thinspace\n },\n mbin: {},\n mrel: {},\n mopen: {},\n mclose: {\n mop: thinspace\n },\n mpunct: {},\n minner: {\n mop: thinspace\n }\n};\n;// CONCATENATED MODULE: ./src/defineFunction.js\n/** Context provided to function handlers for error messages. */\n// Note: reverse the order of the return type union will cause a flow error.\n// See https://github.com/facebook/flow/issues/3663.\n// More general version of `HtmlBuilder` for nodes (e.g. \\sum, accent types)\n// whose presence impacts super/subscripting. In this case, ParseNode<\"supsub\">\n// delegates its HTML building to the HtmlBuilder corresponding to these nodes.\n\n/**\n * Final function spec for use at parse time.\n * This is almost identical to `FunctionPropSpec`, except it\n * 1. includes the function handler, and\n * 2. requires all arguments except argTypes.\n * It is generated by `defineFunction()` below.\n */\n\n/**\n * All registered functions.\n * `functions.js` just exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary.\n */\nconst _functions = {};\n/**\n * All HTML builders. Should be only used in the `define*` and the `build*ML`\n * functions.\n */\n\nconst _htmlGroupBuilders = {};\n/**\n * All MathML builders. Should be only used in the `define*` and the `build*ML`\n * functions.\n */\n\nconst _mathmlGroupBuilders = {};\nfunction defineFunction(_ref) {\n let {\n type,\n names,\n props,\n handler,\n htmlBuilder,\n mathmlBuilder\n } = _ref;\n // Set default values of functions\n const data = {\n type,\n numArgs: props.numArgs,\n argTypes: props.argTypes,\n allowedInArgument: !!props.allowedInArgument,\n allowedInText: !!props.allowedInText,\n allowedInMath: props.allowedInMath === undefined ? true : props.allowedInMath,\n numOptionalArgs: props.numOptionalArgs || 0,\n infix: !!props.infix,\n primitive: !!props.primitive,\n handler: handler\n };\n\n for (let i = 0; i < names.length; ++i) {\n _functions[names[i]] = data;\n }\n\n if (type) {\n if (htmlBuilder) {\n _htmlGroupBuilders[type] = htmlBuilder;\n }\n\n if (mathmlBuilder) {\n _mathmlGroupBuilders[type] = mathmlBuilder;\n }\n }\n}\n/**\n * Use this to register only the HTML and MathML builders for a function (e.g.\n * if the function's ParseNode is generated in Parser.js rather than via a\n * stand-alone handler provided to `defineFunction`).\n */\n\nfunction defineFunctionBuilders(_ref2) {\n let {\n type,\n htmlBuilder,\n mathmlBuilder\n } = _ref2;\n defineFunction({\n type,\n names: [],\n props: {\n numArgs: 0\n },\n\n handler() {\n throw new Error('Should never be called.');\n },\n\n htmlBuilder,\n mathmlBuilder\n });\n}\nconst normalizeArgument = function (arg) {\n return arg.type === \"ordgroup\" && arg.body.length === 1 ? arg.body[0] : arg;\n}; // Since the corresponding buildHTML/buildMathML function expects a\n// list of elements, we normalize for different kinds of arguments\n\nconst ordargument = function (arg) {\n return arg.type === \"ordgroup\" ? arg.body : [arg];\n};\n;// CONCATENATED MODULE: ./src/buildHTML.js\n/**\n * This file does the main work of building a domTree structure from a parse\n * tree. The entry point is the `buildHTML` function, which takes a parse tree.\n * Then, the buildExpression, buildGroup, and various groupBuilders functions\n * are called, to produce a final HTML tree.\n */\n\n\n\n\n\n\n\n\n\nconst buildHTML_makeSpan = buildCommon.makeSpan; // Binary atoms (first class `mbin`) change into ordinary atoms (`mord`)\n// depending on their surroundings. See TeXbook pg. 442-446, Rules 5 and 6,\n// and the text before Rule 19.\n\nconst binLeftCanceller = [\"leftmost\", \"mbin\", \"mopen\", \"mrel\", \"mop\", \"mpunct\"];\nconst binRightCanceller = [\"rightmost\", \"mrel\", \"mclose\", \"mpunct\"];\nconst styleMap = {\n \"display\": src_Style.DISPLAY,\n \"text\": src_Style.TEXT,\n \"script\": src_Style.SCRIPT,\n \"scriptscript\": src_Style.SCRIPTSCRIPT\n};\nconst DomEnum = {\n mord: \"mord\",\n mop: \"mop\",\n mbin: \"mbin\",\n mrel: \"mrel\",\n mopen: \"mopen\",\n mclose: \"mclose\",\n mpunct: \"mpunct\",\n minner: \"minner\"\n};\n\n/**\n * Take a list of nodes, build them in order, and return a list of the built\n * nodes. documentFragments are flattened into their contents, so the\n * returned list contains no fragments. `isRealGroup` is true if `expression`\n * is a real group (no atoms will be added on either side), as opposed to\n * a partial group (e.g. one created by \\color). `surrounding` is an array\n * consisting type of nodes that will be added to the left and right.\n */\nconst buildExpression = function (expression, options, isRealGroup, surrounding) {\n if (surrounding === void 0) {\n surrounding = [null, null];\n }\n\n // Parse expressions into `groups`.\n const groups = [];\n\n for (let i = 0; i < expression.length; i++) {\n const output = buildGroup(expression[i], options);\n\n if (output instanceof DocumentFragment) {\n const children = output.children;\n groups.push(...children);\n } else {\n groups.push(output);\n }\n } // Combine consecutive domTree.symbolNodes into a single symbolNode.\n\n\n buildCommon.tryCombineChars(groups); // If `expression` is a partial group, let the parent handle spacings\n // to avoid processing groups multiple times.\n\n if (!isRealGroup) {\n return groups;\n }\n\n let glueOptions = options;\n\n if (expression.length === 1) {\n const node = expression[0];\n\n if (node.type === \"sizing\") {\n glueOptions = options.havingSize(node.size);\n } else if (node.type === \"styling\") {\n glueOptions = options.havingStyle(styleMap[node.style]);\n }\n } // Dummy spans for determining spacings between surrounding atoms.\n // If `expression` has no atoms on the left or right, class \"leftmost\"\n // or \"rightmost\", respectively, is used to indicate it.\n\n\n const dummyPrev = buildHTML_makeSpan([surrounding[0] || \"leftmost\"], [], options);\n const dummyNext = buildHTML_makeSpan([surrounding[1] || \"rightmost\"], [], options); // TODO: These code assumes that a node's math class is the first element\n // of its `classes` array. A later cleanup should ensure this, for\n // instance by changing the signature of `makeSpan`.\n // Before determining what spaces to insert, perform bin cancellation.\n // Binary operators change to ordinary symbols in some contexts.\n\n const isRoot = isRealGroup === \"root\";\n traverseNonSpaceNodes(groups, (node, prev) => {\n const prevType = prev.classes[0];\n const type = node.classes[0];\n\n if (prevType === \"mbin\" && utils.contains(binRightCanceller, type)) {\n prev.classes[0] = \"mord\";\n } else if (type === \"mbin\" && utils.contains(binLeftCanceller, prevType)) {\n node.classes[0] = \"mord\";\n }\n }, {\n node: dummyPrev\n }, dummyNext, isRoot);\n traverseNonSpaceNodes(groups, (node, prev) => {\n const prevType = getTypeOfDomTree(prev);\n const type = getTypeOfDomTree(node); // 'mtight' indicates that the node is script or scriptscript style.\n\n const space = prevType && type ? node.hasClass(\"mtight\") ? tightSpacings[prevType][type] : spacings[prevType][type] : null;\n\n if (space) {\n // Insert glue (spacing) after the `prev`.\n return buildCommon.makeGlue(space, glueOptions);\n }\n }, {\n node: dummyPrev\n }, dummyNext, isRoot);\n return groups;\n}; // Depth-first traverse non-space `nodes`, calling `callback` with the current and\n// previous node as arguments, optionally returning a node to insert after the\n// previous node. `prev` is an object with the previous node and `insertAfter`\n// function to insert after it. `next` is a node that will be added to the right.\n// Used for bin cancellation and inserting spacings.\n\nconst traverseNonSpaceNodes = function (nodes, callback, prev, next, isRoot) {\n if (next) {\n // temporarily append the right node, if exists\n nodes.push(next);\n }\n\n let i = 0;\n\n for (; i < nodes.length; i++) {\n const node = nodes[i];\n const partialGroup = checkPartialGroup(node);\n\n if (partialGroup) {\n // Recursive DFS\n // $FlowFixMe: make nodes a $ReadOnlyArray by returning a new array\n traverseNonSpaceNodes(partialGroup.children, callback, prev, null, isRoot);\n continue;\n } // Ignore explicit spaces (e.g., \\;, \\,) when determining what implicit\n // spacing should go between atoms of different classes\n\n\n const nonspace = !node.hasClass(\"mspace\");\n\n if (nonspace) {\n const result = callback(node, prev.node);\n\n if (result) {\n if (prev.insertAfter) {\n prev.insertAfter(result);\n } else {\n // insert at front\n nodes.unshift(result);\n i++;\n }\n }\n }\n\n if (nonspace) {\n prev.node = node;\n } else if (isRoot && node.hasClass(\"newline\")) {\n prev.node = buildHTML_makeSpan([\"leftmost\"]); // treat like beginning of line\n }\n\n prev.insertAfter = (index => n => {\n nodes.splice(index + 1, 0, n);\n i++;\n })(i);\n }\n\n if (next) {\n nodes.pop();\n }\n}; // Check if given node is a partial group, i.e., does not affect spacing around.\n\n\nconst checkPartialGroup = function (node) {\n if (node instanceof DocumentFragment || node instanceof Anchor || node instanceof Span && node.hasClass(\"enclosing\")) {\n return node;\n }\n\n return null;\n}; // Return the outermost node of a domTree.\n\n\nconst getOutermostNode = function (node, side) {\n const partialGroup = checkPartialGroup(node);\n\n if (partialGroup) {\n const children = partialGroup.children;\n\n if (children.length) {\n if (side === \"right\") {\n return getOutermostNode(children[children.length - 1], \"right\");\n } else if (side === \"left\") {\n return getOutermostNode(children[0], \"left\");\n }\n }\n }\n\n return node;\n}; // Return math atom class (mclass) of a domTree.\n// If `side` is given, it will get the type of the outermost node at given side.\n\n\nconst getTypeOfDomTree = function (node, side) {\n if (!node) {\n return null;\n }\n\n if (side) {\n node = getOutermostNode(node, side);\n } // This makes a lot of assumptions as to where the type of atom\n // appears. We should do a better job of enforcing this.\n\n\n return DomEnum[node.classes[0]] || null;\n};\nconst makeNullDelimiter = function (options, classes) {\n const moreClasses = [\"nulldelimiter\"].concat(options.baseSizingClasses());\n return buildHTML_makeSpan(classes.concat(moreClasses));\n};\n/**\n * buildGroup is the function that takes a group and calls the correct groupType\n * function for it. It also handles the interaction of size and style changes\n * between parents and children.\n */\n\nconst buildGroup = function (group, options, baseOptions) {\n if (!group) {\n return buildHTML_makeSpan();\n }\n\n if (_htmlGroupBuilders[group.type]) {\n // Call the groupBuilders function\n // $FlowFixMe\n let groupNode = _htmlGroupBuilders[group.type](group, options); // If the size changed between the parent and the current group, account\n // for that size difference.\n\n if (baseOptions && options.size !== baseOptions.size) {\n groupNode = buildHTML_makeSpan(options.sizingClasses(baseOptions), [groupNode], options);\n const multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;\n groupNode.height *= multiplier;\n groupNode.depth *= multiplier;\n }\n\n return groupNode;\n } else {\n throw new src_ParseError(\"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n/**\n * Combine an array of HTML DOM nodes (e.g., the output of `buildExpression`)\n * into an unbreakable HTML node of class .base, with proper struts to\n * guarantee correct vertical extent. `buildHTML` calls this repeatedly to\n * make up the entire expression as a sequence of unbreakable units.\n */\n\nfunction buildHTMLUnbreakable(children, options) {\n // Compute height and depth of this chunk.\n const body = buildHTML_makeSpan([\"base\"], children, options); // Add strut, which ensures that the top of the HTML element falls at\n // the height of the expression, and the bottom of the HTML element\n // falls at the depth of the expression.\n\n const strut = buildHTML_makeSpan([\"strut\"]);\n strut.style.height = makeEm(body.height + body.depth);\n\n if (body.depth) {\n strut.style.verticalAlign = makeEm(-body.depth);\n }\n\n body.children.unshift(strut);\n return body;\n}\n/**\n * Take an entire parse tree, and build it into an appropriate set of HTML\n * nodes.\n */\n\n\nfunction buildHTML(tree, options) {\n // Strip off outer tag wrapper for processing below.\n let tag = null;\n\n if (tree.length === 1 && tree[0].type === \"tag\") {\n tag = tree[0].tag;\n tree = tree[0].body;\n } // Build the expression contained in the tree\n\n\n const expression = buildExpression(tree, options, \"root\");\n let eqnNum;\n\n if (expression.length === 2 && expression[1].hasClass(\"tag\")) {\n // An environment with automatic equation numbers, e.g. {gather}.\n eqnNum = expression.pop();\n }\n\n const children = []; // Create one base node for each chunk between potential line breaks.\n // The TeXBook [p.173] says \"A formula will be broken only after a\n // relation symbol like $=$ or $<$ or $\\rightarrow$, or after a binary\n // operation symbol like $+$ or $-$ or $\\times$, where the relation or\n // binary operation is on the ``outer level'' of the formula (i.e., not\n // enclosed in {...} and not part of an \\over construction).\"\n\n let parts = [];\n\n for (let i = 0; i < expression.length; i++) {\n parts.push(expression[i]);\n\n if (expression[i].hasClass(\"mbin\") || expression[i].hasClass(\"mrel\") || expression[i].hasClass(\"allowbreak\")) {\n // Put any post-operator glue on same line as operator.\n // Watch for \\nobreak along the way, and stop at \\newline.\n let nobreak = false;\n\n while (i < expression.length - 1 && expression[i + 1].hasClass(\"mspace\") && !expression[i + 1].hasClass(\"newline\")) {\n i++;\n parts.push(expression[i]);\n\n if (expression[i].hasClass(\"nobreak\")) {\n nobreak = true;\n }\n } // Don't allow break if \\nobreak among the post-operator glue.\n\n\n if (!nobreak) {\n children.push(buildHTMLUnbreakable(parts, options));\n parts = [];\n }\n } else if (expression[i].hasClass(\"newline\")) {\n // Write the line except the newline\n parts.pop();\n\n if (parts.length > 0) {\n children.push(buildHTMLUnbreakable(parts, options));\n parts = [];\n } // Put the newline at the top level\n\n\n children.push(expression[i]);\n }\n }\n\n if (parts.length > 0) {\n children.push(buildHTMLUnbreakable(parts, options));\n } // Now, if there was a tag, build it too and append it as a final child.\n\n\n let tagChild;\n\n if (tag) {\n tagChild = buildHTMLUnbreakable(buildExpression(tag, options, true));\n tagChild.classes = [\"tag\"];\n children.push(tagChild);\n } else if (eqnNum) {\n children.push(eqnNum);\n }\n\n const htmlNode = buildHTML_makeSpan([\"katex-html\"], children);\n htmlNode.setAttribute(\"aria-hidden\", \"true\"); // Adjust the strut of the tag to be the maximum height of all children\n // (the height of the enclosing htmlNode) for proper vertical alignment.\n\n if (tagChild) {\n const strut = tagChild.children[0];\n strut.style.height = makeEm(htmlNode.height + htmlNode.depth);\n\n if (htmlNode.depth) {\n strut.style.verticalAlign = makeEm(-htmlNode.depth);\n }\n }\n\n return htmlNode;\n}\n;// CONCATENATED MODULE: ./src/mathMLTree.js\n/**\n * These objects store data about MathML nodes. This is the MathML equivalent\n * of the types in domTree.js. Since MathML handles its own rendering, and\n * since we're mainly using MathML to improve accessibility, we don't manage\n * any of the styling state that the plain DOM nodes do.\n *\n * The `toNode` and `toMarkup` functions work similarly to how they do in\n * domTree.js, creating namespaced DOM nodes and HTML text markup respectively.\n */\n\n\n\n\nfunction newDocumentFragment(children) {\n return new DocumentFragment(children);\n}\n/**\n * This node represents a general purpose MathML node of any type. The\n * constructor requires the type of node to create (for example, `\"mo\"` or\n * `\"mspace\"`, corresponding to `` and `` tags).\n */\n\nclass MathNode {\n constructor(type, children, classes) {\n this.type = void 0;\n this.attributes = void 0;\n this.children = void 0;\n this.classes = void 0;\n this.type = type;\n this.attributes = {};\n this.children = children || [];\n this.classes = classes || [];\n }\n /**\n * Sets an attribute on a MathML node. MathML depends on attributes to convey a\n * semantic content, so this is used heavily.\n */\n\n\n setAttribute(name, value) {\n this.attributes[name] = value;\n }\n /**\n * Gets an attribute on a MathML node.\n */\n\n\n getAttribute(name) {\n return this.attributes[name];\n }\n /**\n * Converts the math node into a MathML-namespaced DOM element.\n */\n\n\n toNode() {\n const node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", this.type);\n\n for (const attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n if (this.classes.length > 0) {\n node.className = createClass(this.classes);\n }\n\n for (let i = 0; i < this.children.length; i++) {\n // Combine multiple TextNodes into one TextNode, to prevent\n // screen readers from reading each as a separate word [#3995]\n if (this.children[i] instanceof TextNode && this.children[i + 1] instanceof TextNode) {\n let text = this.children[i].toText() + this.children[++i].toText();\n\n while (this.children[i + 1] instanceof TextNode) {\n text += this.children[++i].toText();\n }\n\n node.appendChild(new TextNode(text).toNode());\n } else {\n node.appendChild(this.children[i].toNode());\n }\n }\n\n return node;\n }\n /**\n * Converts the math node into an HTML markup string.\n */\n\n\n toMarkup() {\n let markup = \"<\" + this.type; // Add the attributes\n\n for (const attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"=\\\"\";\n markup += utils.escape(this.attributes[attr]);\n markup += \"\\\"\";\n }\n }\n\n if (this.classes.length > 0) {\n markup += \" class =\\\"\" + utils.escape(createClass(this.classes)) + \"\\\"\";\n }\n\n markup += \">\";\n\n for (let i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"\";\n return markup;\n }\n /**\n * Converts the math node into a string, similar to innerText, but escaped.\n */\n\n\n toText() {\n return this.children.map(child => child.toText()).join(\"\");\n }\n\n}\n/**\n * This node represents a piece of text.\n */\n\nclass TextNode {\n constructor(text) {\n this.text = void 0;\n this.text = text;\n }\n /**\n * Converts the text node into a DOM text node.\n */\n\n\n toNode() {\n return document.createTextNode(this.text);\n }\n /**\n * Converts the text node into escaped HTML markup\n * (representing the text itself).\n */\n\n\n toMarkup() {\n return utils.escape(this.toText());\n }\n /**\n * Converts the text node into a string\n * (representing the text itself).\n */\n\n\n toText() {\n return this.text;\n }\n\n}\n/**\n * This node represents a space, but may render as or as text,\n * depending on the width.\n */\n\nclass SpaceNode {\n /**\n * Create a Space node with width given in CSS ems.\n */\n constructor(width) {\n this.width = void 0;\n this.character = void 0;\n this.width = width; // See https://www.w3.org/TR/2000/WD-MathML2-20000328/chapter6.html\n // for a table of space-like characters. We use Unicode\n // representations instead of &LongNames; as it's not clear how to\n // make the latter via document.createTextNode.\n\n if (width >= 0.05555 && width <= 0.05556) {\n this.character = \"\\u200a\"; //  \n } else if (width >= 0.1666 && width <= 0.1667) {\n this.character = \"\\u2009\"; //  \n } else if (width >= 0.2222 && width <= 0.2223) {\n this.character = \"\\u2005\"; //  \n } else if (width >= 0.2777 && width <= 0.2778) {\n this.character = \"\\u2005\\u200a\"; //   \n } else if (width >= -0.05556 && width <= -0.05555) {\n this.character = \"\\u200a\\u2063\"; // ​\n } else if (width >= -0.1667 && width <= -0.1666) {\n this.character = \"\\u2009\\u2063\"; // ​\n } else if (width >= -0.2223 && width <= -0.2222) {\n this.character = \"\\u205f\\u2063\"; // ​\n } else if (width >= -0.2778 && width <= -0.2777) {\n this.character = \"\\u2005\\u2063\"; // ​\n } else {\n this.character = null;\n }\n }\n /**\n * Converts the math node into a MathML-namespaced DOM element.\n */\n\n\n toNode() {\n if (this.character) {\n return document.createTextNode(this.character);\n } else {\n const node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", \"mspace\");\n node.setAttribute(\"width\", makeEm(this.width));\n return node;\n }\n }\n /**\n * Converts the math node into an HTML markup string.\n */\n\n\n toMarkup() {\n if (this.character) {\n return \"\" + this.character + \"\";\n } else {\n return \"\";\n }\n }\n /**\n * Converts the math node into a string, similar to innerText.\n */\n\n\n toText() {\n if (this.character) {\n return this.character;\n } else {\n return \" \";\n }\n }\n\n}\n\n/* harmony default export */ var mathMLTree = ({\n MathNode,\n TextNode,\n SpaceNode,\n newDocumentFragment\n});\n;// CONCATENATED MODULE: ./src/buildMathML.js\n/**\n * This file converts a parse tree into a corresponding MathML tree. The main\n * entry point is the `buildMathML` function, which takes a parse tree from the\n * parser.\n */\n\n\n\n\n\n\n\n\n\n/**\n * Takes a symbol and converts it into a MathML text node after performing\n * optional replacement from symbols.js.\n */\nconst makeText = function (text, mode, options) {\n if (src_symbols[mode][text] && src_symbols[mode][text].replace && text.charCodeAt(0) !== 0xD835 && !(ligatures.hasOwnProperty(text) && options && (options.fontFamily && options.fontFamily.slice(4, 6) === \"tt\" || options.font && options.font.slice(4, 6) === \"tt\"))) {\n text = src_symbols[mode][text].replace;\n }\n\n return new mathMLTree.TextNode(text);\n};\n/**\n * Wrap the given array of nodes in an node if needed, i.e.,\n * unless the array has length 1. Always returns a single node.\n */\n\nconst makeRow = function (body) {\n if (body.length === 1) {\n return body[0];\n } else {\n return new mathMLTree.MathNode(\"mrow\", body);\n }\n};\n/**\n * Returns the math variant as a string or null if none is required.\n */\n\nconst getVariant = function (group, options) {\n // Handle \\text... font specifiers as best we can.\n // MathML has a limited list of allowable mathvariant specifiers; see\n // https://www.w3.org/TR/MathML3/chapter3.html#presm.commatt\n if (options.fontFamily === \"texttt\") {\n return \"monospace\";\n } else if (options.fontFamily === \"textsf\") {\n if (options.fontShape === \"textit\" && options.fontWeight === \"textbf\") {\n return \"sans-serif-bold-italic\";\n } else if (options.fontShape === \"textit\") {\n return \"sans-serif-italic\";\n } else if (options.fontWeight === \"textbf\") {\n return \"bold-sans-serif\";\n } else {\n return \"sans-serif\";\n }\n } else if (options.fontShape === \"textit\" && options.fontWeight === \"textbf\") {\n return \"bold-italic\";\n } else if (options.fontShape === \"textit\") {\n return \"italic\";\n } else if (options.fontWeight === \"textbf\") {\n return \"bold\";\n }\n\n const font = options.font;\n\n if (!font || font === \"mathnormal\") {\n return null;\n }\n\n const mode = group.mode;\n\n if (font === \"mathit\") {\n return \"italic\";\n } else if (font === \"boldsymbol\") {\n return group.type === \"textord\" ? \"bold\" : \"bold-italic\";\n } else if (font === \"mathbf\") {\n return \"bold\";\n } else if (font === \"mathbb\") {\n return \"double-struck\";\n } else if (font === \"mathsfit\") {\n return \"sans-serif-italic\";\n } else if (font === \"mathfrak\") {\n return \"fraktur\";\n } else if (font === \"mathscr\" || font === \"mathcal\") {\n // MathML makes no distinction between script and calligraphic\n return \"script\";\n } else if (font === \"mathsf\") {\n return \"sans-serif\";\n } else if (font === \"mathtt\") {\n return \"monospace\";\n }\n\n let text = group.text;\n\n if (utils.contains([\"\\\\imath\", \"\\\\jmath\"], text)) {\n return null;\n }\n\n if (src_symbols[mode][text] && src_symbols[mode][text].replace) {\n text = src_symbols[mode][text].replace;\n }\n\n const fontName = buildCommon.fontMap[font].fontName;\n\n if (getCharacterMetrics(text, fontName, mode)) {\n return buildCommon.fontMap[font].variant;\n }\n\n return null;\n};\n/**\n * Check for . which is how a dot renders in MathML,\n * or ,\n * which is how a braced comma {,} renders in MathML\n */\n\nfunction isNumberPunctuation(group) {\n if (!group) {\n return false;\n }\n\n if (group.type === 'mi' && group.children.length === 1) {\n const child = group.children[0];\n return child instanceof TextNode && child.text === '.';\n } else if (group.type === 'mo' && group.children.length === 1 && group.getAttribute('separator') === 'true' && group.getAttribute('lspace') === '0em' && group.getAttribute('rspace') === '0em') {\n const child = group.children[0];\n return child instanceof TextNode && child.text === ',';\n } else {\n return false;\n }\n}\n/**\n * Takes a list of nodes, builds them, and returns a list of the generated\n * MathML nodes. Also combine consecutive outputs into a single\n * tag.\n */\n\n\nconst buildMathML_buildExpression = function (expression, options, isOrdgroup) {\n if (expression.length === 1) {\n const group = buildMathML_buildGroup(expression[0], options);\n\n if (isOrdgroup && group instanceof MathNode && group.type === \"mo\") {\n // When TeX writers want to suppress spacing on an operator,\n // they often put the operator by itself inside braces.\n group.setAttribute(\"lspace\", \"0em\");\n group.setAttribute(\"rspace\", \"0em\");\n }\n\n return [group];\n }\n\n const groups = [];\n let lastGroup;\n\n for (let i = 0; i < expression.length; i++) {\n const group = buildMathML_buildGroup(expression[i], options);\n\n if (group instanceof MathNode && lastGroup instanceof MathNode) {\n // Concatenate adjacent s\n if (group.type === 'mtext' && lastGroup.type === 'mtext' && group.getAttribute('mathvariant') === lastGroup.getAttribute('mathvariant')) {\n lastGroup.children.push(...group.children);\n continue; // Concatenate adjacent s\n } else if (group.type === 'mn' && lastGroup.type === 'mn') {\n lastGroup.children.push(...group.children);\n continue; // Concatenate ... followed by .\n } else if (isNumberPunctuation(group) && lastGroup.type === 'mn') {\n lastGroup.children.push(...group.children);\n continue; // Concatenate . followed by ...\n } else if (group.type === 'mn' && isNumberPunctuation(lastGroup)) {\n group.children = [...lastGroup.children, ...group.children];\n groups.pop(); // Put preceding ... or . inside base of\n // ...base......exponent... (or )\n } else if ((group.type === 'msup' || group.type === 'msub') && group.children.length >= 1 && (lastGroup.type === 'mn' || isNumberPunctuation(lastGroup))) {\n const base = group.children[0];\n\n if (base instanceof MathNode && base.type === 'mn') {\n base.children = [...lastGroup.children, ...base.children];\n groups.pop();\n } // \\not\n\n } else if (lastGroup.type === 'mi' && lastGroup.children.length === 1) {\n const lastChild = lastGroup.children[0];\n\n if (lastChild instanceof TextNode && lastChild.text === '\\u0338' && (group.type === 'mo' || group.type === 'mi' || group.type === 'mn')) {\n const child = group.children[0];\n\n if (child instanceof TextNode && child.text.length > 0) {\n // Overlay with combining character long solidus\n child.text = child.text.slice(0, 1) + \"\\u0338\" + child.text.slice(1);\n groups.pop();\n }\n }\n }\n }\n\n groups.push(group);\n lastGroup = group;\n }\n\n return groups;\n};\n/**\n * Equivalent to buildExpression, but wraps the elements in an \n * if there's more than one. Returns a single node instead of an array.\n */\n\nconst buildExpressionRow = function (expression, options, isOrdgroup) {\n return makeRow(buildMathML_buildExpression(expression, options, isOrdgroup));\n};\n/**\n * Takes a group from the parser and calls the appropriate groupBuilders function\n * on it to produce a MathML node.\n */\n\nconst buildMathML_buildGroup = function (group, options) {\n if (!group) {\n return new mathMLTree.MathNode(\"mrow\");\n }\n\n if (_mathmlGroupBuilders[group.type]) {\n // Call the groupBuilders function\n // $FlowFixMe\n const result = _mathmlGroupBuilders[group.type](group, options); // $FlowFixMe\n\n return result;\n } else {\n throw new src_ParseError(\"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n/**\n * Takes a full parse tree and settings and builds a MathML representation of\n * it. In particular, we put the elements from building the parse tree into a\n * tag so we can also include that TeX source as an annotation.\n *\n * Note that we actually return a domTree element with a `` inside it so\n * we can do appropriate styling.\n */\n\nfunction buildMathML(tree, texExpression, options, isDisplayMode, forMathmlOnly) {\n const expression = buildMathML_buildExpression(tree, options); // TODO: Make a pass thru the MathML similar to buildHTML.traverseNonSpaceNodes\n // and add spacing nodes. This is necessary only adjacent to math operators\n // like \\sin or \\lim or to subsup elements that contain math operators.\n // MathML takes care of the other spacing issues.\n // Wrap up the expression in an mrow so it is presented in the semantics\n // tag correctly, unless it's a single or .\n\n let wrapper;\n\n if (expression.length === 1 && expression[0] instanceof MathNode && utils.contains([\"mrow\", \"mtable\"], expression[0].type)) {\n wrapper = expression[0];\n } else {\n wrapper = new mathMLTree.MathNode(\"mrow\", expression);\n } // Build a TeX annotation of the source\n\n\n const annotation = new mathMLTree.MathNode(\"annotation\", [new mathMLTree.TextNode(texExpression)]);\n annotation.setAttribute(\"encoding\", \"application/x-tex\");\n const semantics = new mathMLTree.MathNode(\"semantics\", [wrapper, annotation]);\n const math = new mathMLTree.MathNode(\"math\", [semantics]);\n math.setAttribute(\"xmlns\", \"http://www.w3.org/1998/Math/MathML\");\n\n if (isDisplayMode) {\n math.setAttribute(\"display\", \"block\");\n } // You can't style nodes, so we wrap the node in a span.\n // NOTE: The span class is not typed to have nodes as children, and\n // we don't want to make the children type more generic since the children\n // of span are expected to have more fields in `buildHtml` contexts.\n\n\n const wrapperClass = forMathmlOnly ? \"katex\" : \"katex-mathml\"; // $FlowFixMe\n\n return buildCommon.makeSpan([wrapperClass], [math]);\n}\n;// CONCATENATED MODULE: ./src/buildTree.js\n\n\n\n\n\n\n\nconst optionsFromSettings = function (settings) {\n return new src_Options({\n style: settings.displayMode ? src_Style.DISPLAY : src_Style.TEXT,\n maxSize: settings.maxSize,\n minRuleThickness: settings.minRuleThickness\n });\n};\n\nconst displayWrap = function (node, settings) {\n if (settings.displayMode) {\n const classes = [\"katex-display\"];\n\n if (settings.leqno) {\n classes.push(\"leqno\");\n }\n\n if (settings.fleqn) {\n classes.push(\"fleqn\");\n }\n\n node = buildCommon.makeSpan(classes, [node]);\n }\n\n return node;\n};\n\nconst buildTree = function (tree, expression, settings) {\n const options = optionsFromSettings(settings);\n let katexNode;\n\n if (settings.output === \"mathml\") {\n return buildMathML(tree, expression, options, settings.displayMode, true);\n } else if (settings.output === \"html\") {\n const htmlNode = buildHTML(tree, options);\n katexNode = buildCommon.makeSpan([\"katex\"], [htmlNode]);\n } else {\n const mathMLNode = buildMathML(tree, expression, options, settings.displayMode, false);\n const htmlNode = buildHTML(tree, options);\n katexNode = buildCommon.makeSpan([\"katex\"], [mathMLNode, htmlNode]);\n }\n\n return displayWrap(katexNode, settings);\n};\nconst buildHTMLTree = function (tree, expression, settings) {\n const options = optionsFromSettings(settings);\n const htmlNode = buildHTML(tree, options);\n const katexNode = buildCommon.makeSpan([\"katex\"], [htmlNode]);\n return displayWrap(katexNode, settings);\n};\n/* harmony default export */ var src_buildTree = ((/* unused pure expression or super */ null && (buildTree)));\n;// CONCATENATED MODULE: ./src/stretchy.js\n/**\n * This file provides support to buildMathML.js and buildHTML.js\n * for stretchy wide elements rendered from SVG files\n * and other CSS trickery.\n */\n\n\n\n\n\nconst stretchyCodePoint = {\n widehat: \"^\",\n widecheck: \"ˇ\",\n widetilde: \"~\",\n utilde: \"~\",\n overleftarrow: \"\\u2190\",\n underleftarrow: \"\\u2190\",\n xleftarrow: \"\\u2190\",\n overrightarrow: \"\\u2192\",\n underrightarrow: \"\\u2192\",\n xrightarrow: \"\\u2192\",\n underbrace: \"\\u23df\",\n overbrace: \"\\u23de\",\n overgroup: \"\\u23e0\",\n undergroup: \"\\u23e1\",\n overleftrightarrow: \"\\u2194\",\n underleftrightarrow: \"\\u2194\",\n xleftrightarrow: \"\\u2194\",\n Overrightarrow: \"\\u21d2\",\n xRightarrow: \"\\u21d2\",\n overleftharpoon: \"\\u21bc\",\n xleftharpoonup: \"\\u21bc\",\n overrightharpoon: \"\\u21c0\",\n xrightharpoonup: \"\\u21c0\",\n xLeftarrow: \"\\u21d0\",\n xLeftrightarrow: \"\\u21d4\",\n xhookleftarrow: \"\\u21a9\",\n xhookrightarrow: \"\\u21aa\",\n xmapsto: \"\\u21a6\",\n xrightharpoondown: \"\\u21c1\",\n xleftharpoondown: \"\\u21bd\",\n xrightleftharpoons: \"\\u21cc\",\n xleftrightharpoons: \"\\u21cb\",\n xtwoheadleftarrow: \"\\u219e\",\n xtwoheadrightarrow: \"\\u21a0\",\n xlongequal: \"=\",\n xtofrom: \"\\u21c4\",\n xrightleftarrows: \"\\u21c4\",\n xrightequilibrium: \"\\u21cc\",\n // Not a perfect match.\n xleftequilibrium: \"\\u21cb\",\n // None better available.\n \"\\\\cdrightarrow\": \"\\u2192\",\n \"\\\\cdleftarrow\": \"\\u2190\",\n \"\\\\cdlongequal\": \"=\"\n};\n\nconst mathMLnode = function (label) {\n const node = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(stretchyCodePoint[label.replace(/^\\\\/, '')])]);\n node.setAttribute(\"stretchy\", \"true\");\n return node;\n}; // Many of the KaTeX SVG images have been adapted from glyphs in KaTeX fonts.\n// Copyright (c) 2009-2010, Design Science, Inc. ()\n// Copyright (c) 2014-2017 Khan Academy ()\n// Licensed under the SIL Open Font License, Version 1.1.\n// See \\nhttp://scripts.sil.org/OFL\n// Very Long SVGs\n// Many of the KaTeX stretchy wide elements use a long SVG image and an\n// overflow: hidden tactic to achieve a stretchy image while avoiding\n// distortion of arrowheads or brace corners.\n// The SVG typically contains a very long (400 em) arrow.\n// The SVG is in a container span that has overflow: hidden, so the span\n// acts like a window that exposes only part of the SVG.\n// The SVG always has a longer, thinner aspect ratio than the container span.\n// After the SVG fills 100% of the height of the container span,\n// there is a long arrow shaft left over. That left-over shaft is not shown.\n// Instead, it is sliced off because the span's CSS has overflow: hidden.\n// Thus, the reader sees an arrow that matches the subject matter width\n// without distortion.\n// Some functions, such as \\cancel, need to vary their aspect ratio. These\n// functions do not get the overflow SVG treatment.\n// Second Brush Stroke\n// Low resolution monitors struggle to display images in fine detail.\n// So browsers apply anti-aliasing. A long straight arrow shaft therefore\n// will sometimes appear as if it has a blurred edge.\n// To mitigate this, these SVG files contain a second \"brush-stroke\" on the\n// arrow shafts. That is, a second long thin rectangular SVG path has been\n// written directly on top of each arrow shaft. This reinforcement causes\n// some of the screen pixels to display as black instead of the anti-aliased\n// gray pixel that a single path would generate. So we get arrow shafts\n// whose edges appear to be sharper.\n// In the katexImagesData object just below, the dimensions all\n// correspond to path geometry inside the relevant SVG.\n// For example, \\overrightarrow uses the same arrowhead as glyph U+2192\n// from the KaTeX Main font. The scaling factor is 1000.\n// That is, inside the font, that arrowhead is 522 units tall, which\n// corresponds to 0.522 em inside the document.\n\n\nconst katexImagesData = {\n // path(s), minWidth, height, align\n overrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n overleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n underrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n underleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n xrightarrow: [[\"rightarrow\"], 1.469, 522, \"xMaxYMin\"],\n \"\\\\cdrightarrow\": [[\"rightarrow\"], 3.0, 522, \"xMaxYMin\"],\n // CD minwwidth2.5pc\n xleftarrow: [[\"leftarrow\"], 1.469, 522, \"xMinYMin\"],\n \"\\\\cdleftarrow\": [[\"leftarrow\"], 3.0, 522, \"xMinYMin\"],\n Overrightarrow: [[\"doublerightarrow\"], 0.888, 560, \"xMaxYMin\"],\n xRightarrow: [[\"doublerightarrow\"], 1.526, 560, \"xMaxYMin\"],\n xLeftarrow: [[\"doubleleftarrow\"], 1.526, 560, \"xMinYMin\"],\n overleftharpoon: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n xleftharpoonup: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n xleftharpoondown: [[\"leftharpoondown\"], 0.888, 522, \"xMinYMin\"],\n overrightharpoon: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n xrightharpoonup: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n xrightharpoondown: [[\"rightharpoondown\"], 0.888, 522, \"xMaxYMin\"],\n xlongequal: [[\"longequal\"], 0.888, 334, \"xMinYMin\"],\n \"\\\\cdlongequal\": [[\"longequal\"], 3.0, 334, \"xMinYMin\"],\n xtwoheadleftarrow: [[\"twoheadleftarrow\"], 0.888, 334, \"xMinYMin\"],\n xtwoheadrightarrow: [[\"twoheadrightarrow\"], 0.888, 334, \"xMaxYMin\"],\n overleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n overbrace: [[\"leftbrace\", \"midbrace\", \"rightbrace\"], 1.6, 548],\n underbrace: [[\"leftbraceunder\", \"midbraceunder\", \"rightbraceunder\"], 1.6, 548],\n underleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n xleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 1.75, 522],\n xLeftrightarrow: [[\"doubleleftarrow\", \"doublerightarrow\"], 1.75, 560],\n xrightleftharpoons: [[\"leftharpoondownplus\", \"rightharpoonplus\"], 1.75, 716],\n xleftrightharpoons: [[\"leftharpoonplus\", \"rightharpoondownplus\"], 1.75, 716],\n xhookleftarrow: [[\"leftarrow\", \"righthook\"], 1.08, 522],\n xhookrightarrow: [[\"lefthook\", \"rightarrow\"], 1.08, 522],\n overlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n underlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n overgroup: [[\"leftgroup\", \"rightgroup\"], 0.888, 342],\n undergroup: [[\"leftgroupunder\", \"rightgroupunder\"], 0.888, 342],\n xmapsto: [[\"leftmapsto\", \"rightarrow\"], 1.5, 522],\n xtofrom: [[\"leftToFrom\", \"rightToFrom\"], 1.75, 528],\n // The next three arrows are from the mhchem package.\n // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the\n // document as \\xrightarrow or \\xrightleftharpoons. Those have\n // min-length = 1.75em, so we set min-length on these next three to match.\n xrightleftarrows: [[\"baraboveleftarrow\", \"rightarrowabovebar\"], 1.75, 901],\n xrightequilibrium: [[\"baraboveshortleftharpoon\", \"rightharpoonaboveshortbar\"], 1.75, 716],\n xleftequilibrium: [[\"shortbaraboveleftharpoon\", \"shortrightharpoonabovebar\"], 1.75, 716]\n};\n\nconst groupLength = function (arg) {\n if (arg.type === \"ordgroup\") {\n return arg.body.length;\n } else {\n return 1;\n }\n};\n\nconst svgSpan = function (group, options) {\n // Create a span with inline SVG for the element.\n function buildSvgSpan_() {\n let viewBoxWidth = 400000; // default\n\n const label = group.label.slice(1);\n\n if (utils.contains([\"widehat\", \"widecheck\", \"widetilde\", \"utilde\"], label)) {\n // Each type in the `if` statement corresponds to one of the ParseNode\n // types below. This narrowing is required to access `grp.base`.\n // $FlowFixMe\n const grp = group; // There are four SVG images available for each function.\n // Choose a taller image when there are more characters.\n\n const numChars = groupLength(grp.base);\n let viewBoxHeight;\n let pathName;\n let height;\n\n if (numChars > 5) {\n if (label === \"widehat\" || label === \"widecheck\") {\n viewBoxHeight = 420;\n viewBoxWidth = 2364;\n height = 0.42;\n pathName = label + \"4\";\n } else {\n viewBoxHeight = 312;\n viewBoxWidth = 2340;\n height = 0.34;\n pathName = \"tilde4\";\n }\n } else {\n const imgIndex = [1, 1, 2, 2, 3, 3][numChars];\n\n if (label === \"widehat\" || label === \"widecheck\") {\n viewBoxWidth = [0, 1062, 2364, 2364, 2364][imgIndex];\n viewBoxHeight = [0, 239, 300, 360, 420][imgIndex];\n height = [0, 0.24, 0.3, 0.3, 0.36, 0.42][imgIndex];\n pathName = label + imgIndex;\n } else {\n viewBoxWidth = [0, 600, 1033, 2339, 2340][imgIndex];\n viewBoxHeight = [0, 260, 286, 306, 312][imgIndex];\n height = [0, 0.26, 0.286, 0.3, 0.306, 0.34][imgIndex];\n pathName = \"tilde\" + imgIndex;\n }\n }\n\n const path = new PathNode(pathName);\n const svgNode = new SvgNode([path], {\n \"width\": \"100%\",\n \"height\": makeEm(height),\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight,\n \"preserveAspectRatio\": \"none\"\n });\n return {\n span: buildCommon.makeSvgSpan([], [svgNode], options),\n minWidth: 0,\n height\n };\n } else {\n const spans = [];\n const data = katexImagesData[label];\n const [paths, minWidth, viewBoxHeight] = data;\n const height = viewBoxHeight / 1000;\n const numSvgChildren = paths.length;\n let widthClasses;\n let aligns;\n\n if (numSvgChildren === 1) {\n // $FlowFixMe: All these cases must be of the 4-tuple type.\n const align1 = data[3];\n widthClasses = [\"hide-tail\"];\n aligns = [align1];\n } else if (numSvgChildren === 2) {\n widthClasses = [\"halfarrow-left\", \"halfarrow-right\"];\n aligns = [\"xMinYMin\", \"xMaxYMin\"];\n } else if (numSvgChildren === 3) {\n widthClasses = [\"brace-left\", \"brace-center\", \"brace-right\"];\n aligns = [\"xMinYMin\", \"xMidYMin\", \"xMaxYMin\"];\n } else {\n throw new Error(\"Correct katexImagesData or update code here to support\\n \" + numSvgChildren + \" children.\");\n }\n\n for (let i = 0; i < numSvgChildren; i++) {\n const path = new PathNode(paths[i]);\n const svgNode = new SvgNode([path], {\n \"width\": \"400em\",\n \"height\": makeEm(height),\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight,\n \"preserveAspectRatio\": aligns[i] + \" slice\"\n });\n const span = buildCommon.makeSvgSpan([widthClasses[i]], [svgNode], options);\n\n if (numSvgChildren === 1) {\n return {\n span,\n minWidth,\n height\n };\n } else {\n span.style.height = makeEm(height);\n spans.push(span);\n }\n }\n\n return {\n span: buildCommon.makeSpan([\"stretchy\"], spans, options),\n minWidth,\n height\n };\n }\n } // buildSvgSpan_()\n\n\n const {\n span,\n minWidth,\n height\n } = buildSvgSpan_(); // Note that we are returning span.depth = 0.\n // Any adjustments relative to the baseline must be done in buildHTML.\n\n span.height = height;\n span.style.height = makeEm(height);\n\n if (minWidth > 0) {\n span.style.minWidth = makeEm(minWidth);\n }\n\n return span;\n};\n\nconst encloseSpan = function (inner, label, topPad, bottomPad, options) {\n // Return an image span for \\cancel, \\bcancel, \\xcancel, \\fbox, or \\angl\n let img;\n const totalHeight = inner.height + inner.depth + topPad + bottomPad;\n\n if (/fbox|color|angl/.test(label)) {\n img = buildCommon.makeSpan([\"stretchy\", label], [], options);\n\n if (label === \"fbox\") {\n const color = options.color && options.getColor();\n\n if (color) {\n img.style.borderColor = color;\n }\n }\n } else {\n // \\cancel, \\bcancel, or \\xcancel\n // Since \\cancel's SVG is inline and it omits the viewBox attribute,\n // its stroke-width will not vary with span area.\n const lines = [];\n\n if (/^[bx]cancel$/.test(label)) {\n lines.push(new LineNode({\n \"x1\": \"0\",\n \"y1\": \"0\",\n \"x2\": \"100%\",\n \"y2\": \"100%\",\n \"stroke-width\": \"0.046em\"\n }));\n }\n\n if (/^x?cancel$/.test(label)) {\n lines.push(new LineNode({\n \"x1\": \"0\",\n \"y1\": \"100%\",\n \"x2\": \"100%\",\n \"y2\": \"0\",\n \"stroke-width\": \"0.046em\"\n }));\n }\n\n const svgNode = new SvgNode(lines, {\n \"width\": \"100%\",\n \"height\": makeEm(totalHeight)\n });\n img = buildCommon.makeSvgSpan([], [svgNode], options);\n }\n\n img.height = totalHeight;\n img.style.height = makeEm(totalHeight);\n return img;\n};\n\n/* harmony default export */ var stretchy = ({\n encloseSpan,\n mathMLnode,\n svgSpan\n});\n;// CONCATENATED MODULE: ./src/parseNode.js\n\n\n/**\n * Asserts that the node is of the given type and returns it with stricter\n * typing. Throws if the node's type does not match.\n */\nfunction assertNodeType(node, type) {\n if (!node || node.type !== type) {\n throw new Error(\"Expected node of type \" + type + \", but got \" + (node ? \"node of type \" + node.type : String(node)));\n } // $FlowFixMe, >=0.125\n\n\n return node;\n}\n/**\n * Returns the node more strictly typed iff it is of the given type. Otherwise,\n * returns null.\n */\n\nfunction assertSymbolNodeType(node) {\n const typedNode = checkSymbolNodeType(node);\n\n if (!typedNode) {\n throw new Error(\"Expected node of symbol group type, but got \" + (node ? \"node of type \" + node.type : String(node)));\n }\n\n return typedNode;\n}\n/**\n * Returns the node more strictly typed iff it is of the given type. Otherwise,\n * returns null.\n */\n\nfunction checkSymbolNodeType(node) {\n if (node && (node.type === \"atom\" || NON_ATOMS.hasOwnProperty(node.type))) {\n // $FlowFixMe\n return node;\n }\n\n return null;\n}\n;// CONCATENATED MODULE: ./src/functions/accent.js\n\n\n\n\n\n\n\n\n\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only \"accent\", but\n// also \"supsub\" since an accent can affect super/subscripting.\nconst htmlBuilder = (grp, options) => {\n // Accents are handled in the TeXbook pg. 443, rule 12.\n let base;\n let group;\n let supSubGroup;\n\n if (grp && grp.type === \"supsub\") {\n // If our base is a character box, and we have superscripts and\n // subscripts, the supsub will defer to us. In particular, we want\n // to attach the superscripts and subscripts to the inner body (so\n // that the position of the superscripts and subscripts won't be\n // affected by the height of the accent). We accomplish this by\n // sticking the base of the accent into the base of the supsub, and\n // rendering that, while keeping track of where the accent is.\n // The real accent group is the base of the supsub group\n group = assertNodeType(grp.base, \"accent\"); // The character box is the base of the accent group\n\n base = group.base; // Stick the character box into the base of the supsub group\n\n grp.base = base; // Rerender the supsub group with its new base, and store that\n // result.\n\n supSubGroup = assertSpan(buildGroup(grp, options)); // reset original base\n\n grp.base = group;\n } else {\n group = assertNodeType(grp, \"accent\");\n base = group.base;\n } // Build the base group\n\n\n const body = buildGroup(base, options.havingCrampedStyle()); // Does the accent need to shift for the skew of a character?\n\n const mustShift = group.isShifty && utils.isCharacterBox(base); // Calculate the skew of the accent. This is based on the line \"If the\n // nucleus is not a single character, let s = 0; otherwise set s to the\n // kern amount for the nucleus followed by the \\skewchar of its font.\"\n // Note that our skew metrics are just the kern between each character\n // and the skewchar.\n\n let skew = 0;\n\n if (mustShift) {\n // If the base is a character box, then we want the skew of the\n // innermost character. To do that, we find the innermost character:\n const baseChar = utils.getBaseElem(base); // Then, we render its group to get the symbol inside it\n\n const baseGroup = buildGroup(baseChar, options.havingCrampedStyle()); // Finally, we pull the skew off of the symbol.\n\n skew = assertSymbolDomNode(baseGroup).skew; // Note that we now throw away baseGroup, because the layers we\n // removed with getBaseElem might contain things like \\color which\n // we can't get rid of.\n // TODO(emily): Find a better way to get the skew\n }\n\n const accentBelow = group.label === \"\\\\c\"; // calculate the amount of space between the body and the accent\n\n let clearance = accentBelow ? body.height + body.depth : Math.min(body.height, options.fontMetrics().xHeight); // Build the accent\n\n let accentBody;\n\n if (!group.isStretchy) {\n let accent;\n let width;\n\n if (group.label === \"\\\\vec\") {\n // Before version 0.9, \\vec used the combining font glyph U+20D7.\n // But browsers, especially Safari, are not consistent in how they\n // render combining characters when not preceded by a character.\n // So now we use an SVG.\n // If Safari reforms, we should consider reverting to the glyph.\n accent = buildCommon.staticSvg(\"vec\", options);\n width = buildCommon.svgData.vec[1];\n } else {\n accent = buildCommon.makeOrd({\n mode: group.mode,\n text: group.label\n }, options, \"textord\");\n accent = assertSymbolDomNode(accent); // Remove the italic correction of the accent, because it only serves to\n // shift the accent over to a place we don't want.\n\n accent.italic = 0;\n width = accent.width;\n\n if (accentBelow) {\n clearance += accent.depth;\n }\n }\n\n accentBody = buildCommon.makeSpan([\"accent-body\"], [accent]); // \"Full\" accents expand the width of the resulting symbol to be\n // at least the width of the accent, and overlap directly onto the\n // character without any vertical offset.\n\n const accentFull = group.label === \"\\\\textcircled\";\n\n if (accentFull) {\n accentBody.classes.push('accent-full');\n clearance = body.height;\n } // Shift the accent over by the skew.\n\n\n let left = skew; // CSS defines `.katex .accent .accent-body:not(.accent-full) { width: 0 }`\n // so that the accent doesn't contribute to the bounding box.\n // We need to shift the character by its width (effectively half\n // its width) to compensate.\n\n if (!accentFull) {\n left -= width / 2;\n }\n\n accentBody.style.left = makeEm(left); // \\textcircled uses the \\bigcirc glyph, so it needs some\n // vertical adjustment to match LaTeX.\n\n if (group.label === \"\\\\textcircled\") {\n accentBody.style.top = \".2em\";\n }\n\n accentBody = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"kern\",\n size: -clearance\n }, {\n type: \"elem\",\n elem: accentBody\n }]\n }, options);\n } else {\n accentBody = stretchy.svgSpan(group, options);\n accentBody = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"elem\",\n elem: accentBody,\n wrapperClasses: [\"svg-align\"],\n wrapperStyle: skew > 0 ? {\n width: \"calc(100% - \" + makeEm(2 * skew) + \")\",\n marginLeft: makeEm(2 * skew)\n } : undefined\n }]\n }, options);\n }\n\n const accentWrap = buildCommon.makeSpan([\"mord\", \"accent\"], [accentBody], options);\n\n if (supSubGroup) {\n // Here, we replace the \"base\" child of the supsub with our newly\n // generated accent.\n supSubGroup.children[0] = accentWrap; // Since we don't rerun the height calculation after replacing the\n // accent, we manually recalculate height.\n\n supSubGroup.height = Math.max(accentWrap.height, supSubGroup.height); // Accents should always be ords, even when their innards are not.\n\n supSubGroup.classes[0] = \"mord\";\n return supSubGroup;\n } else {\n return accentWrap;\n }\n};\n\nconst mathmlBuilder = (group, options) => {\n const accentNode = group.isStretchy ? stretchy.mathMLnode(group.label) : new mathMLTree.MathNode(\"mo\", [makeText(group.label, group.mode)]);\n const node = new mathMLTree.MathNode(\"mover\", [buildMathML_buildGroup(group.base, options), accentNode]);\n node.setAttribute(\"accent\", \"true\");\n return node;\n};\n\nconst NON_STRETCHY_ACCENT_REGEX = new RegExp([\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\"].map(accent => \"\\\\\" + accent).join(\"|\")); // Accents\n\ndefineFunction({\n type: \"accent\",\n names: [\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\", \"\\\\widecheck\", \"\\\\widehat\", \"\\\\widetilde\", \"\\\\overrightarrow\", \"\\\\overleftarrow\", \"\\\\Overrightarrow\", \"\\\\overleftrightarrow\", \"\\\\overgroup\", \"\\\\overlinesegment\", \"\\\\overleftharpoon\", \"\\\\overrightharpoon\"],\n props: {\n numArgs: 1\n },\n handler: (context, args) => {\n const base = normalizeArgument(args[0]);\n const isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName);\n const isShifty = !isStretchy || context.funcName === \"\\\\widehat\" || context.funcName === \"\\\\widetilde\" || context.funcName === \"\\\\widecheck\";\n return {\n type: \"accent\",\n mode: context.parser.mode,\n label: context.funcName,\n isStretchy: isStretchy,\n isShifty: isShifty,\n base: base\n };\n },\n htmlBuilder,\n mathmlBuilder\n}); // Text-mode accents\n\ndefineFunction({\n type: \"accent\",\n names: [\"\\\\'\", \"\\\\`\", \"\\\\^\", \"\\\\~\", \"\\\\=\", \"\\\\u\", \"\\\\.\", '\\\\\"', \"\\\\c\", \"\\\\r\", \"\\\\H\", \"\\\\v\", \"\\\\textcircled\"],\n props: {\n numArgs: 1,\n allowedInText: true,\n allowedInMath: true,\n // unless in strict mode\n argTypes: [\"primitive\"]\n },\n handler: (context, args) => {\n const base = args[0];\n let mode = context.parser.mode;\n\n if (mode === \"math\") {\n context.parser.settings.reportNonstrict(\"mathVsTextAccents\", \"LaTeX's accent \" + context.funcName + \" works only in text mode\");\n mode = \"text\";\n }\n\n return {\n type: \"accent\",\n mode: mode,\n label: context.funcName,\n isStretchy: false,\n isShifty: true,\n base: base\n };\n },\n htmlBuilder,\n mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/accentunder.js\n// Horizontal overlap functions\n\n\n\n\n\n\ndefineFunction({\n type: \"accentUnder\",\n names: [\"\\\\underleftarrow\", \"\\\\underrightarrow\", \"\\\\underleftrightarrow\", \"\\\\undergroup\", \"\\\\underlinesegment\", \"\\\\utilde\"],\n props: {\n numArgs: 1\n },\n handler: (_ref, args) => {\n let {\n parser,\n funcName\n } = _ref;\n const base = args[0];\n return {\n type: \"accentUnder\",\n mode: parser.mode,\n label: funcName,\n base: base\n };\n },\n htmlBuilder: (group, options) => {\n // Treat under accents much like underlines.\n const innerGroup = buildGroup(group.base, options);\n const accentBody = stretchy.svgSpan(group, options);\n const kern = group.label === \"\\\\utilde\" ? 0.12 : 0; // Generate the vlist, with the appropriate kerns\n\n const vlist = buildCommon.makeVList({\n positionType: \"top\",\n positionData: innerGroup.height,\n children: [{\n type: \"elem\",\n elem: accentBody,\n wrapperClasses: [\"svg-align\"]\n }, {\n type: \"kern\",\n size: kern\n }, {\n type: \"elem\",\n elem: innerGroup\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"accentunder\"], [vlist], options);\n },\n mathmlBuilder: (group, options) => {\n const accentNode = stretchy.mathMLnode(group.label);\n const node = new mathMLTree.MathNode(\"munder\", [buildMathML_buildGroup(group.base, options), accentNode]);\n node.setAttribute(\"accentunder\", \"true\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/arrow.js\n\n\n\n\n\n\n\n// Helper function\nconst paddedNode = group => {\n const node = new mathMLTree.MathNode(\"mpadded\", group ? [group] : []);\n node.setAttribute(\"width\", \"+0.6em\");\n node.setAttribute(\"lspace\", \"0.3em\");\n return node;\n}; // Stretchy arrows with an optional argument\n\n\ndefineFunction({\n type: \"xArrow\",\n names: [\"\\\\xleftarrow\", \"\\\\xrightarrow\", \"\\\\xLeftarrow\", \"\\\\xRightarrow\", \"\\\\xleftrightarrow\", \"\\\\xLeftrightarrow\", \"\\\\xhookleftarrow\", \"\\\\xhookrightarrow\", \"\\\\xmapsto\", \"\\\\xrightharpoondown\", \"\\\\xrightharpoonup\", \"\\\\xleftharpoondown\", \"\\\\xleftharpoonup\", \"\\\\xrightleftharpoons\", \"\\\\xleftrightharpoons\", \"\\\\xlongequal\", \"\\\\xtwoheadrightarrow\", \"\\\\xtwoheadleftarrow\", \"\\\\xtofrom\", // The next 3 functions are here to support the mhchem extension.\n // Direct use of these functions is discouraged and may break someday.\n \"\\\\xrightleftarrows\", \"\\\\xrightequilibrium\", \"\\\\xleftequilibrium\", // The next 3 functions are here only to support the {CD} environment.\n \"\\\\\\\\cdrightarrow\", \"\\\\\\\\cdleftarrow\", \"\\\\\\\\cdlongequal\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1\n },\n\n handler(_ref, args, optArgs) {\n let {\n parser,\n funcName\n } = _ref;\n return {\n type: \"xArrow\",\n mode: parser.mode,\n label: funcName,\n body: args[0],\n below: optArgs[0]\n };\n },\n\n // Flow is unable to correctly infer the type of `group`, even though it's\n // unambiguously determined from the passed-in `type` above.\n htmlBuilder(group, options) {\n const style = options.style; // Build the argument groups in the appropriate style.\n // Ref: amsmath.dtx: \\hbox{$\\scriptstyle\\mkern#3mu{#6}\\mkern#4mu$}%\n // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n\n let newOptions = options.havingStyle(style.sup());\n const upperGroup = buildCommon.wrapFragment(buildGroup(group.body, newOptions, options), options);\n const arrowPrefix = group.label.slice(0, 2) === \"\\\\x\" ? \"x\" : \"cd\";\n upperGroup.classes.push(arrowPrefix + \"-arrow-pad\");\n let lowerGroup;\n\n if (group.below) {\n // Build the lower group\n newOptions = options.havingStyle(style.sub());\n lowerGroup = buildCommon.wrapFragment(buildGroup(group.below, newOptions, options), options);\n lowerGroup.classes.push(arrowPrefix + \"-arrow-pad\");\n }\n\n const arrowBody = stretchy.svgSpan(group, options); // Re shift: Note that stretchy.svgSpan returned arrowBody.depth = 0.\n // The point we want on the math axis is at 0.5 * arrowBody.height.\n\n const arrowShift = -options.fontMetrics().axisHeight + 0.5 * arrowBody.height; // 2 mu kern. Ref: amsmath.dtx: #7\\if0#2\\else\\mkern#2mu\\fi\n\n let upperShift = -options.fontMetrics().axisHeight - 0.5 * arrowBody.height - 0.111; // 0.111 em = 2 mu\n\n if (upperGroup.depth > 0.25 || group.label === \"\\\\xleftequilibrium\") {\n upperShift -= upperGroup.depth; // shift up if depth encroaches\n } // Generate the vlist\n\n\n let vlist;\n\n if (lowerGroup) {\n const lowerShift = -options.fontMetrics().axisHeight + lowerGroup.height + 0.5 * arrowBody.height + 0.111;\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: upperGroup,\n shift: upperShift\n }, {\n type: \"elem\",\n elem: arrowBody,\n shift: arrowShift\n }, {\n type: \"elem\",\n elem: lowerGroup,\n shift: lowerShift\n }]\n }, options);\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: upperGroup,\n shift: upperShift\n }, {\n type: \"elem\",\n elem: arrowBody,\n shift: arrowShift\n }]\n }, options);\n } // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n\n vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n return buildCommon.makeSpan([\"mrel\", \"x-arrow\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n const arrowNode = stretchy.mathMLnode(group.label);\n arrowNode.setAttribute(\"minsize\", group.label.charAt(0) === \"x\" ? \"1.75em\" : \"3.0em\");\n let node;\n\n if (group.body) {\n const upperNode = paddedNode(buildMathML_buildGroup(group.body, options));\n\n if (group.below) {\n const lowerNode = paddedNode(buildMathML_buildGroup(group.below, options));\n node = new mathMLTree.MathNode(\"munderover\", [arrowNode, lowerNode, upperNode]);\n } else {\n node = new mathMLTree.MathNode(\"mover\", [arrowNode, upperNode]);\n }\n } else if (group.below) {\n const lowerNode = paddedNode(buildMathML_buildGroup(group.below, options));\n node = new mathMLTree.MathNode(\"munder\", [arrowNode, lowerNode]);\n } else {\n // This should never happen.\n // Parser.js throws an error if there is no argument.\n node = paddedNode();\n node = new mathMLTree.MathNode(\"mover\", [arrowNode, node]);\n }\n\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/mclass.js\n\n\n\n\n\n\nconst mclass_makeSpan = buildCommon.makeSpan;\n\nfunction mclass_htmlBuilder(group, options) {\n const elements = buildExpression(group.body, options, true);\n return mclass_makeSpan([group.mclass], elements, options);\n}\n\nfunction mclass_mathmlBuilder(group, options) {\n let node;\n const inner = buildMathML_buildExpression(group.body, options);\n\n if (group.mclass === \"minner\") {\n node = new mathMLTree.MathNode(\"mpadded\", inner);\n } else if (group.mclass === \"mord\") {\n if (group.isCharacterBox) {\n node = inner[0];\n node.type = \"mi\";\n } else {\n node = new mathMLTree.MathNode(\"mi\", inner);\n }\n } else {\n if (group.isCharacterBox) {\n node = inner[0];\n node.type = \"mo\";\n } else {\n node = new mathMLTree.MathNode(\"mo\", inner);\n } // Set spacing based on what is the most likely adjacent atom type.\n // See TeXbook p170.\n\n\n if (group.mclass === \"mbin\") {\n node.attributes.lspace = \"0.22em\"; // medium space\n\n node.attributes.rspace = \"0.22em\";\n } else if (group.mclass === \"mpunct\") {\n node.attributes.lspace = \"0em\";\n node.attributes.rspace = \"0.17em\"; // thinspace\n } else if (group.mclass === \"mopen\" || group.mclass === \"mclose\") {\n node.attributes.lspace = \"0em\";\n node.attributes.rspace = \"0em\";\n } else if (group.mclass === \"minner\") {\n node.attributes.lspace = \"0.0556em\"; // 1 mu is the most likely option\n\n node.attributes.width = \"+0.1111em\";\n } // MathML default space is 5/18 em, so needs no action.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo\n\n }\n\n return node;\n} // Math class commands except \\mathop\n\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\mathord\", \"\\\\mathbin\", \"\\\\mathrel\", \"\\\\mathopen\", \"\\\\mathclose\", \"\\\\mathpunct\", \"\\\\mathinner\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n\n handler(_ref, args) {\n let {\n parser,\n funcName\n } = _ref;\n const body = args[0];\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: \"m\" + funcName.slice(5),\n // TODO(kevinb): don't prefix with 'm'\n body: ordargument(body),\n isCharacterBox: utils.isCharacterBox(body)\n };\n },\n\n htmlBuilder: mclass_htmlBuilder,\n mathmlBuilder: mclass_mathmlBuilder\n});\nconst binrelClass = arg => {\n // \\binrel@ spacing varies with (bin|rel|ord) of the atom in the argument.\n // (by rendering separately and with {}s before and after, and measuring\n // the change in spacing). We'll do roughly the same by detecting the\n // atom type directly.\n const atom = arg.type === \"ordgroup\" && arg.body.length ? arg.body[0] : arg;\n\n if (atom.type === \"atom\" && (atom.family === \"bin\" || atom.family === \"rel\")) {\n return \"m\" + atom.family;\n } else {\n return \"mord\";\n }\n}; // \\@binrel{x}{y} renders like y but as mbin/mrel/mord if x is mbin/mrel/mord.\n// This is equivalent to \\binrel@{x}\\binrel@@{y} in AMSTeX.\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\@binrel\"],\n props: {\n numArgs: 2\n },\n\n handler(_ref2, args) {\n let {\n parser\n } = _ref2;\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: binrelClass(args[0]),\n body: ordargument(args[1]),\n isCharacterBox: utils.isCharacterBox(args[1])\n };\n }\n\n}); // Build a relation or stacked op by placing one symbol on top of another\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\stackrel\", \"\\\\overset\", \"\\\\underset\"],\n props: {\n numArgs: 2\n },\n\n handler(_ref3, args) {\n let {\n parser,\n funcName\n } = _ref3;\n const baseArg = args[1];\n const shiftedArg = args[0];\n let mclass;\n\n if (funcName !== \"\\\\stackrel\") {\n // LaTeX applies \\binrel spacing to \\overset and \\underset.\n mclass = binrelClass(baseArg);\n } else {\n mclass = \"mrel\"; // for \\stackrel\n }\n\n const baseOp = {\n type: \"op\",\n mode: baseArg.mode,\n limits: true,\n alwaysHandleSupSub: true,\n parentIsSupSub: false,\n symbol: false,\n suppressBaseShift: funcName !== \"\\\\stackrel\",\n body: ordargument(baseArg)\n };\n const supsub = {\n type: \"supsub\",\n mode: shiftedArg.mode,\n base: baseOp,\n sup: funcName === \"\\\\underset\" ? null : shiftedArg,\n sub: funcName === \"\\\\underset\" ? shiftedArg : null\n };\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass,\n body: [supsub],\n isCharacterBox: utils.isCharacterBox(supsub)\n };\n },\n\n htmlBuilder: mclass_htmlBuilder,\n mathmlBuilder: mclass_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/pmb.js\n\n\n\n\n\n\n// \\pmb is a simulation of bold font.\n// The version of \\pmb in ambsy.sty works by typesetting three copies\n// with small offsets. We use CSS text-shadow.\n// It's a hack. Not as good as a real bold font. Better than nothing.\ndefineFunction({\n type: \"pmb\",\n names: [\"\\\\pmb\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n let {\n parser\n } = _ref;\n return {\n type: \"pmb\",\n mode: parser.mode,\n mclass: binrelClass(args[0]),\n body: ordargument(args[0])\n };\n },\n\n htmlBuilder(group, options) {\n const elements = buildExpression(group.body, options, true);\n const node = buildCommon.makeSpan([group.mclass], elements, options);\n node.style.textShadow = \"0.02em 0.01em 0.04px\";\n return node;\n },\n\n mathmlBuilder(group, style) {\n const inner = buildMathML_buildExpression(group.body, style); // Wrap with an element.\n\n const node = new mathMLTree.MathNode(\"mstyle\", inner);\n node.setAttribute(\"style\", \"text-shadow: 0.02em 0.01em 0.04px\");\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/environments/cd.js\n\n\n\n\n\n\n\n\nconst cdArrowFunctionName = {\n \">\": \"\\\\\\\\cdrightarrow\",\n \"<\": \"\\\\\\\\cdleftarrow\",\n \"=\": \"\\\\\\\\cdlongequal\",\n \"A\": \"\\\\uparrow\",\n \"V\": \"\\\\downarrow\",\n \"|\": \"\\\\Vert\",\n \".\": \"no arrow\"\n};\n\nconst newCell = () => {\n // Create an empty cell, to be filled below with parse nodes.\n // The parseTree from this module must be constructed like the\n // one created by parseArray(), so an empty CD cell must\n // be a ParseNode<\"styling\">. And CD is always displaystyle.\n // So these values are fixed and flow can do implicit typing.\n return {\n type: \"styling\",\n body: [],\n mode: \"math\",\n style: \"display\"\n };\n};\n\nconst isStartOfArrow = node => {\n return node.type === \"textord\" && node.text === \"@\";\n};\n\nconst isLabelEnd = (node, endChar) => {\n return (node.type === \"mathord\" || node.type === \"atom\") && node.text === endChar;\n};\n\nfunction cdArrow(arrowChar, labels, parser) {\n // Return a parse tree of an arrow and its labels.\n // This acts in a way similar to a macro expansion.\n const funcName = cdArrowFunctionName[arrowChar];\n\n switch (funcName) {\n case \"\\\\\\\\cdrightarrow\":\n case \"\\\\\\\\cdleftarrow\":\n return parser.callFunction(funcName, [labels[0]], [labels[1]]);\n\n case \"\\\\uparrow\":\n case \"\\\\downarrow\":\n {\n const leftLabel = parser.callFunction(\"\\\\\\\\cdleft\", [labels[0]], []);\n const bareArrow = {\n type: \"atom\",\n text: funcName,\n mode: \"math\",\n family: \"rel\"\n };\n const sizedArrow = parser.callFunction(\"\\\\Big\", [bareArrow], []);\n const rightLabel = parser.callFunction(\"\\\\\\\\cdright\", [labels[1]], []);\n const arrowGroup = {\n type: \"ordgroup\",\n mode: \"math\",\n body: [leftLabel, sizedArrow, rightLabel]\n };\n return parser.callFunction(\"\\\\\\\\cdparent\", [arrowGroup], []);\n }\n\n case \"\\\\\\\\cdlongequal\":\n return parser.callFunction(\"\\\\\\\\cdlongequal\", [], []);\n\n case \"\\\\Vert\":\n {\n const arrow = {\n type: \"textord\",\n text: \"\\\\Vert\",\n mode: \"math\"\n };\n return parser.callFunction(\"\\\\Big\", [arrow], []);\n }\n\n default:\n return {\n type: \"textord\",\n text: \" \",\n mode: \"math\"\n };\n }\n}\n\nfunction parseCD(parser) {\n // Get the array's parse nodes with \\\\ temporarily mapped to \\cr.\n const parsedRows = [];\n parser.gullet.beginGroup();\n parser.gullet.macros.set(\"\\\\cr\", \"\\\\\\\\\\\\relax\");\n parser.gullet.beginGroup();\n\n while (true) {\n // eslint-disable-line no-constant-condition\n // Get the parse nodes for the next row.\n parsedRows.push(parser.parseExpression(false, \"\\\\\\\\\"));\n parser.gullet.endGroup();\n parser.gullet.beginGroup();\n const next = parser.fetch().text;\n\n if (next === \"&\" || next === \"\\\\\\\\\") {\n parser.consume();\n } else if (next === \"\\\\end\") {\n if (parsedRows[parsedRows.length - 1].length === 0) {\n parsedRows.pop(); // final row ended in \\\\\n }\n\n break;\n } else {\n throw new src_ParseError(\"Expected \\\\\\\\ or \\\\cr or \\\\end\", parser.nextToken);\n }\n }\n\n let row = [];\n const body = [row]; // Loop thru the parse nodes. Collect them into cells and arrows.\n\n for (let i = 0; i < parsedRows.length; i++) {\n // Start a new row.\n const rowNodes = parsedRows[i]; // Create the first cell.\n\n let cell = newCell();\n\n for (let j = 0; j < rowNodes.length; j++) {\n if (!isStartOfArrow(rowNodes[j])) {\n // If a parseNode is not an arrow, it goes into a cell.\n cell.body.push(rowNodes[j]);\n } else {\n // Parse node j is an \"@\", the start of an arrow.\n // Before starting on the arrow, push the cell into `row`.\n row.push(cell); // Now collect parseNodes into an arrow.\n // The character after \"@\" defines the arrow type.\n\n j += 1;\n const arrowChar = assertSymbolNodeType(rowNodes[j]).text; // Create two empty label nodes. We may or may not use them.\n\n const labels = new Array(2);\n labels[0] = {\n type: \"ordgroup\",\n mode: \"math\",\n body: []\n };\n labels[1] = {\n type: \"ordgroup\",\n mode: \"math\",\n body: []\n }; // Process the arrow.\n\n if (\"=|.\".indexOf(arrowChar) > -1) {// Three \"arrows\", ``@=`, `@|`, and `@.`, do not take labels.\n // Do nothing here.\n } else if (\"<>AV\".indexOf(arrowChar) > -1) {\n // Four arrows, `@>>>`, `@<<<`, `@AAA`, and `@VVV`, each take\n // two optional labels. E.g. the right-point arrow syntax is\n // really: @>{optional label}>{optional label}>\n // Collect parseNodes into labels.\n for (let labelNum = 0; labelNum < 2; labelNum++) {\n let inLabel = true;\n\n for (let k = j + 1; k < rowNodes.length; k++) {\n if (isLabelEnd(rowNodes[k], arrowChar)) {\n inLabel = false;\n j = k;\n break;\n }\n\n if (isStartOfArrow(rowNodes[k])) {\n throw new src_ParseError(\"Missing a \" + arrowChar + \" character to complete a CD arrow.\", rowNodes[k]);\n }\n\n labels[labelNum].body.push(rowNodes[k]);\n }\n\n if (inLabel) {\n // isLabelEnd never returned a true.\n throw new src_ParseError(\"Missing a \" + arrowChar + \" character to complete a CD arrow.\", rowNodes[j]);\n }\n }\n } else {\n throw new src_ParseError(\"Expected one of \\\"<>AV=|.\\\" after @\", rowNodes[j]);\n } // Now join the arrow to its labels.\n\n\n const arrow = cdArrow(arrowChar, labels, parser); // Wrap the arrow in ParseNode<\"styling\">.\n // This is done to match parseArray() behavior.\n\n const wrappedArrow = {\n type: \"styling\",\n body: [arrow],\n mode: \"math\",\n style: \"display\" // CD is always displaystyle.\n\n };\n row.push(wrappedArrow); // In CD's syntax, cells are implicit. That is, everything that\n // is not an arrow gets collected into a cell. So create an empty\n // cell now. It will collect upcoming parseNodes.\n\n cell = newCell();\n }\n }\n\n if (i % 2 === 0) {\n // Even-numbered rows consist of: cell, arrow, cell, arrow, ... cell\n // The last cell is not yet pushed into `row`, so:\n row.push(cell);\n } else {\n // Odd-numbered rows consist of: vert arrow, empty cell, ... vert arrow\n // Remove the empty cell that was placed at the beginning of `row`.\n row.shift();\n }\n\n row = [];\n body.push(row);\n } // End row group\n\n\n parser.gullet.endGroup(); // End array group defining \\\\\n\n parser.gullet.endGroup(); // define column separation.\n\n const cols = new Array(body[0].length).fill({\n type: \"align\",\n align: \"c\",\n pregap: 0.25,\n // CD package sets \\enskip between columns.\n postgap: 0.25 // So pre and post each get half an \\enskip, i.e. 0.25em.\n\n });\n return {\n type: \"array\",\n mode: \"math\",\n body,\n arraystretch: 1,\n addJot: true,\n rowGaps: [null],\n cols,\n colSeparationType: \"CD\",\n hLinesBeforeRow: new Array(body.length + 1).fill([])\n };\n} // The functions below are not available for general use.\n// They are here only for internal use by the {CD} environment in placing labels\n// next to vertical arrows.\n// We don't need any such functions for horizontal arrows because we can reuse\n// the functionality that already exists for extensible arrows.\n\ndefineFunction({\n type: \"cdlabel\",\n names: [\"\\\\\\\\cdleft\", \"\\\\\\\\cdright\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n let {\n parser,\n funcName\n } = _ref;\n return {\n type: \"cdlabel\",\n mode: parser.mode,\n side: funcName.slice(4),\n label: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n const newOptions = options.havingStyle(options.style.sup());\n const label = buildCommon.wrapFragment(buildGroup(group.label, newOptions, options), options);\n label.classes.push(\"cd-label-\" + group.side);\n label.style.bottom = makeEm(0.8 - label.depth); // Zero out label height & depth, so vertical align of arrow is set\n // by the arrow height, not by the label.\n\n label.height = 0;\n label.depth = 0;\n return label;\n },\n\n mathmlBuilder(group, options) {\n let label = new mathMLTree.MathNode(\"mrow\", [buildMathML_buildGroup(group.label, options)]);\n label = new mathMLTree.MathNode(\"mpadded\", [label]);\n label.setAttribute(\"width\", \"0\");\n\n if (group.side === \"left\") {\n label.setAttribute(\"lspace\", \"-1width\");\n } // We have to guess at vertical alignment. We know the arrow is 1.8em tall,\n // But we don't know the height or depth of the label.\n\n\n label.setAttribute(\"voffset\", \"0.7em\");\n label = new mathMLTree.MathNode(\"mstyle\", [label]);\n label.setAttribute(\"displaystyle\", \"false\");\n label.setAttribute(\"scriptlevel\", \"1\");\n return label;\n }\n\n});\ndefineFunction({\n type: \"cdlabelparent\",\n names: [\"\\\\\\\\cdparent\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref2, args) {\n let {\n parser\n } = _ref2;\n return {\n type: \"cdlabelparent\",\n mode: parser.mode,\n fragment: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n // Wrap the vertical arrow and its labels.\n // The parent gets position: relative. The child gets position: absolute.\n // So CSS can locate the label correctly.\n const parent = buildCommon.wrapFragment(buildGroup(group.fragment, options), options);\n parent.classes.push(\"cd-vert-arrow\");\n return parent;\n },\n\n mathmlBuilder(group, options) {\n return new mathMLTree.MathNode(\"mrow\", [buildMathML_buildGroup(group.fragment, options)]);\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/char.js\n\n\n // \\@char is an internal function that takes a grouped decimal argument like\n// {123} and converts into symbol with code 123. It is used by the *macro*\n// \\char defined in macros.js.\n\ndefineFunction({\n type: \"textord\",\n names: [\"\\\\@char\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n let {\n parser\n } = _ref;\n const arg = assertNodeType(args[0], \"ordgroup\");\n const group = arg.body;\n let number = \"\";\n\n for (let i = 0; i < group.length; i++) {\n const node = assertNodeType(group[i], \"textord\");\n number += node.text;\n }\n\n let code = parseInt(number);\n let text;\n\n if (isNaN(code)) {\n throw new src_ParseError(\"\\\\@char has non-numeric argument \" + number); // If we drop IE support, the following code could be replaced with\n // text = String.fromCodePoint(code)\n } else if (code < 0 || code >= 0x10ffff) {\n throw new src_ParseError(\"\\\\@char with invalid code point \" + number);\n } else if (code <= 0xffff) {\n text = String.fromCharCode(code);\n } else {\n // Astral code point; split into surrogate halves\n code -= 0x10000;\n text = String.fromCharCode((code >> 10) + 0xd800, (code & 0x3ff) + 0xdc00);\n }\n\n return {\n type: \"textord\",\n mode: parser.mode,\n text: text\n };\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/color.js\n\n\n\n\n\n\n\nconst color_htmlBuilder = (group, options) => {\n const elements = buildExpression(group.body, options.withColor(group.color), false); // \\color isn't supposed to affect the type of the elements it contains.\n // To accomplish this, we wrap the results in a fragment, so the inner\n // elements will be able to directly interact with their neighbors. For\n // example, `\\color{red}{2 +} 3` has the same spacing as `2 + 3`\n\n return buildCommon.makeFragment(elements);\n};\n\nconst color_mathmlBuilder = (group, options) => {\n const inner = buildMathML_buildExpression(group.body, options.withColor(group.color));\n const node = new mathMLTree.MathNode(\"mstyle\", inner);\n node.setAttribute(\"mathcolor\", group.color);\n return node;\n};\n\ndefineFunction({\n type: \"color\",\n names: [\"\\\\textcolor\"],\n props: {\n numArgs: 2,\n allowedInText: true,\n argTypes: [\"color\", \"original\"]\n },\n\n handler(_ref, args) {\n let {\n parser\n } = _ref;\n const color = assertNodeType(args[0], \"color-token\").color;\n const body = args[1];\n return {\n type: \"color\",\n mode: parser.mode,\n color,\n body: ordargument(body)\n };\n },\n\n htmlBuilder: color_htmlBuilder,\n mathmlBuilder: color_mathmlBuilder\n});\ndefineFunction({\n type: \"color\",\n names: [\"\\\\color\"],\n props: {\n numArgs: 1,\n allowedInText: true,\n argTypes: [\"color\"]\n },\n\n handler(_ref2, args) {\n let {\n parser,\n breakOnTokenText\n } = _ref2;\n const color = assertNodeType(args[0], \"color-token\").color; // Set macro \\current@color in current namespace to store the current\n // color, mimicking the behavior of color.sty.\n // This is currently used just to correctly color a \\right\n // that follows a \\color command.\n\n parser.gullet.macros.set(\"\\\\current@color\", color); // Parse out the implicit body that should be colored.\n\n const body = parser.parseExpression(true, breakOnTokenText);\n return {\n type: \"color\",\n mode: parser.mode,\n color,\n body\n };\n },\n\n htmlBuilder: color_htmlBuilder,\n mathmlBuilder: color_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/cr.js\n// Row breaks within tabular environments, and line breaks at top level\n\n\n\n\n // \\DeclareRobustCommand\\\\{...\\@xnewline}\n\ndefineFunction({\n type: \"cr\",\n names: [\"\\\\\\\\\"],\n props: {\n numArgs: 0,\n numOptionalArgs: 0,\n allowedInText: true\n },\n\n handler(_ref, args, optArgs) {\n let {\n parser\n } = _ref;\n const size = parser.gullet.future().text === \"[\" ? parser.parseSizeGroup(true) : null;\n const newLine = !parser.settings.displayMode || !parser.settings.useStrictBehavior(\"newLineInDisplayMode\", \"In LaTeX, \\\\\\\\ or \\\\newline \" + \"does nothing in display mode\");\n return {\n type: \"cr\",\n mode: parser.mode,\n newLine,\n size: size && assertNodeType(size, \"size\").value\n };\n },\n\n // The following builders are called only at the top level,\n // not within tabular/array environments.\n htmlBuilder(group, options) {\n const span = buildCommon.makeSpan([\"mspace\"], [], options);\n\n if (group.newLine) {\n span.classes.push(\"newline\");\n\n if (group.size) {\n span.style.marginTop = makeEm(calculateSize(group.size, options));\n }\n }\n\n return span;\n },\n\n mathmlBuilder(group, options) {\n const node = new mathMLTree.MathNode(\"mspace\");\n\n if (group.newLine) {\n node.setAttribute(\"linebreak\", \"newline\");\n\n if (group.size) {\n node.setAttribute(\"height\", makeEm(calculateSize(group.size, options)));\n }\n }\n\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/def.js\n\n\n\nconst globalMap = {\n \"\\\\global\": \"\\\\global\",\n \"\\\\long\": \"\\\\\\\\globallong\",\n \"\\\\\\\\globallong\": \"\\\\\\\\globallong\",\n \"\\\\def\": \"\\\\gdef\",\n \"\\\\gdef\": \"\\\\gdef\",\n \"\\\\edef\": \"\\\\xdef\",\n \"\\\\xdef\": \"\\\\xdef\",\n \"\\\\let\": \"\\\\\\\\globallet\",\n \"\\\\futurelet\": \"\\\\\\\\globalfuture\"\n};\n\nconst checkControlSequence = tok => {\n const name = tok.text;\n\n if (/^(?:[\\\\{}$&#^_]|EOF)$/.test(name)) {\n throw new src_ParseError(\"Expected a control sequence\", tok);\n }\n\n return name;\n};\n\nconst getRHS = parser => {\n let tok = parser.gullet.popToken();\n\n if (tok.text === \"=\") {\n // consume optional equals\n tok = parser.gullet.popToken();\n\n if (tok.text === \" \") {\n // consume one optional space\n tok = parser.gullet.popToken();\n }\n }\n\n return tok;\n};\n\nconst letCommand = (parser, name, tok, global) => {\n let macro = parser.gullet.macros.get(tok.text);\n\n if (macro == null) {\n // don't expand it later even if a macro with the same name is defined\n // e.g., \\let\\foo=\\frac \\def\\frac{\\relax} \\frac12\n tok.noexpand = true;\n macro = {\n tokens: [tok],\n numArgs: 0,\n // reproduce the same behavior in expansion\n unexpandable: !parser.gullet.isExpandable(tok.text)\n };\n }\n\n parser.gullet.macros.set(name, macro, global);\n}; // -> |\n// -> |\\global\n// -> |\n// -> \\global|\\long|\\outer\n\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\global\", \"\\\\long\", \"\\\\\\\\globallong\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(_ref) {\n let {\n parser,\n funcName\n } = _ref;\n parser.consumeSpaces();\n const token = parser.fetch();\n\n if (globalMap[token.text]) {\n // KaTeX doesn't have \\par, so ignore \\long\n if (funcName === \"\\\\global\" || funcName === \"\\\\\\\\globallong\") {\n token.text = globalMap[token.text];\n }\n\n return assertNodeType(parser.parseFunction(), \"internal\");\n }\n\n throw new src_ParseError(\"Invalid token after macro prefix\", token);\n }\n\n}); // Basic support for macro definitions: \\def, \\gdef, \\edef, \\xdef\n// -> \n// -> \\def|\\gdef|\\edef|\\xdef\n// -> \n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\def\", \"\\\\gdef\", \"\\\\edef\", \"\\\\xdef\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref2) {\n let {\n parser,\n funcName\n } = _ref2;\n let tok = parser.gullet.popToken();\n const name = tok.text;\n\n if (/^(?:[\\\\{}$&#^_]|EOF)$/.test(name)) {\n throw new src_ParseError(\"Expected a control sequence\", tok);\n }\n\n let numArgs = 0;\n let insert;\n const delimiters = [[]]; // contains no braces\n\n while (parser.gullet.future().text !== \"{\") {\n tok = parser.gullet.popToken();\n\n if (tok.text === \"#\") {\n // If the very last character of the is #, so that\n // this # is immediately followed by {, TeX will behave as if the {\n // had been inserted at the right end of both the parameter text\n // and the replacement text.\n if (parser.gullet.future().text === \"{\") {\n insert = parser.gullet.future();\n delimiters[numArgs].push(\"{\");\n break;\n } // A parameter, the first appearance of # must be followed by 1,\n // the next by 2, and so on; up to nine #’s are allowed\n\n\n tok = parser.gullet.popToken();\n\n if (!/^[1-9]$/.test(tok.text)) {\n throw new src_ParseError(\"Invalid argument number \\\"\" + tok.text + \"\\\"\");\n }\n\n if (parseInt(tok.text) !== numArgs + 1) {\n throw new src_ParseError(\"Argument number \\\"\" + tok.text + \"\\\" out of order\");\n }\n\n numArgs++;\n delimiters.push([]);\n } else if (tok.text === \"EOF\") {\n throw new src_ParseError(\"Expected a macro definition\");\n } else {\n delimiters[numArgs].push(tok.text);\n }\n } // replacement text, enclosed in '{' and '}' and properly nested\n\n\n let {\n tokens\n } = parser.gullet.consumeArg();\n\n if (insert) {\n tokens.unshift(insert);\n }\n\n if (funcName === \"\\\\edef\" || funcName === \"\\\\xdef\") {\n tokens = parser.gullet.expandTokens(tokens);\n tokens.reverse(); // to fit in with stack order\n } // Final arg is the expansion of the macro\n\n\n parser.gullet.macros.set(name, {\n tokens,\n numArgs,\n delimiters\n }, funcName === globalMap[funcName]);\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n}); // -> \n// -> \\futurelet\n// | \\let\n// -> |=\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\let\", \"\\\\\\\\globallet\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref3) {\n let {\n parser,\n funcName\n } = _ref3;\n const name = checkControlSequence(parser.gullet.popToken());\n parser.gullet.consumeSpaces();\n const tok = getRHS(parser);\n letCommand(parser, name, tok, funcName === \"\\\\\\\\globallet\");\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n}); // ref: https://www.tug.org/TUGboat/tb09-3/tb22bechtolsheim.pdf\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\futurelet\", \"\\\\\\\\globalfuture\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref4) {\n let {\n parser,\n funcName\n } = _ref4;\n const name = checkControlSequence(parser.gullet.popToken());\n const middle = parser.gullet.popToken();\n const tok = parser.gullet.popToken();\n letCommand(parser, name, tok, funcName === \"\\\\\\\\globalfuture\");\n parser.gullet.pushToken(tok);\n parser.gullet.pushToken(middle);\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n});\n;// CONCATENATED MODULE: ./src/delimiter.js\n/**\n * This file deals with creating delimiters of various sizes. The TeXbook\n * discusses these routines on page 441-442, in the \"Another subroutine sets box\n * x to a specified variable delimiter\" paragraph.\n *\n * There are three main routines here. `makeSmallDelim` makes a delimiter in the\n * normal font, but in either text, script, or scriptscript style.\n * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1,\n * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of\n * smaller pieces that are stacked on top of one another.\n *\n * The functions take a parameter `center`, which determines if the delimiter\n * should be centered around the axis.\n *\n * Then, there are three exposed functions. `sizedDelim` makes a delimiter in\n * one of the given sizes. This is used for things like `\\bigl`.\n * `customSizedDelim` makes a delimiter with a given total height+depth. It is\n * called in places like `\\sqrt`. `leftRightDelim` makes an appropriate\n * delimiter which surrounds an expression of a given height an depth. It is\n * used in `\\left` and `\\right`.\n */\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Get the metrics for a given symbol and font, after transformation (i.e.\n * after following replacement from symbols.js)\n */\nconst getMetrics = function (symbol, font, mode) {\n const replace = src_symbols.math[symbol] && src_symbols.math[symbol].replace;\n const metrics = getCharacterMetrics(replace || symbol, font, mode);\n\n if (!metrics) {\n throw new Error(\"Unsupported symbol \" + symbol + \" and font size \" + font + \".\");\n }\n\n return metrics;\n};\n/**\n * Puts a delimiter span in a given style, and adds appropriate height, depth,\n * and maxFontSizes.\n */\n\n\nconst styleWrap = function (delim, toStyle, options, classes) {\n const newOptions = options.havingBaseStyle(toStyle);\n const span = buildCommon.makeSpan(classes.concat(newOptions.sizingClasses(options)), [delim], options);\n const delimSizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier;\n span.height *= delimSizeMultiplier;\n span.depth *= delimSizeMultiplier;\n span.maxFontSize = newOptions.sizeMultiplier;\n return span;\n};\n\nconst centerSpan = function (span, options, style) {\n const newOptions = options.havingBaseStyle(style);\n const shift = (1 - options.sizeMultiplier / newOptions.sizeMultiplier) * options.fontMetrics().axisHeight;\n span.classes.push(\"delimcenter\");\n span.style.top = makeEm(shift);\n span.height -= shift;\n span.depth += shift;\n};\n/**\n * Makes a small delimiter. This is a delimiter that comes in the Main-Regular\n * font, but is restyled to either be in textstyle, scriptstyle, or\n * scriptscriptstyle.\n */\n\n\nconst makeSmallDelim = function (delim, style, center, options, mode, classes) {\n const text = buildCommon.makeSymbol(delim, \"Main-Regular\", mode, options);\n const span = styleWrap(text, style, options, classes);\n\n if (center) {\n centerSpan(span, options, style);\n }\n\n return span;\n};\n/**\n * Builds a symbol in the given font size (note size is an integer)\n */\n\n\nconst mathrmSize = function (value, size, mode, options) {\n return buildCommon.makeSymbol(value, \"Size\" + size + \"-Regular\", mode, options);\n};\n/**\n * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2,\n * Size3, or Size4 fonts. It is always rendered in textstyle.\n */\n\n\nconst makeLargeDelim = function (delim, size, center, options, mode, classes) {\n const inner = mathrmSize(delim, size, mode, options);\n const span = styleWrap(buildCommon.makeSpan([\"delimsizing\", \"size\" + size], [inner], options), src_Style.TEXT, options, classes);\n\n if (center) {\n centerSpan(span, options, src_Style.TEXT);\n }\n\n return span;\n};\n/**\n * Make a span from a font glyph with the given offset and in the given font.\n * This is used in makeStackedDelim to make the stacking pieces for the delimiter.\n */\n\n\nconst makeGlyphSpan = function (symbol, font, mode) {\n let sizeClass; // Apply the correct CSS class to choose the right font.\n\n if (font === \"Size1-Regular\") {\n sizeClass = \"delim-size1\";\n } else\n /* if (font === \"Size4-Regular\") */\n {\n sizeClass = \"delim-size4\";\n }\n\n const corner = buildCommon.makeSpan([\"delimsizinginner\", sizeClass], [buildCommon.makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]); // Since this will be passed into `makeVList` in the end, wrap the element\n // in the appropriate tag that VList uses.\n\n return {\n type: \"elem\",\n elem: corner\n };\n};\n\nconst makeInner = function (ch, height, options) {\n // Create a span with inline SVG for the inner part of a tall stacked delimiter.\n const width = fontMetricsData['Size4-Regular'][ch.charCodeAt(0)] ? fontMetricsData['Size4-Regular'][ch.charCodeAt(0)][4] : fontMetricsData['Size1-Regular'][ch.charCodeAt(0)][4];\n const path = new PathNode(\"inner\", innerPath(ch, Math.round(1000 * height)));\n const svgNode = new SvgNode([path], {\n \"width\": makeEm(width),\n \"height\": makeEm(height),\n // Override CSS rule `.katex svg { width: 100% }`\n \"style\": \"width:\" + makeEm(width),\n \"viewBox\": \"0 0 \" + 1000 * width + \" \" + Math.round(1000 * height),\n \"preserveAspectRatio\": \"xMinYMin\"\n });\n const span = buildCommon.makeSvgSpan([], [svgNode], options);\n span.height = height;\n span.style.height = makeEm(height);\n span.style.width = makeEm(width);\n return {\n type: \"elem\",\n elem: span\n };\n}; // Helpers for makeStackedDelim\n\n\nconst lapInEms = 0.008;\nconst lap = {\n type: \"kern\",\n size: -1 * lapInEms\n};\nconst verts = [\"|\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\vert\"];\nconst doubleVerts = [\"\\\\|\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\Vert\"];\n/**\n * Make a stacked delimiter out of a given delimiter, with the total height at\n * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook.\n */\n\nconst makeStackedDelim = function (delim, heightTotal, center, options, mode, classes) {\n // There are four parts, the top, an optional middle, a repeated part, and a\n // bottom.\n let top;\n let middle;\n let repeat;\n let bottom;\n let svgLabel = \"\";\n let viewBoxWidth = 0;\n top = repeat = bottom = delim;\n middle = null; // Also keep track of what font the delimiters are in\n\n let font = \"Size1-Regular\"; // We set the parts and font based on the symbol. Note that we use\n // '\\u23d0' instead of '|' and '\\u2016' instead of '\\\\|' for the\n // repeats of the arrows\n\n if (delim === \"\\\\uparrow\") {\n repeat = bottom = \"\\u23d0\";\n } else if (delim === \"\\\\Uparrow\") {\n repeat = bottom = \"\\u2016\";\n } else if (delim === \"\\\\downarrow\") {\n top = repeat = \"\\u23d0\";\n } else if (delim === \"\\\\Downarrow\") {\n top = repeat = \"\\u2016\";\n } else if (delim === \"\\\\updownarrow\") {\n top = \"\\\\uparrow\";\n repeat = \"\\u23d0\";\n bottom = \"\\\\downarrow\";\n } else if (delim === \"\\\\Updownarrow\") {\n top = \"\\\\Uparrow\";\n repeat = \"\\u2016\";\n bottom = \"\\\\Downarrow\";\n } else if (utils.contains(verts, delim)) {\n repeat = \"\\u2223\";\n svgLabel = \"vert\";\n viewBoxWidth = 333;\n } else if (utils.contains(doubleVerts, delim)) {\n repeat = \"\\u2225\";\n svgLabel = \"doublevert\";\n viewBoxWidth = 556;\n } else if (delim === \"[\" || delim === \"\\\\lbrack\") {\n top = \"\\u23a1\";\n repeat = \"\\u23a2\";\n bottom = \"\\u23a3\";\n font = \"Size4-Regular\";\n svgLabel = \"lbrack\";\n viewBoxWidth = 667;\n } else if (delim === \"]\" || delim === \"\\\\rbrack\") {\n top = \"\\u23a4\";\n repeat = \"\\u23a5\";\n bottom = \"\\u23a6\";\n font = \"Size4-Regular\";\n svgLabel = \"rbrack\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\lfloor\" || delim === \"\\u230a\") {\n repeat = top = \"\\u23a2\";\n bottom = \"\\u23a3\";\n font = \"Size4-Regular\";\n svgLabel = \"lfloor\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\lceil\" || delim === \"\\u2308\") {\n top = \"\\u23a1\";\n repeat = bottom = \"\\u23a2\";\n font = \"Size4-Regular\";\n svgLabel = \"lceil\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\rfloor\" || delim === \"\\u230b\") {\n repeat = top = \"\\u23a5\";\n bottom = \"\\u23a6\";\n font = \"Size4-Regular\";\n svgLabel = \"rfloor\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\rceil\" || delim === \"\\u2309\") {\n top = \"\\u23a4\";\n repeat = bottom = \"\\u23a5\";\n font = \"Size4-Regular\";\n svgLabel = \"rceil\";\n viewBoxWidth = 667;\n } else if (delim === \"(\" || delim === \"\\\\lparen\") {\n top = \"\\u239b\";\n repeat = \"\\u239c\";\n bottom = \"\\u239d\";\n font = \"Size4-Regular\";\n svgLabel = \"lparen\";\n viewBoxWidth = 875;\n } else if (delim === \")\" || delim === \"\\\\rparen\") {\n top = \"\\u239e\";\n repeat = \"\\u239f\";\n bottom = \"\\u23a0\";\n font = \"Size4-Regular\";\n svgLabel = \"rparen\";\n viewBoxWidth = 875;\n } else if (delim === \"\\\\{\" || delim === \"\\\\lbrace\") {\n top = \"\\u23a7\";\n middle = \"\\u23a8\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\}\" || delim === \"\\\\rbrace\") {\n top = \"\\u23ab\";\n middle = \"\\u23ac\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lgroup\" || delim === \"\\u27ee\") {\n top = \"\\u23a7\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rgroup\" || delim === \"\\u27ef\") {\n top = \"\\u23ab\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lmoustache\" || delim === \"\\u23b0\") {\n top = \"\\u23a7\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rmoustache\" || delim === \"\\u23b1\") {\n top = \"\\u23ab\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } // Get the metrics of the four sections\n\n\n const topMetrics = getMetrics(top, font, mode);\n const topHeightTotal = topMetrics.height + topMetrics.depth;\n const repeatMetrics = getMetrics(repeat, font, mode);\n const repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth;\n const bottomMetrics = getMetrics(bottom, font, mode);\n const bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth;\n let middleHeightTotal = 0;\n let middleFactor = 1;\n\n if (middle !== null) {\n const middleMetrics = getMetrics(middle, font, mode);\n middleHeightTotal = middleMetrics.height + middleMetrics.depth;\n middleFactor = 2; // repeat symmetrically above and below middle\n } // Calculate the minimal height that the delimiter can have.\n // It is at least the size of the top, bottom, and optional middle combined.\n\n\n const minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal; // Compute the number of copies of the repeat symbol we will need\n\n const repeatCount = Math.max(0, Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal))); // Compute the total height of the delimiter including all the symbols\n\n const realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal; // The center of the delimiter is placed at the center of the axis. Note\n // that in this context, \"center\" means that the delimiter should be\n // centered around the axis in the current style, while normally it is\n // centered around the axis in textstyle.\n\n let axisHeight = options.fontMetrics().axisHeight;\n\n if (center) {\n axisHeight *= options.sizeMultiplier;\n } // Calculate the depth\n\n\n const depth = realHeightTotal / 2 - axisHeight; // Now, we start building the pieces that will go into the vlist\n // Keep a list of the pieces of the stacked delimiter\n\n const stack = [];\n\n if (svgLabel.length > 0) {\n // Instead of stacking glyphs, create a single SVG.\n // This evades browser problems with imprecise positioning of spans.\n const midHeight = realHeightTotal - topHeightTotal - bottomHeightTotal;\n const viewBoxHeight = Math.round(realHeightTotal * 1000);\n const pathStr = tallDelim(svgLabel, Math.round(midHeight * 1000));\n const path = new PathNode(svgLabel, pathStr);\n const width = (viewBoxWidth / 1000).toFixed(3) + \"em\";\n const height = (viewBoxHeight / 1000).toFixed(3) + \"em\";\n const svg = new SvgNode([path], {\n \"width\": width,\n \"height\": height,\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight\n });\n const wrapper = buildCommon.makeSvgSpan([], [svg], options);\n wrapper.height = viewBoxHeight / 1000;\n wrapper.style.width = width;\n wrapper.style.height = height;\n stack.push({\n type: \"elem\",\n elem: wrapper\n });\n } else {\n // Stack glyphs\n // Start by adding the bottom symbol\n stack.push(makeGlyphSpan(bottom, font, mode));\n stack.push(lap); // overlap\n\n if (middle === null) {\n // The middle section will be an SVG. Make it an extra 0.016em tall.\n // We'll overlap by 0.008em at top and bottom.\n const innerHeight = realHeightTotal - topHeightTotal - bottomHeightTotal + 2 * lapInEms;\n stack.push(makeInner(repeat, innerHeight, options));\n } else {\n // When there is a middle bit, we need the middle part and two repeated\n // sections\n const innerHeight = (realHeightTotal - topHeightTotal - bottomHeightTotal - middleHeightTotal) / 2 + 2 * lapInEms;\n stack.push(makeInner(repeat, innerHeight, options)); // Now insert the middle of the brace.\n\n stack.push(lap);\n stack.push(makeGlyphSpan(middle, font, mode));\n stack.push(lap);\n stack.push(makeInner(repeat, innerHeight, options));\n } // Add the top symbol\n\n\n stack.push(lap);\n stack.push(makeGlyphSpan(top, font, mode));\n } // Finally, build the vlist\n\n\n const newOptions = options.havingBaseStyle(src_Style.TEXT);\n const inner = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: depth,\n children: stack\n }, newOptions);\n return styleWrap(buildCommon.makeSpan([\"delimsizing\", \"mult\"], [inner], newOptions), src_Style.TEXT, options, classes);\n}; // All surds have 0.08em padding above the vinculum inside the SVG.\n// That keeps browser span height rounding error from pinching the line.\n\n\nconst vbPad = 80; // padding above the surd, measured inside the viewBox.\n\nconst emPad = 0.08; // padding, in ems, measured in the document.\n\nconst sqrtSvg = function (sqrtName, height, viewBoxHeight, extraVinculum, options) {\n const path = sqrtPath(sqrtName, extraVinculum, viewBoxHeight);\n const pathNode = new PathNode(sqrtName, path);\n const svg = new SvgNode([pathNode], {\n // Note: 1000:1 ratio of viewBox to document em width.\n \"width\": \"400em\",\n \"height\": makeEm(height),\n \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n \"preserveAspectRatio\": \"xMinYMin slice\"\n });\n return buildCommon.makeSvgSpan([\"hide-tail\"], [svg], options);\n};\n/**\n * Make a sqrt image of the given height,\n */\n\n\nconst makeSqrtImage = function (height, options) {\n // Define a newOptions that removes the effect of size changes such as \\Huge.\n // We don't pick different a height surd for \\Huge. For it, we scale up.\n const newOptions = options.havingBaseSizing(); // Pick the desired surd glyph from a sequence of surds.\n\n const delim = traverseSequence(\"\\\\surd\", height * newOptions.sizeMultiplier, stackLargeDelimiterSequence, newOptions);\n let sizeMultiplier = newOptions.sizeMultiplier; // default\n // The standard sqrt SVGs each have a 0.04em thick vinculum.\n // If Settings.minRuleThickness is larger than that, we add extraVinculum.\n\n const extraVinculum = Math.max(0, options.minRuleThickness - options.fontMetrics().sqrtRuleThickness); // Create a span containing an SVG image of a sqrt symbol.\n\n let span;\n let spanHeight = 0;\n let texHeight = 0;\n let viewBoxHeight = 0;\n let advanceWidth; // We create viewBoxes with 80 units of \"padding\" above each surd.\n // Then browser rounding error on the parent span height will not\n // encroach on the ink of the vinculum. But that padding is not\n // included in the TeX-like `height` used for calculation of\n // vertical alignment. So texHeight = span.height < span.style.height.\n\n if (delim.type === \"small\") {\n // Get an SVG that is derived from glyph U+221A in font KaTeX-Main.\n // 1000 unit normal glyph height.\n viewBoxHeight = 1000 + 1000 * extraVinculum + vbPad;\n\n if (height < 1.0) {\n sizeMultiplier = 1.0; // mimic a \\textfont radical\n } else if (height < 1.4) {\n sizeMultiplier = 0.7; // mimic a \\scriptfont radical\n }\n\n spanHeight = (1.0 + extraVinculum + emPad) / sizeMultiplier;\n texHeight = (1.00 + extraVinculum) / sizeMultiplier;\n span = sqrtSvg(\"sqrtMain\", spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"0.853em\";\n advanceWidth = 0.833 / sizeMultiplier; // from the font.\n } else if (delim.type === \"large\") {\n // These SVGs come from fonts: KaTeX_Size1, _Size2, etc.\n viewBoxHeight = (1000 + vbPad) * sizeToMaxHeight[delim.size];\n texHeight = (sizeToMaxHeight[delim.size] + extraVinculum) / sizeMultiplier;\n spanHeight = (sizeToMaxHeight[delim.size] + extraVinculum + emPad) / sizeMultiplier;\n span = sqrtSvg(\"sqrtSize\" + delim.size, spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"1.02em\";\n advanceWidth = 1.0 / sizeMultiplier; // 1.0 from the font.\n } else {\n // Tall sqrt. In TeX, this would be stacked using multiple glyphs.\n // We'll use a single SVG to accomplish the same thing.\n spanHeight = height + extraVinculum + emPad;\n texHeight = height + extraVinculum;\n viewBoxHeight = Math.floor(1000 * height + extraVinculum) + vbPad;\n span = sqrtSvg(\"sqrtTall\", spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"0.742em\";\n advanceWidth = 1.056;\n }\n\n span.height = texHeight;\n span.style.height = makeEm(spanHeight);\n return {\n span,\n advanceWidth,\n // Calculate the actual line width.\n // This actually should depend on the chosen font -- e.g. \\boldmath\n // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and\n // have thicker rules.\n ruleWidth: (options.fontMetrics().sqrtRuleThickness + extraVinculum) * sizeMultiplier\n };\n}; // There are three kinds of delimiters, delimiters that stack when they become\n// too large\n\n\nconst stackLargeDelimiters = [\"(\", \"\\\\lparen\", \")\", \"\\\\rparen\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\u230a\", \"\\u230b\", \"\\\\lceil\", \"\\\\rceil\", \"\\u2308\", \"\\u2309\", \"\\\\surd\"]; // delimiters that always stack\n\nconst stackAlwaysDelimiters = [\"\\\\uparrow\", \"\\\\downarrow\", \"\\\\updownarrow\", \"\\\\Uparrow\", \"\\\\Downarrow\", \"\\\\Updownarrow\", \"|\", \"\\\\|\", \"\\\\vert\", \"\\\\Vert\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\u27ee\", \"\\u27ef\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"\\u23b0\", \"\\u23b1\"]; // and delimiters that never stack\n\nconst stackNeverDelimiters = [\"<\", \">\", \"\\\\langle\", \"\\\\rangle\", \"/\", \"\\\\backslash\", \"\\\\lt\", \"\\\\gt\"]; // Metrics of the different sizes. Found by looking at TeX's output of\n// $\\bigl| // \\Bigl| \\biggl| \\Biggl| \\showlists$\n// Used to create stacked delimiters of appropriate sizes in makeSizedDelim.\n\nconst sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0];\n/**\n * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4.\n */\n\nconst makeSizedDelim = function (delim, size, options, mode, classes) {\n // < and > turn into \\langle and \\rangle in delimiters\n if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27e8\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27e9\") {\n delim = \"\\\\rangle\";\n } // Sized delimiters are never centered.\n\n\n if (utils.contains(stackLargeDelimiters, delim) || utils.contains(stackNeverDelimiters, delim)) {\n return makeLargeDelim(delim, size, false, options, mode, classes);\n } else if (utils.contains(stackAlwaysDelimiters, delim)) {\n return makeStackedDelim(delim, sizeToMaxHeight[size], false, options, mode, classes);\n } else {\n throw new src_ParseError(\"Illegal delimiter: '\" + delim + \"'\");\n }\n};\n/**\n * There are three different sequences of delimiter sizes that the delimiters\n * follow depending on the kind of delimiter. This is used when creating custom\n * sized delimiters to decide whether to create a small, large, or stacked\n * delimiter.\n *\n * In real TeX, these sequences aren't explicitly defined, but are instead\n * defined inside the font metrics. Since there are only three sequences that\n * are possible for the delimiters that TeX defines, it is easier to just encode\n * them explicitly here.\n */\n\n\n// Delimiters that never stack try small delimiters and large delimiters only\nconst stackNeverDelimiterSequence = [{\n type: \"small\",\n style: src_Style.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: src_Style.SCRIPT\n}, {\n type: \"small\",\n style: src_Style.TEXT\n}, {\n type: \"large\",\n size: 1\n}, {\n type: \"large\",\n size: 2\n}, {\n type: \"large\",\n size: 3\n}, {\n type: \"large\",\n size: 4\n}]; // Delimiters that always stack try the small delimiters first, then stack\n\nconst stackAlwaysDelimiterSequence = [{\n type: \"small\",\n style: src_Style.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: src_Style.SCRIPT\n}, {\n type: \"small\",\n style: src_Style.TEXT\n}, {\n type: \"stack\"\n}]; // Delimiters that stack when large try the small and then large delimiters, and\n// stack afterwards\n\nconst stackLargeDelimiterSequence = [{\n type: \"small\",\n style: src_Style.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: src_Style.SCRIPT\n}, {\n type: \"small\",\n style: src_Style.TEXT\n}, {\n type: \"large\",\n size: 1\n}, {\n type: \"large\",\n size: 2\n}, {\n type: \"large\",\n size: 3\n}, {\n type: \"large\",\n size: 4\n}, {\n type: \"stack\"\n}];\n/**\n * Get the font used in a delimiter based on what kind of delimiter it is.\n * TODO(#963) Use more specific font family return type once that is introduced.\n */\n\nconst delimTypeToFont = function (type) {\n if (type.type === \"small\") {\n return \"Main-Regular\";\n } else if (type.type === \"large\") {\n return \"Size\" + type.size + \"-Regular\";\n } else if (type.type === \"stack\") {\n return \"Size4-Regular\";\n } else {\n throw new Error(\"Add support for delim type '\" + type.type + \"' here.\");\n }\n};\n/**\n * Traverse a sequence of types of delimiters to decide what kind of delimiter\n * should be used to create a delimiter of the given height+depth.\n */\n\n\nconst traverseSequence = function (delim, height, sequence, options) {\n // Here, we choose the index we should start at in the sequences. In smaller\n // sizes (which correspond to larger numbers in style.size) we start earlier\n // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts\n // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2\n const start = Math.min(2, 3 - options.style.size);\n\n for (let i = start; i < sequence.length; i++) {\n if (sequence[i].type === \"stack\") {\n // This is always the last delimiter, so we just break the loop now.\n break;\n }\n\n const metrics = getMetrics(delim, delimTypeToFont(sequence[i]), \"math\");\n let heightDepth = metrics.height + metrics.depth; // Small delimiters are scaled down versions of the same font, so we\n // account for the style change size.\n\n if (sequence[i].type === \"small\") {\n const newOptions = options.havingBaseStyle(sequence[i].style);\n heightDepth *= newOptions.sizeMultiplier;\n } // Check if the delimiter at this size works for the given height.\n\n\n if (heightDepth > height) {\n return sequence[i];\n }\n } // If we reached the end of the sequence, return the last sequence element.\n\n\n return sequence[sequence.length - 1];\n};\n/**\n * Make a delimiter of a given height+depth, with optional centering. Here, we\n * traverse the sequences, and create a delimiter that the sequence tells us to.\n */\n\n\nconst makeCustomSizedDelim = function (delim, height, center, options, mode, classes) {\n if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27e8\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27e9\") {\n delim = \"\\\\rangle\";\n } // Decide what sequence to use\n\n\n let sequence;\n\n if (utils.contains(stackNeverDelimiters, delim)) {\n sequence = stackNeverDelimiterSequence;\n } else if (utils.contains(stackLargeDelimiters, delim)) {\n sequence = stackLargeDelimiterSequence;\n } else {\n sequence = stackAlwaysDelimiterSequence;\n } // Look through the sequence\n\n\n const delimType = traverseSequence(delim, height, sequence, options); // Get the delimiter from font glyphs.\n // Depending on the sequence element we decided on, call the\n // appropriate function.\n\n if (delimType.type === \"small\") {\n return makeSmallDelim(delim, delimType.style, center, options, mode, classes);\n } else if (delimType.type === \"large\") {\n return makeLargeDelim(delim, delimType.size, center, options, mode, classes);\n } else\n /* if (delimType.type === \"stack\") */\n {\n return makeStackedDelim(delim, height, center, options, mode, classes);\n }\n};\n/**\n * Make a delimiter for use with `\\left` and `\\right`, given a height and depth\n * of an expression that the delimiters surround.\n */\n\n\nconst makeLeftRightDelim = function (delim, height, depth, options, mode, classes) {\n // We always center \\left/\\right delimiters, so the axis is always shifted\n const axisHeight = options.fontMetrics().axisHeight * options.sizeMultiplier; // Taken from TeX source, tex.web, function make_left_right\n\n const delimiterFactor = 901;\n const delimiterExtend = 5.0 / options.fontMetrics().ptPerEm;\n const maxDistFromAxis = Math.max(height - axisHeight, depth + axisHeight);\n const totalHeight = Math.max( // In real TeX, calculations are done using integral values which are\n // 65536 per pt, or 655360 per em. So, the division here truncates in\n // TeX but doesn't here, producing different results. If we wanted to\n // exactly match TeX's calculation, we could do\n // Math.floor(655360 * maxDistFromAxis / 500) *\n // delimiterFactor / 655360\n // (To see the difference, compare\n // x^{x^{\\left(\\rule{0.1em}{0.68em}\\right)}}\n // in TeX and KaTeX)\n maxDistFromAxis / 500 * delimiterFactor, 2 * maxDistFromAxis - delimiterExtend); // Finally, we defer to `makeCustomSizedDelim` with our calculated total\n // height\n\n return makeCustomSizedDelim(delim, totalHeight, true, options, mode, classes);\n};\n\n/* harmony default export */ var delimiter = ({\n sqrtImage: makeSqrtImage,\n sizedDelim: makeSizedDelim,\n sizeToMaxHeight: sizeToMaxHeight,\n customSizedDelim: makeCustomSizedDelim,\n leftRightDelim: makeLeftRightDelim\n});\n;// CONCATENATED MODULE: ./src/functions/delimsizing.js\n\n\n\n\n\n\n\n\n\n\n// Extra data needed for the delimiter handler down below\nconst delimiterSizes = {\n \"\\\\bigl\": {\n mclass: \"mopen\",\n size: 1\n },\n \"\\\\Bigl\": {\n mclass: \"mopen\",\n size: 2\n },\n \"\\\\biggl\": {\n mclass: \"mopen\",\n size: 3\n },\n \"\\\\Biggl\": {\n mclass: \"mopen\",\n size: 4\n },\n \"\\\\bigr\": {\n mclass: \"mclose\",\n size: 1\n },\n \"\\\\Bigr\": {\n mclass: \"mclose\",\n size: 2\n },\n \"\\\\biggr\": {\n mclass: \"mclose\",\n size: 3\n },\n \"\\\\Biggr\": {\n mclass: \"mclose\",\n size: 4\n },\n \"\\\\bigm\": {\n mclass: \"mrel\",\n size: 1\n },\n \"\\\\Bigm\": {\n mclass: \"mrel\",\n size: 2\n },\n \"\\\\biggm\": {\n mclass: \"mrel\",\n size: 3\n },\n \"\\\\Biggm\": {\n mclass: \"mrel\",\n size: 4\n },\n \"\\\\big\": {\n mclass: \"mord\",\n size: 1\n },\n \"\\\\Big\": {\n mclass: \"mord\",\n size: 2\n },\n \"\\\\bigg\": {\n mclass: \"mord\",\n size: 3\n },\n \"\\\\Bigg\": {\n mclass: \"mord\",\n size: 4\n }\n};\nconst delimiters = [\"(\", \"\\\\lparen\", \")\", \"\\\\rparen\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\u230a\", \"\\u230b\", \"\\\\lceil\", \"\\\\rceil\", \"\\u2308\", \"\\u2309\", \"<\", \">\", \"\\\\langle\", \"\\u27e8\", \"\\\\rangle\", \"\\u27e9\", \"\\\\lt\", \"\\\\gt\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\u27ee\", \"\\u27ef\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"\\u23b0\", \"\\u23b1\", \"/\", \"\\\\backslash\", \"|\", \"\\\\vert\", \"\\\\|\", \"\\\\Vert\", \"\\\\uparrow\", \"\\\\Uparrow\", \"\\\\downarrow\", \"\\\\Downarrow\", \"\\\\updownarrow\", \"\\\\Updownarrow\", \".\"];\n\n// Delimiter functions\nfunction checkDelimiter(delim, context) {\n const symDelim = checkSymbolNodeType(delim);\n\n if (symDelim && utils.contains(delimiters, symDelim.text)) {\n return symDelim;\n } else if (symDelim) {\n throw new src_ParseError(\"Invalid delimiter '\" + symDelim.text + \"' after '\" + context.funcName + \"'\", delim);\n } else {\n throw new src_ParseError(\"Invalid delimiter type '\" + delim.type + \"'\", delim);\n }\n}\n\ndefineFunction({\n type: \"delimsizing\",\n names: [\"\\\\bigl\", \"\\\\Bigl\", \"\\\\biggl\", \"\\\\Biggl\", \"\\\\bigr\", \"\\\\Bigr\", \"\\\\biggr\", \"\\\\Biggr\", \"\\\\bigm\", \"\\\\Bigm\", \"\\\\biggm\", \"\\\\Biggm\", \"\\\\big\", \"\\\\Big\", \"\\\\bigg\", \"\\\\Bigg\"],\n props: {\n numArgs: 1,\n argTypes: [\"primitive\"]\n },\n handler: (context, args) => {\n const delim = checkDelimiter(args[0], context);\n return {\n type: \"delimsizing\",\n mode: context.parser.mode,\n size: delimiterSizes[context.funcName].size,\n mclass: delimiterSizes[context.funcName].mclass,\n delim: delim.text\n };\n },\n htmlBuilder: (group, options) => {\n if (group.delim === \".\") {\n // Empty delimiters still count as elements, even though they don't\n // show anything.\n return buildCommon.makeSpan([group.mclass]);\n } // Use delimiter.sizedDelim to generate the delimiter.\n\n\n return delimiter.sizedDelim(group.delim, group.size, options, group.mode, [group.mclass]);\n },\n mathmlBuilder: group => {\n const children = [];\n\n if (group.delim !== \".\") {\n children.push(makeText(group.delim, group.mode));\n }\n\n const node = new mathMLTree.MathNode(\"mo\", children);\n\n if (group.mclass === \"mopen\" || group.mclass === \"mclose\") {\n // Only some of the delimsizing functions act as fences, and they\n // return \"mopen\" or \"mclose\" mclass.\n node.setAttribute(\"fence\", \"true\");\n } else {\n // Explicitly disable fencing if it's not a fence, to override the\n // defaults.\n node.setAttribute(\"fence\", \"false\");\n }\n\n node.setAttribute(\"stretchy\", \"true\");\n const size = makeEm(delimiter.sizeToMaxHeight[group.size]);\n node.setAttribute(\"minsize\", size);\n node.setAttribute(\"maxsize\", size);\n return node;\n }\n});\n\nfunction assertParsed(group) {\n if (!group.body) {\n throw new Error(\"Bug: The leftright ParseNode wasn't fully parsed.\");\n }\n}\n\ndefineFunction({\n type: \"leftright-right\",\n names: [\"\\\\right\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n // \\left case below triggers parsing of \\right in\n // `const right = parser.parseFunction();`\n // uses this return value.\n const color = context.parser.gullet.macros.get(\"\\\\current@color\");\n\n if (color && typeof color !== \"string\") {\n throw new src_ParseError(\"\\\\current@color set to non-string in \\\\right\");\n }\n\n return {\n type: \"leftright-right\",\n mode: context.parser.mode,\n delim: checkDelimiter(args[0], context).text,\n color // undefined if not set via \\color\n\n };\n }\n});\ndefineFunction({\n type: \"leftright\",\n names: [\"\\\\left\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n const delim = checkDelimiter(args[0], context);\n const parser = context.parser; // Parse out the implicit body\n\n ++parser.leftrightDepth; // parseExpression stops before '\\\\right'\n\n const body = parser.parseExpression(false);\n --parser.leftrightDepth; // Check the next token\n\n parser.expect(\"\\\\right\", false);\n const right = assertNodeType(parser.parseFunction(), \"leftright-right\");\n return {\n type: \"leftright\",\n mode: parser.mode,\n body,\n left: delim.text,\n right: right.delim,\n rightColor: right.color\n };\n },\n htmlBuilder: (group, options) => {\n assertParsed(group); // Build the inner expression\n\n const inner = buildExpression(group.body, options, true, [\"mopen\", \"mclose\"]);\n let innerHeight = 0;\n let innerDepth = 0;\n let hadMiddle = false; // Calculate its height and depth\n\n for (let i = 0; i < inner.length; i++) {\n // Property `isMiddle` not defined on `span`. See comment in\n // \"middle\"'s htmlBuilder.\n // $FlowFixMe\n if (inner[i].isMiddle) {\n hadMiddle = true;\n } else {\n innerHeight = Math.max(inner[i].height, innerHeight);\n innerDepth = Math.max(inner[i].depth, innerDepth);\n }\n } // The size of delimiters is the same, regardless of what style we are\n // in. Thus, to correctly calculate the size of delimiter we need around\n // a group, we scale down the inner size based on the size.\n\n\n innerHeight *= options.sizeMultiplier;\n innerDepth *= options.sizeMultiplier;\n let leftDelim;\n\n if (group.left === \".\") {\n // Empty delimiters in \\left and \\right make null delimiter spaces.\n leftDelim = makeNullDelimiter(options, [\"mopen\"]);\n } else {\n // Otherwise, use leftRightDelim to generate the correct sized\n // delimiter.\n leftDelim = delimiter.leftRightDelim(group.left, innerHeight, innerDepth, options, group.mode, [\"mopen\"]);\n } // Add it to the beginning of the expression\n\n\n inner.unshift(leftDelim); // Handle middle delimiters\n\n if (hadMiddle) {\n for (let i = 1; i < inner.length; i++) {\n const middleDelim = inner[i]; // Property `isMiddle` not defined on `span`. See comment in\n // \"middle\"'s htmlBuilder.\n // $FlowFixMe\n\n const isMiddle = middleDelim.isMiddle;\n\n if (isMiddle) {\n // Apply the options that were active when \\middle was called\n inner[i] = delimiter.leftRightDelim(isMiddle.delim, innerHeight, innerDepth, isMiddle.options, group.mode, []);\n }\n }\n }\n\n let rightDelim; // Same for the right delimiter, but using color specified by \\color\n\n if (group.right === \".\") {\n rightDelim = makeNullDelimiter(options, [\"mclose\"]);\n } else {\n const colorOptions = group.rightColor ? options.withColor(group.rightColor) : options;\n rightDelim = delimiter.leftRightDelim(group.right, innerHeight, innerDepth, colorOptions, group.mode, [\"mclose\"]);\n } // Add it to the end of the expression.\n\n\n inner.push(rightDelim);\n return buildCommon.makeSpan([\"minner\"], inner, options);\n },\n mathmlBuilder: (group, options) => {\n assertParsed(group);\n const inner = buildMathML_buildExpression(group.body, options);\n\n if (group.left !== \".\") {\n const leftNode = new mathMLTree.MathNode(\"mo\", [makeText(group.left, group.mode)]);\n leftNode.setAttribute(\"fence\", \"true\");\n inner.unshift(leftNode);\n }\n\n if (group.right !== \".\") {\n const rightNode = new mathMLTree.MathNode(\"mo\", [makeText(group.right, group.mode)]);\n rightNode.setAttribute(\"fence\", \"true\");\n\n if (group.rightColor) {\n rightNode.setAttribute(\"mathcolor\", group.rightColor);\n }\n\n inner.push(rightNode);\n }\n\n return makeRow(inner);\n }\n});\ndefineFunction({\n type: \"middle\",\n names: [\"\\\\middle\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n const delim = checkDelimiter(args[0], context);\n\n if (!context.parser.leftrightDepth) {\n throw new src_ParseError(\"\\\\middle without preceding \\\\left\", delim);\n }\n\n return {\n type: \"middle\",\n mode: context.parser.mode,\n delim: delim.text\n };\n },\n htmlBuilder: (group, options) => {\n let middleDelim;\n\n if (group.delim === \".\") {\n middleDelim = makeNullDelimiter(options, []);\n } else {\n middleDelim = delimiter.sizedDelim(group.delim, 1, options, group.mode, []);\n const isMiddle = {\n delim: group.delim,\n options\n }; // Property `isMiddle` not defined on `span`. It is only used in\n // this file above.\n // TODO: Fix this violation of the `span` type and possibly rename\n // things since `isMiddle` sounds like a boolean, but is a struct.\n // $FlowFixMe\n\n middleDelim.isMiddle = isMiddle;\n }\n\n return middleDelim;\n },\n mathmlBuilder: (group, options) => {\n // A Firefox \\middle will stretch a character vertically only if it\n // is in the fence part of the operator dictionary at:\n // https://www.w3.org/TR/MathML3/appendixc.html.\n // So we need to avoid U+2223 and use plain \"|\" instead.\n const textNode = group.delim === \"\\\\vert\" || group.delim === \"|\" ? makeText(\"|\", \"text\") : makeText(group.delim, group.mode);\n const middleNode = new mathMLTree.MathNode(\"mo\", [textNode]);\n middleNode.setAttribute(\"fence\", \"true\"); // MathML gives 5/18em spacing to each element.\n // \\middle should get delimiter spacing instead.\n\n middleNode.setAttribute(\"lspace\", \"0.05em\");\n middleNode.setAttribute(\"rspace\", \"0.05em\");\n return middleNode;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/enclose.js\n\n\n\n\n\n\n\n\n\n\n\n\nconst enclose_htmlBuilder = (group, options) => {\n // \\cancel, \\bcancel, \\xcancel, \\sout, \\fbox, \\colorbox, \\fcolorbox, \\phase\n // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n const inner = buildCommon.wrapFragment(buildGroup(group.body, options), options);\n const label = group.label.slice(1);\n let scale = options.sizeMultiplier;\n let img;\n let imgShift = 0; // In the LaTeX cancel package, line geometry is slightly different\n // depending on whether the subject is wider than it is tall, or vice versa.\n // We don't know the width of a group, so as a proxy, we test if\n // the subject is a single character. This captures most of the\n // subjects that should get the \"tall\" treatment.\n\n const isSingleChar = utils.isCharacterBox(group.body);\n\n if (label === \"sout\") {\n img = buildCommon.makeSpan([\"stretchy\", \"sout\"]);\n img.height = options.fontMetrics().defaultRuleThickness / scale;\n imgShift = -0.5 * options.fontMetrics().xHeight;\n } else if (label === \"phase\") {\n // Set a couple of dimensions from the steinmetz package.\n const lineWeight = calculateSize({\n number: 0.6,\n unit: \"pt\"\n }, options);\n const clearance = calculateSize({\n number: 0.35,\n unit: \"ex\"\n }, options); // Prevent size changes like \\Huge from affecting line thickness\n\n const newOptions = options.havingBaseSizing();\n scale = scale / newOptions.sizeMultiplier;\n const angleHeight = inner.height + inner.depth + lineWeight + clearance; // Reserve a left pad for the angle.\n\n inner.style.paddingLeft = makeEm(angleHeight / 2 + lineWeight); // Create an SVG\n\n const viewBoxHeight = Math.floor(1000 * angleHeight * scale);\n const path = phasePath(viewBoxHeight);\n const svgNode = new SvgNode([new PathNode(\"phase\", path)], {\n \"width\": \"400em\",\n \"height\": makeEm(viewBoxHeight / 1000),\n \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n \"preserveAspectRatio\": \"xMinYMin slice\"\n }); // Wrap it in a span with overflow: hidden.\n\n img = buildCommon.makeSvgSpan([\"hide-tail\"], [svgNode], options);\n img.style.height = makeEm(angleHeight);\n imgShift = inner.depth + lineWeight + clearance;\n } else {\n // Add horizontal padding\n if (/cancel/.test(label)) {\n if (!isSingleChar) {\n inner.classes.push(\"cancel-pad\");\n }\n } else if (label === \"angl\") {\n inner.classes.push(\"anglpad\");\n } else {\n inner.classes.push(\"boxpad\");\n } // Add vertical padding\n\n\n let topPad = 0;\n let bottomPad = 0;\n let ruleThickness = 0; // ref: cancel package: \\advance\\totalheight2\\p@ % \"+2\"\n\n if (/box/.test(label)) {\n ruleThickness = Math.max(options.fontMetrics().fboxrule, // default\n options.minRuleThickness // User override.\n );\n topPad = options.fontMetrics().fboxsep + (label === \"colorbox\" ? 0 : ruleThickness);\n bottomPad = topPad;\n } else if (label === \"angl\") {\n ruleThickness = Math.max(options.fontMetrics().defaultRuleThickness, options.minRuleThickness);\n topPad = 4 * ruleThickness; // gap = 3 × line, plus the line itself.\n\n bottomPad = Math.max(0, 0.25 - inner.depth);\n } else {\n topPad = isSingleChar ? 0.2 : 0;\n bottomPad = topPad;\n }\n\n img = stretchy.encloseSpan(inner, label, topPad, bottomPad, options);\n\n if (/fbox|boxed|fcolorbox/.test(label)) {\n img.style.borderStyle = \"solid\";\n img.style.borderWidth = makeEm(ruleThickness);\n } else if (label === \"angl\" && ruleThickness !== 0.049) {\n img.style.borderTopWidth = makeEm(ruleThickness);\n img.style.borderRightWidth = makeEm(ruleThickness);\n }\n\n imgShift = inner.depth + bottomPad;\n\n if (group.backgroundColor) {\n img.style.backgroundColor = group.backgroundColor;\n\n if (group.borderColor) {\n img.style.borderColor = group.borderColor;\n }\n }\n }\n\n let vlist;\n\n if (group.backgroundColor) {\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [// Put the color background behind inner;\n {\n type: \"elem\",\n elem: img,\n shift: imgShift\n }, {\n type: \"elem\",\n elem: inner,\n shift: 0\n }]\n }, options);\n } else {\n const classes = /cancel|phase/.test(label) ? [\"svg-align\"] : [];\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [// Write the \\cancel stroke on top of inner.\n {\n type: \"elem\",\n elem: inner,\n shift: 0\n }, {\n type: \"elem\",\n elem: img,\n shift: imgShift,\n wrapperClasses: classes\n }]\n }, options);\n }\n\n if (/cancel/.test(label)) {\n // The cancel package documentation says that cancel lines add their height\n // to the expression, but tests show that isn't how it actually works.\n vlist.height = inner.height;\n vlist.depth = inner.depth;\n }\n\n if (/cancel/.test(label) && !isSingleChar) {\n // cancel does not create horiz space for its line extension.\n return buildCommon.makeSpan([\"mord\", \"cancel-lap\"], [vlist], options);\n } else {\n return buildCommon.makeSpan([\"mord\"], [vlist], options);\n }\n};\n\nconst enclose_mathmlBuilder = (group, options) => {\n let fboxsep = 0;\n const node = new mathMLTree.MathNode(group.label.indexOf(\"colorbox\") > -1 ? \"mpadded\" : \"menclose\", [buildMathML_buildGroup(group.body, options)]);\n\n switch (group.label) {\n case \"\\\\cancel\":\n node.setAttribute(\"notation\", \"updiagonalstrike\");\n break;\n\n case \"\\\\bcancel\":\n node.setAttribute(\"notation\", \"downdiagonalstrike\");\n break;\n\n case \"\\\\phase\":\n node.setAttribute(\"notation\", \"phasorangle\");\n break;\n\n case \"\\\\sout\":\n node.setAttribute(\"notation\", \"horizontalstrike\");\n break;\n\n case \"\\\\fbox\":\n node.setAttribute(\"notation\", \"box\");\n break;\n\n case \"\\\\angl\":\n node.setAttribute(\"notation\", \"actuarial\");\n break;\n\n case \"\\\\fcolorbox\":\n case \"\\\\colorbox\":\n // doesn't have a good notation option. So use \n // instead. Set some attributes that come included with .\n fboxsep = options.fontMetrics().fboxsep * options.fontMetrics().ptPerEm;\n node.setAttribute(\"width\", \"+\" + 2 * fboxsep + \"pt\");\n node.setAttribute(\"height\", \"+\" + 2 * fboxsep + \"pt\");\n node.setAttribute(\"lspace\", fboxsep + \"pt\"); //\n\n node.setAttribute(\"voffset\", fboxsep + \"pt\");\n\n if (group.label === \"\\\\fcolorbox\") {\n const thk = Math.max(options.fontMetrics().fboxrule, // default\n options.minRuleThickness // user override\n );\n node.setAttribute(\"style\", \"border: \" + thk + \"em solid \" + String(group.borderColor));\n }\n\n break;\n\n case \"\\\\xcancel\":\n node.setAttribute(\"notation\", \"updiagonalstrike downdiagonalstrike\");\n break;\n }\n\n if (group.backgroundColor) {\n node.setAttribute(\"mathbackground\", group.backgroundColor);\n }\n\n return node;\n};\n\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\colorbox\"],\n props: {\n numArgs: 2,\n allowedInText: true,\n argTypes: [\"color\", \"text\"]\n },\n\n handler(_ref, args, optArgs) {\n let {\n parser,\n funcName\n } = _ref;\n const color = assertNodeType(args[0], \"color-token\").color;\n const body = args[1];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n backgroundColor: color,\n body\n };\n },\n\n htmlBuilder: enclose_htmlBuilder,\n mathmlBuilder: enclose_mathmlBuilder\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\fcolorbox\"],\n props: {\n numArgs: 3,\n allowedInText: true,\n argTypes: [\"color\", \"color\", \"text\"]\n },\n\n handler(_ref2, args, optArgs) {\n let {\n parser,\n funcName\n } = _ref2;\n const borderColor = assertNodeType(args[0], \"color-token\").color;\n const backgroundColor = assertNodeType(args[1], \"color-token\").color;\n const body = args[2];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n backgroundColor,\n borderColor,\n body\n };\n },\n\n htmlBuilder: enclose_htmlBuilder,\n mathmlBuilder: enclose_mathmlBuilder\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\fbox\"],\n props: {\n numArgs: 1,\n argTypes: [\"hbox\"],\n allowedInText: true\n },\n\n handler(_ref3, args) {\n let {\n parser\n } = _ref3;\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: \"\\\\fbox\",\n body: args[0]\n };\n }\n\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\cancel\", \"\\\\bcancel\", \"\\\\xcancel\", \"\\\\sout\", \"\\\\phase\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref4, args) {\n let {\n parser,\n funcName\n } = _ref4;\n const body = args[0];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n body\n };\n },\n\n htmlBuilder: enclose_htmlBuilder,\n mathmlBuilder: enclose_mathmlBuilder\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\angl\"],\n props: {\n numArgs: 1,\n argTypes: [\"hbox\"],\n allowedInText: false\n },\n\n handler(_ref5, args) {\n let {\n parser\n } = _ref5;\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: \"\\\\angl\",\n body: args[0]\n };\n }\n\n});\n;// CONCATENATED MODULE: ./src/defineEnvironment.js\n\n\n/**\n * All registered environments.\n * `environments.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `environments.js`.\n */\nconst _environments = {};\nfunction defineEnvironment(_ref) {\n let {\n type,\n names,\n props,\n handler,\n htmlBuilder,\n mathmlBuilder\n } = _ref;\n // Set default values of environments.\n const data = {\n type,\n numArgs: props.numArgs || 0,\n allowedInText: false,\n numOptionalArgs: 0,\n handler\n };\n\n for (let i = 0; i < names.length; ++i) {\n // TODO: The value type of _environments should be a type union of all\n // possible `EnvSpec<>` possibilities instead of `EnvSpec<*>`, which is\n // an existential type.\n _environments[names[i]] = data;\n }\n\n if (htmlBuilder) {\n _htmlGroupBuilders[type] = htmlBuilder;\n }\n\n if (mathmlBuilder) {\n _mathmlGroupBuilders[type] = mathmlBuilder;\n }\n}\n;// CONCATENATED MODULE: ./src/defineMacro.js\n\n\n/**\n * All registered global/built-in macros.\n * `macros.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `macros.js`.\n */\nconst _macros = {}; // This function might one day accept an additional argument and do more things.\n\nfunction defineMacro(name, body) {\n _macros[name] = body;\n}\n;// CONCATENATED MODULE: ./src/SourceLocation.js\n/**\n * Lexing or parsing positional information for error reporting.\n * This object is immutable.\n */\nclass SourceLocation {\n // The + prefix indicates that these fields aren't writeable\n // Lexer holding the input string.\n // Start offset, zero-based inclusive.\n // End offset, zero-based exclusive.\n constructor(lexer, start, end) {\n this.lexer = void 0;\n this.start = void 0;\n this.end = void 0;\n this.lexer = lexer;\n this.start = start;\n this.end = end;\n }\n /**\n * Merges two `SourceLocation`s from location providers, given they are\n * provided in order of appearance.\n * - Returns the first one's location if only the first is provided.\n * - Returns a merged range of the first and the last if both are provided\n * and their lexers match.\n * - Otherwise, returns null.\n */\n\n\n static range(first, second) {\n if (!second) {\n return first && first.loc;\n } else if (!first || !first.loc || !second.loc || first.loc.lexer !== second.loc.lexer) {\n return null;\n } else {\n return new SourceLocation(first.loc.lexer, first.loc.start, second.loc.end);\n }\n }\n\n}\n;// CONCATENATED MODULE: ./src/Token.js\n\n/**\n * Interface required to break circular dependency between Token, Lexer, and\n * ParseError.\n */\n\n/**\n * The resulting token returned from `lex`.\n *\n * It consists of the token text plus some position information.\n * The position information is essentially a range in an input string,\n * but instead of referencing the bare input string, we refer to the lexer.\n * That way it is possible to attach extra metadata to the input string,\n * like for example a file name or similar.\n *\n * The position information is optional, so it is OK to construct synthetic\n * tokens if appropriate. Not providing available position information may\n * lead to degraded error reporting, though.\n */\nclass Token {\n // don't expand the token\n // used in \\noexpand\n constructor(text, // the text of this token\n loc) {\n this.text = void 0;\n this.loc = void 0;\n this.noexpand = void 0;\n this.treatAsRelax = void 0;\n this.text = text;\n this.loc = loc;\n }\n /**\n * Given a pair of tokens (this and endToken), compute a `Token` encompassing\n * the whole input range enclosed by these two.\n */\n\n\n range(endToken, // last token of the range, inclusive\n text // the text of the newly constructed token\n ) {\n return new Token(text, SourceLocation.range(this, endToken));\n }\n\n}\n;// CONCATENATED MODULE: ./src/environments/array.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Helper functions\nfunction getHLines(parser) {\n // Return an array. The array length = number of hlines.\n // Each element in the array tells if the line is dashed.\n const hlineInfo = [];\n parser.consumeSpaces();\n let nxt = parser.fetch().text;\n\n if (nxt === \"\\\\relax\") {\n // \\relax is an artifact of the \\cr macro below\n parser.consume();\n parser.consumeSpaces();\n nxt = parser.fetch().text;\n }\n\n while (nxt === \"\\\\hline\" || nxt === \"\\\\hdashline\") {\n parser.consume();\n hlineInfo.push(nxt === \"\\\\hdashline\");\n parser.consumeSpaces();\n nxt = parser.fetch().text;\n }\n\n return hlineInfo;\n}\n\nconst validateAmsEnvironmentContext = context => {\n const settings = context.parser.settings;\n\n if (!settings.displayMode) {\n throw new src_ParseError(\"{\" + context.envName + \"} can be used only in\" + \" display mode.\");\n }\n}; // autoTag (an argument to parseArray) can be one of three values:\n// * undefined: Regular (not-top-level) array; no tags on each row\n// * true: Automatic equation numbering, overridable by \\tag\n// * false: Tags allowed on each row, but no automatic numbering\n// This function *doesn't* work with the \"split\" environment name.\n\n\nfunction getAutoTag(name) {\n if (name.indexOf(\"ed\") === -1) {\n return name.indexOf(\"*\") === -1;\n } // return undefined;\n\n}\n/**\n * Parse the body of the environment, with rows delimited by \\\\ and\n * columns delimited by &, and create a nested list in row-major order\n * with one group per cell. If given an optional argument style\n * (\"text\", \"display\", etc.), then each cell is cast into that style.\n */\n\n\nfunction parseArray(parser, _ref, style) {\n let {\n hskipBeforeAndAfter,\n addJot,\n cols,\n arraystretch,\n colSeparationType,\n autoTag,\n singleRow,\n emptySingleRow,\n maxNumCols,\n leqno\n } = _ref;\n parser.gullet.beginGroup();\n\n if (!singleRow) {\n // \\cr is equivalent to \\\\ without the optional size argument (see below)\n // TODO: provide helpful error when \\cr is used outside array environment\n parser.gullet.macros.set(\"\\\\cr\", \"\\\\\\\\\\\\relax\");\n } // Get current arraystretch if it's not set by the environment\n\n\n if (!arraystretch) {\n const stretch = parser.gullet.expandMacroAsText(\"\\\\arraystretch\");\n\n if (stretch == null) {\n // Default \\arraystretch from lttab.dtx\n arraystretch = 1;\n } else {\n arraystretch = parseFloat(stretch);\n\n if (!arraystretch || arraystretch < 0) {\n throw new src_ParseError(\"Invalid \\\\arraystretch: \" + stretch);\n }\n }\n } // Start group for first cell\n\n\n parser.gullet.beginGroup();\n let row = [];\n const body = [row];\n const rowGaps = [];\n const hLinesBeforeRow = [];\n const tags = autoTag != null ? [] : undefined; // amsmath uses \\global\\@eqnswtrue and \\global\\@eqnswfalse to represent\n // whether this row should have an equation number. Simulate this with\n // a \\@eqnsw macro set to 1 or 0.\n\n function beginRow() {\n if (autoTag) {\n parser.gullet.macros.set(\"\\\\@eqnsw\", \"1\", true);\n }\n }\n\n function endRow() {\n if (tags) {\n if (parser.gullet.macros.get(\"\\\\df@tag\")) {\n tags.push(parser.subparse([new Token(\"\\\\df@tag\")]));\n parser.gullet.macros.set(\"\\\\df@tag\", undefined, true);\n } else {\n tags.push(Boolean(autoTag) && parser.gullet.macros.get(\"\\\\@eqnsw\") === \"1\");\n }\n }\n }\n\n beginRow(); // Test for \\hline at the top of the array.\n\n hLinesBeforeRow.push(getHLines(parser));\n\n while (true) {\n // eslint-disable-line no-constant-condition\n // Parse each cell in its own group (namespace)\n let cell = parser.parseExpression(false, singleRow ? \"\\\\end\" : \"\\\\\\\\\");\n parser.gullet.endGroup();\n parser.gullet.beginGroup();\n cell = {\n type: \"ordgroup\",\n mode: parser.mode,\n body: cell\n };\n\n if (style) {\n cell = {\n type: \"styling\",\n mode: parser.mode,\n style,\n body: [cell]\n };\n }\n\n row.push(cell);\n const next = parser.fetch().text;\n\n if (next === \"&\") {\n if (maxNumCols && row.length === maxNumCols) {\n if (singleRow || colSeparationType) {\n // {equation} or {split}\n throw new src_ParseError(\"Too many tab characters: &\", parser.nextToken);\n } else {\n // {array} environment\n parser.settings.reportNonstrict(\"textEnv\", \"Too few columns \" + \"specified in the {array} column argument.\");\n }\n }\n\n parser.consume();\n } else if (next === \"\\\\end\") {\n endRow(); // Arrays terminate newlines with `\\crcr` which consumes a `\\cr` if\n // the last line is empty. However, AMS environments keep the\n // empty row if it's the only one.\n // NOTE: Currently, `cell` is the last item added into `row`.\n\n if (row.length === 1 && cell.type === \"styling\" && cell.body[0].body.length === 0 && (body.length > 1 || !emptySingleRow)) {\n body.pop();\n }\n\n if (hLinesBeforeRow.length < body.length + 1) {\n hLinesBeforeRow.push([]);\n }\n\n break;\n } else if (next === \"\\\\\\\\\") {\n parser.consume();\n let size; // \\def\\Let@{\\let\\\\\\math@cr}\n // \\def\\math@cr{...\\math@cr@}\n // \\def\\math@cr@{\\new@ifnextchar[\\math@cr@@{\\math@cr@@[\\z@]}}\n // \\def\\math@cr@@[#1]{...\\math@cr@@@...}\n // \\def\\math@cr@@@{\\cr}\n\n if (parser.gullet.future().text !== \" \") {\n size = parser.parseSizeGroup(true);\n }\n\n rowGaps.push(size ? size.value : null);\n endRow(); // check for \\hline(s) following the row separator\n\n hLinesBeforeRow.push(getHLines(parser));\n row = [];\n body.push(row);\n beginRow();\n } else {\n throw new src_ParseError(\"Expected & or \\\\\\\\ or \\\\cr or \\\\end\", parser.nextToken);\n }\n } // End cell group\n\n\n parser.gullet.endGroup(); // End array group defining \\cr\n\n parser.gullet.endGroup();\n return {\n type: \"array\",\n mode: parser.mode,\n addJot,\n arraystretch,\n body,\n cols,\n rowGaps,\n hskipBeforeAndAfter,\n hLinesBeforeRow,\n colSeparationType,\n tags,\n leqno\n };\n} // Decides on a style for cells in an array according to whether the given\n// environment name starts with the letter 'd'.\n\n\nfunction dCellStyle(envName) {\n if (envName.slice(0, 1) === \"d\") {\n return \"display\";\n } else {\n return \"text\";\n }\n}\n\nconst array_htmlBuilder = function (group, options) {\n let r;\n let c;\n const nr = group.body.length;\n const hLinesBeforeRow = group.hLinesBeforeRow;\n let nc = 0;\n let body = new Array(nr);\n const hlines = [];\n const ruleThickness = Math.max( // From LaTeX \\showthe\\arrayrulewidth. Equals 0.04 em.\n options.fontMetrics().arrayRuleWidth, options.minRuleThickness // User override.\n ); // Horizontal spacing\n\n const pt = 1 / options.fontMetrics().ptPerEm;\n let arraycolsep = 5 * pt; // default value, i.e. \\arraycolsep in article.cls\n\n if (group.colSeparationType && group.colSeparationType === \"small\") {\n // We're in a {smallmatrix}. Default column space is \\thickspace,\n // i.e. 5/18em = 0.2778em, per amsmath.dtx for {smallmatrix}.\n // But that needs adjustment because LaTeX applies \\scriptstyle to the\n // entire array, including the colspace, but this function applies\n // \\scriptstyle only inside each element.\n const localMultiplier = options.havingStyle(src_Style.SCRIPT).sizeMultiplier;\n arraycolsep = 0.2778 * (localMultiplier / options.sizeMultiplier);\n } // Vertical spacing\n\n\n const baselineskip = group.colSeparationType === \"CD\" ? calculateSize({\n number: 3,\n unit: \"ex\"\n }, options) : 12 * pt; // see size10.clo\n // Default \\jot from ltmath.dtx\n // TODO(edemaine): allow overriding \\jot via \\setlength (#687)\n\n const jot = 3 * pt;\n const arrayskip = group.arraystretch * baselineskip;\n const arstrutHeight = 0.7 * arrayskip; // \\strutbox in ltfsstrc.dtx and\n\n const arstrutDepth = 0.3 * arrayskip; // \\@arstrutbox in lttab.dtx\n\n let totalHeight = 0; // Set a position for \\hline(s) at the top of the array, if any.\n\n function setHLinePos(hlinesInGap) {\n for (let i = 0; i < hlinesInGap.length; ++i) {\n if (i > 0) {\n totalHeight += 0.25;\n }\n\n hlines.push({\n pos: totalHeight,\n isDashed: hlinesInGap[i]\n });\n }\n }\n\n setHLinePos(hLinesBeforeRow[0]);\n\n for (r = 0; r < group.body.length; ++r) {\n const inrow = group.body[r];\n let height = arstrutHeight; // \\@array adds an \\@arstrut\n\n let depth = arstrutDepth; // to each tow (via the template)\n\n if (nc < inrow.length) {\n nc = inrow.length;\n }\n\n const outrow = new Array(inrow.length);\n\n for (c = 0; c < inrow.length; ++c) {\n const elt = buildGroup(inrow[c], options);\n\n if (depth < elt.depth) {\n depth = elt.depth;\n }\n\n if (height < elt.height) {\n height = elt.height;\n }\n\n outrow[c] = elt;\n }\n\n const rowGap = group.rowGaps[r];\n let gap = 0;\n\n if (rowGap) {\n gap = calculateSize(rowGap, options);\n\n if (gap > 0) {\n // \\@argarraycr\n gap += arstrutDepth;\n\n if (depth < gap) {\n depth = gap; // \\@xargarraycr\n }\n\n gap = 0;\n }\n } // In AMS multiline environments such as aligned and gathered, rows\n // correspond to lines that have additional \\jot added to the\n // \\baselineskip via \\openup.\n\n\n if (group.addJot) {\n depth += jot;\n }\n\n outrow.height = height;\n outrow.depth = depth;\n totalHeight += height;\n outrow.pos = totalHeight;\n totalHeight += depth + gap; // \\@yargarraycr\n\n body[r] = outrow; // Set a position for \\hline(s), if any.\n\n setHLinePos(hLinesBeforeRow[r + 1]);\n }\n\n const offset = totalHeight / 2 + options.fontMetrics().axisHeight;\n const colDescriptions = group.cols || [];\n const cols = [];\n let colSep;\n let colDescrNum;\n const tagSpans = [];\n\n if (group.tags && group.tags.some(tag => tag)) {\n // An environment with manual tags and/or automatic equation numbers.\n // Create node(s), the latter of which trigger CSS counter increment.\n for (r = 0; r < nr; ++r) {\n const rw = body[r];\n const shift = rw.pos - offset;\n const tag = group.tags[r];\n let tagSpan;\n\n if (tag === true) {\n // automatic numbering\n tagSpan = buildCommon.makeSpan([\"eqn-num\"], [], options);\n } else if (tag === false) {\n // \\nonumber/\\notag or starred environment\n tagSpan = buildCommon.makeSpan([], [], options);\n } else {\n // manual \\tag\n tagSpan = buildCommon.makeSpan([], buildExpression(tag, options, true), options);\n }\n\n tagSpan.depth = rw.depth;\n tagSpan.height = rw.height;\n tagSpans.push({\n type: \"elem\",\n elem: tagSpan,\n shift\n });\n }\n }\n\n for (c = 0, colDescrNum = 0; // Continue while either there are more columns or more column\n // descriptions, so trailing separators don't get lost.\n c < nc || colDescrNum < colDescriptions.length; ++c, ++colDescrNum) {\n let colDescr = colDescriptions[colDescrNum] || {};\n let firstSeparator = true;\n\n while (colDescr.type === \"separator\") {\n // If there is more than one separator in a row, add a space\n // between them.\n if (!firstSeparator) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(options.fontMetrics().doubleRuleSep);\n cols.push(colSep);\n }\n\n if (colDescr.separator === \"|\" || colDescr.separator === \":\") {\n const lineType = colDescr.separator === \"|\" ? \"solid\" : \"dashed\";\n const separator = buildCommon.makeSpan([\"vertical-separator\"], [], options);\n separator.style.height = makeEm(totalHeight);\n separator.style.borderRightWidth = makeEm(ruleThickness);\n separator.style.borderRightStyle = lineType;\n separator.style.margin = \"0 \" + makeEm(-ruleThickness / 2);\n const shift = totalHeight - offset;\n\n if (shift) {\n separator.style.verticalAlign = makeEm(-shift);\n }\n\n cols.push(separator);\n } else {\n throw new src_ParseError(\"Invalid separator type: \" + colDescr.separator);\n }\n\n colDescrNum++;\n colDescr = colDescriptions[colDescrNum] || {};\n firstSeparator = false;\n }\n\n if (c >= nc) {\n continue;\n }\n\n let sepwidth;\n\n if (c > 0 || group.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.pregap, arraycolsep);\n\n if (sepwidth !== 0) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(sepwidth);\n cols.push(colSep);\n }\n }\n\n let col = [];\n\n for (r = 0; r < nr; ++r) {\n const row = body[r];\n const elem = row[c];\n\n if (!elem) {\n continue;\n }\n\n const shift = row.pos - offset;\n elem.depth = row.depth;\n elem.height = row.height;\n col.push({\n type: \"elem\",\n elem: elem,\n shift: shift\n });\n }\n\n col = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: col\n }, options);\n col = buildCommon.makeSpan([\"col-align-\" + (colDescr.align || \"c\")], [col]);\n cols.push(col);\n\n if (c < nc - 1 || group.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.postgap, arraycolsep);\n\n if (sepwidth !== 0) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(sepwidth);\n cols.push(colSep);\n }\n }\n }\n\n body = buildCommon.makeSpan([\"mtable\"], cols); // Add \\hline(s), if any.\n\n if (hlines.length > 0) {\n const line = buildCommon.makeLineSpan(\"hline\", options, ruleThickness);\n const dashes = buildCommon.makeLineSpan(\"hdashline\", options, ruleThickness);\n const vListElems = [{\n type: \"elem\",\n elem: body,\n shift: 0\n }];\n\n while (hlines.length > 0) {\n const hline = hlines.pop();\n const lineShift = hline.pos - offset;\n\n if (hline.isDashed) {\n vListElems.push({\n type: \"elem\",\n elem: dashes,\n shift: lineShift\n });\n } else {\n vListElems.push({\n type: \"elem\",\n elem: line,\n shift: lineShift\n });\n }\n }\n\n body = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: vListElems\n }, options);\n }\n\n if (tagSpans.length === 0) {\n return buildCommon.makeSpan([\"mord\"], [body], options);\n } else {\n let eqnNumCol = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: tagSpans\n }, options);\n eqnNumCol = buildCommon.makeSpan([\"tag\"], [eqnNumCol], options);\n return buildCommon.makeFragment([body, eqnNumCol]);\n }\n};\n\nconst alignMap = {\n c: \"center \",\n l: \"left \",\n r: \"right \"\n};\n\nconst array_mathmlBuilder = function (group, options) {\n const tbl = [];\n const glue = new mathMLTree.MathNode(\"mtd\", [], [\"mtr-glue\"]);\n const tag = new mathMLTree.MathNode(\"mtd\", [], [\"mml-eqn-num\"]);\n\n for (let i = 0; i < group.body.length; i++) {\n const rw = group.body[i];\n const row = [];\n\n for (let j = 0; j < rw.length; j++) {\n row.push(new mathMLTree.MathNode(\"mtd\", [buildMathML_buildGroup(rw[j], options)]));\n }\n\n if (group.tags && group.tags[i]) {\n row.unshift(glue);\n row.push(glue);\n\n if (group.leqno) {\n row.unshift(tag);\n } else {\n row.push(tag);\n }\n }\n\n tbl.push(new mathMLTree.MathNode(\"mtr\", row));\n }\n\n let table = new mathMLTree.MathNode(\"mtable\", tbl); // Set column alignment, row spacing, column spacing, and\n // array lines by setting attributes on the table element.\n // Set the row spacing. In MathML, we specify a gap distance.\n // We do not use rowGap[] because MathML automatically increases\n // cell height with the height/depth of the element content.\n // LaTeX \\arraystretch multiplies the row baseline-to-baseline distance.\n // We simulate this by adding (arraystretch - 1)em to the gap. This\n // does a reasonable job of adjusting arrays containing 1 em tall content.\n // The 0.16 and 0.09 values are found empirically. They produce an array\n // similar to LaTeX and in which content does not interfere with \\hlines.\n\n const gap = group.arraystretch === 0.5 ? 0.1 // {smallmatrix}, {subarray}\n : 0.16 + group.arraystretch - 1 + (group.addJot ? 0.09 : 0);\n table.setAttribute(\"rowspacing\", makeEm(gap)); // MathML table lines go only between cells.\n // To place a line on an edge we'll use , if necessary.\n\n let menclose = \"\";\n let align = \"\";\n\n if (group.cols && group.cols.length > 0) {\n // Find column alignment, column spacing, and vertical lines.\n const cols = group.cols;\n let columnLines = \"\";\n let prevTypeWasAlign = false;\n let iStart = 0;\n let iEnd = cols.length;\n\n if (cols[0].type === \"separator\") {\n menclose += \"top \";\n iStart = 1;\n }\n\n if (cols[cols.length - 1].type === \"separator\") {\n menclose += \"bottom \";\n iEnd -= 1;\n }\n\n for (let i = iStart; i < iEnd; i++) {\n if (cols[i].type === \"align\") {\n align += alignMap[cols[i].align];\n\n if (prevTypeWasAlign) {\n columnLines += \"none \";\n }\n\n prevTypeWasAlign = true;\n } else if (cols[i].type === \"separator\") {\n // MathML accepts only single lines between cells.\n // So we read only the first of consecutive separators.\n if (prevTypeWasAlign) {\n columnLines += cols[i].separator === \"|\" ? \"solid \" : \"dashed \";\n prevTypeWasAlign = false;\n }\n }\n }\n\n table.setAttribute(\"columnalign\", align.trim());\n\n if (/[sd]/.test(columnLines)) {\n table.setAttribute(\"columnlines\", columnLines.trim());\n }\n } // Set column spacing.\n\n\n if (group.colSeparationType === \"align\") {\n const cols = group.cols || [];\n let spacing = \"\";\n\n for (let i = 1; i < cols.length; i++) {\n spacing += i % 2 ? \"0em \" : \"1em \";\n }\n\n table.setAttribute(\"columnspacing\", spacing.trim());\n } else if (group.colSeparationType === \"alignat\" || group.colSeparationType === \"gather\") {\n table.setAttribute(\"columnspacing\", \"0em\");\n } else if (group.colSeparationType === \"small\") {\n table.setAttribute(\"columnspacing\", \"0.2778em\");\n } else if (group.colSeparationType === \"CD\") {\n table.setAttribute(\"columnspacing\", \"0.5em\");\n } else {\n table.setAttribute(\"columnspacing\", \"1em\");\n } // Address \\hline and \\hdashline\n\n\n let rowLines = \"\";\n const hlines = group.hLinesBeforeRow;\n menclose += hlines[0].length > 0 ? \"left \" : \"\";\n menclose += hlines[hlines.length - 1].length > 0 ? \"right \" : \"\";\n\n for (let i = 1; i < hlines.length - 1; i++) {\n rowLines += hlines[i].length === 0 ? \"none \" // MathML accepts only a single line between rows. Read one element.\n : hlines[i][0] ? \"dashed \" : \"solid \";\n }\n\n if (/[sd]/.test(rowLines)) {\n table.setAttribute(\"rowlines\", rowLines.trim());\n }\n\n if (menclose !== \"\") {\n table = new mathMLTree.MathNode(\"menclose\", [table]);\n table.setAttribute(\"notation\", menclose.trim());\n }\n\n if (group.arraystretch && group.arraystretch < 1) {\n // A small array. Wrap in scriptstyle so row gap is not too large.\n table = new mathMLTree.MathNode(\"mstyle\", [table]);\n table.setAttribute(\"scriptlevel\", \"1\");\n }\n\n return table;\n}; // Convenience function for align, align*, aligned, alignat, alignat*, alignedat.\n\n\nconst alignedHandler = function (context, args) {\n if (context.envName.indexOf(\"ed\") === -1) {\n validateAmsEnvironmentContext(context);\n }\n\n const cols = [];\n const separationType = context.envName.indexOf(\"at\") > -1 ? \"alignat\" : \"align\";\n const isSplit = context.envName === \"split\";\n const res = parseArray(context.parser, {\n cols,\n addJot: true,\n autoTag: isSplit ? undefined : getAutoTag(context.envName),\n emptySingleRow: true,\n colSeparationType: separationType,\n maxNumCols: isSplit ? 2 : undefined,\n leqno: context.parser.settings.leqno\n }, \"display\"); // Determining number of columns.\n // 1. If the first argument is given, we use it as a number of columns,\n // and makes sure that each row doesn't exceed that number.\n // 2. Otherwise, just count number of columns = maximum number\n // of cells in each row (\"aligned\" mode -- isAligned will be true).\n //\n // At the same time, prepend empty group {} at beginning of every second\n // cell in each row (starting with second cell) so that operators become\n // binary. This behavior is implemented in amsmath's \\start@aligned.\n\n let numMaths;\n let numCols = 0;\n const emptyGroup = {\n type: \"ordgroup\",\n mode: context.mode,\n body: []\n };\n\n if (args[0] && args[0].type === \"ordgroup\") {\n let arg0 = \"\";\n\n for (let i = 0; i < args[0].body.length; i++) {\n const textord = assertNodeType(args[0].body[i], \"textord\");\n arg0 += textord.text;\n }\n\n numMaths = Number(arg0);\n numCols = numMaths * 2;\n }\n\n const isAligned = !numCols;\n res.body.forEach(function (row) {\n for (let i = 1; i < row.length; i += 2) {\n // Modify ordgroup node within styling node\n const styling = assertNodeType(row[i], \"styling\");\n const ordgroup = assertNodeType(styling.body[0], \"ordgroup\");\n ordgroup.body.unshift(emptyGroup);\n }\n\n if (!isAligned) {\n // Case 1\n const curMaths = row.length / 2;\n\n if (numMaths < curMaths) {\n throw new src_ParseError(\"Too many math in a row: \" + (\"expected \" + numMaths + \", but got \" + curMaths), row[0]);\n }\n } else if (numCols < row.length) {\n // Case 2\n numCols = row.length;\n }\n }); // Adjusting alignment.\n // In aligned mode, we add one \\qquad between columns;\n // otherwise we add nothing.\n\n for (let i = 0; i < numCols; ++i) {\n let align = \"r\";\n let pregap = 0;\n\n if (i % 2 === 1) {\n align = \"l\";\n } else if (i > 0 && isAligned) {\n // \"aligned\" mode.\n pregap = 1; // add one \\quad\n }\n\n cols[i] = {\n type: \"align\",\n align: align,\n pregap: pregap,\n postgap: 0\n };\n }\n\n res.colSeparationType = isAligned ? \"align\" : \"alignat\";\n return res;\n}; // Arrays are part of LaTeX, defined in lttab.dtx so its documentation\n// is part of the source2e.pdf file of LaTeX2e source documentation.\n// {darray} is an {array} environment where cells are set in \\displaystyle,\n// as defined in nccmath.sty.\n\n\ndefineEnvironment({\n type: \"array\",\n names: [\"array\", \"darray\"],\n props: {\n numArgs: 1\n },\n\n handler(context, args) {\n // Since no types are specified above, the two possibilities are\n // - The argument is wrapped in {} or [], in which case Parser's\n // parseGroup() returns an \"ordgroup\" wrapping some symbol node.\n // - The argument is a bare symbol node.\n const symNode = checkSymbolNodeType(args[0]);\n const colalign = symNode ? [args[0]] : assertNodeType(args[0], \"ordgroup\").body;\n const cols = colalign.map(function (nde) {\n const node = assertSymbolNodeType(nde);\n const ca = node.text;\n\n if (\"lcr\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca\n };\n } else if (ca === \"|\") {\n return {\n type: \"separator\",\n separator: \"|\"\n };\n } else if (ca === \":\") {\n return {\n type: \"separator\",\n separator: \":\"\n };\n }\n\n throw new src_ParseError(\"Unknown column alignment: \" + ca, nde);\n });\n const res = {\n cols,\n hskipBeforeAndAfter: true,\n // \\@preamble in lttab.dtx\n maxNumCols: cols.length\n };\n return parseArray(context.parser, res, dCellStyle(context.envName));\n },\n\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // The matrix environments of amsmath builds on the array environment\n// of LaTeX, which is discussed above.\n// The mathtools package adds starred versions of the same environments.\n// These have an optional argument to choose left|center|right justification.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"matrix\", \"pmatrix\", \"bmatrix\", \"Bmatrix\", \"vmatrix\", \"Vmatrix\", \"matrix*\", \"pmatrix*\", \"bmatrix*\", \"Bmatrix*\", \"vmatrix*\", \"Vmatrix*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n const delimiters = {\n \"matrix\": null,\n \"pmatrix\": [\"(\", \")\"],\n \"bmatrix\": [\"[\", \"]\"],\n \"Bmatrix\": [\"\\\\{\", \"\\\\}\"],\n \"vmatrix\": [\"|\", \"|\"],\n \"Vmatrix\": [\"\\\\Vert\", \"\\\\Vert\"]\n }[context.envName.replace(\"*\", \"\")]; // \\hskip -\\arraycolsep in amsmath\n\n let colAlign = \"c\";\n const payload = {\n hskipBeforeAndAfter: false,\n cols: [{\n type: \"align\",\n align: colAlign\n }]\n };\n\n if (context.envName.charAt(context.envName.length - 1) === \"*\") {\n // It's one of the mathtools starred functions.\n // Parse the optional alignment argument.\n const parser = context.parser;\n parser.consumeSpaces();\n\n if (parser.fetch().text === \"[\") {\n parser.consume();\n parser.consumeSpaces();\n colAlign = parser.fetch().text;\n\n if (\"lcr\".indexOf(colAlign) === -1) {\n throw new src_ParseError(\"Expected l or c or r\", parser.nextToken);\n }\n\n parser.consume();\n parser.consumeSpaces();\n parser.expect(\"]\");\n parser.consume();\n payload.cols = [{\n type: \"align\",\n align: colAlign\n }];\n }\n }\n\n const res = parseArray(context.parser, payload, dCellStyle(context.envName)); // Populate cols with the correct number of column alignment specs.\n\n const numCols = Math.max(0, ...res.body.map(row => row.length));\n res.cols = new Array(numCols).fill({\n type: \"align\",\n align: colAlign\n });\n return delimiters ? {\n type: \"leftright\",\n mode: context.mode,\n body: [res],\n left: delimiters[0],\n right: delimiters[1],\n rightColor: undefined // \\right uninfluenced by \\color in array\n\n } : res;\n },\n\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"smallmatrix\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n const payload = {\n arraystretch: 0.5\n };\n const res = parseArray(context.parser, payload, \"script\");\n res.colSeparationType = \"small\";\n return res;\n },\n\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"subarray\"],\n props: {\n numArgs: 1\n },\n\n handler(context, args) {\n // Parsing of {subarray} is similar to {array}\n const symNode = checkSymbolNodeType(args[0]);\n const colalign = symNode ? [args[0]] : assertNodeType(args[0], \"ordgroup\").body;\n const cols = colalign.map(function (nde) {\n const node = assertSymbolNodeType(nde);\n const ca = node.text; // {subarray} only recognizes \"l\" & \"c\"\n\n if (\"lc\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca\n };\n }\n\n throw new src_ParseError(\"Unknown column alignment: \" + ca, nde);\n });\n\n if (cols.length > 1) {\n throw new src_ParseError(\"{subarray} can contain only one column\");\n }\n\n let res = {\n cols,\n hskipBeforeAndAfter: false,\n arraystretch: 0.5\n };\n res = parseArray(context.parser, res, \"script\");\n\n if (res.body.length > 0 && res.body[0].length > 1) {\n throw new src_ParseError(\"{subarray} can contain only one column\");\n }\n\n return res;\n },\n\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // A cases environment (in amsmath.sty) is almost equivalent to\n// \\def\\arraystretch{1.2}%\n// \\left\\{\\begin{array}{@{}l@{\\quad}l@{}} … \\end{array}\\right.\n// {dcases} is a {cases} environment where cells are set in \\displaystyle,\n// as defined in mathtools.sty.\n// {rcases} is another mathtools environment. It's brace is on the right side.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"cases\", \"dcases\", \"rcases\", \"drcases\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n const payload = {\n arraystretch: 1.2,\n cols: [{\n type: \"align\",\n align: \"l\",\n pregap: 0,\n // TODO(kevinb) get the current style.\n // For now we use the metrics for TEXT style which is what we were\n // doing before. Before attempting to get the current style we\n // should look at TeX's behavior especially for \\over and matrices.\n postgap: 1.0\n /* 1em quad */\n\n }, {\n type: \"align\",\n align: \"l\",\n pregap: 0,\n postgap: 0\n }]\n };\n const res = parseArray(context.parser, payload, dCellStyle(context.envName));\n return {\n type: \"leftright\",\n mode: context.mode,\n body: [res],\n left: context.envName.indexOf(\"r\") > -1 ? \".\" : \"\\\\{\",\n right: context.envName.indexOf(\"r\") > -1 ? \"\\\\}\" : \".\",\n rightColor: undefined\n };\n },\n\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // In the align environment, one uses ampersands, &, to specify number of\n// columns in each row, and to locate spacing between each column.\n// align gets automatic numbering. align* and aligned do not.\n// The alignedat environment can be used in math mode.\n// Note that we assume \\nomallineskiplimit to be zero,\n// so that \\strut@ is the same as \\strut.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"align\", \"align*\", \"aligned\", \"split\"],\n props: {\n numArgs: 0\n },\n handler: alignedHandler,\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // A gathered environment is like an array environment with one centered\n// column, but where rows are considered lines so get \\jot line spacing\n// and contents are set in \\displaystyle.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"gathered\", \"gather\", \"gather*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n if (utils.contains([\"gather\", \"gather*\"], context.envName)) {\n validateAmsEnvironmentContext(context);\n }\n\n const res = {\n cols: [{\n type: \"align\",\n align: \"c\"\n }],\n addJot: true,\n colSeparationType: \"gather\",\n autoTag: getAutoTag(context.envName),\n emptySingleRow: true,\n leqno: context.parser.settings.leqno\n };\n return parseArray(context.parser, res, \"display\");\n },\n\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // alignat environment is like an align environment, but one must explicitly\n// specify maximum number of columns in each row, and can adjust spacing between\n// each columns.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"alignat\", \"alignat*\", \"alignedat\"],\n props: {\n numArgs: 1\n },\n handler: alignedHandler,\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"equation\", \"equation*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n validateAmsEnvironmentContext(context);\n const res = {\n autoTag: getAutoTag(context.envName),\n emptySingleRow: true,\n singleRow: true,\n maxNumCols: 1,\n leqno: context.parser.settings.leqno\n };\n return parseArray(context.parser, res, \"display\");\n },\n\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"CD\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n validateAmsEnvironmentContext(context);\n return parseCD(context.parser);\n },\n\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineMacro(\"\\\\nonumber\", \"\\\\gdef\\\\@eqnsw{0}\");\ndefineMacro(\"\\\\notag\", \"\\\\nonumber\"); // Catch \\hline outside array environment\n\ndefineFunction({\n type: \"text\",\n // Doesn't matter what this is.\n names: [\"\\\\hline\", \"\\\\hdashline\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: true\n },\n\n handler(context, args) {\n throw new src_ParseError(context.funcName + \" valid only within array environment\");\n }\n\n});\n;// CONCATENATED MODULE: ./src/environments.js\n\nconst environments = _environments;\n/* harmony default export */ var src_environments = (environments); // All environment definitions should be imported below\n\n\n;// CONCATENATED MODULE: ./src/functions/environment.js\n\n\n\n // Environment delimiters. HTML/MathML rendering is defined in the corresponding\n// defineEnvironment definitions.\n\ndefineFunction({\n type: \"environment\",\n names: [\"\\\\begin\", \"\\\\end\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"]\n },\n\n handler(_ref, args) {\n let {\n parser,\n funcName\n } = _ref;\n const nameGroup = args[0];\n\n if (nameGroup.type !== \"ordgroup\") {\n throw new src_ParseError(\"Invalid environment name\", nameGroup);\n }\n\n let envName = \"\";\n\n for (let i = 0; i < nameGroup.body.length; ++i) {\n envName += assertNodeType(nameGroup.body[i], \"textord\").text;\n }\n\n if (funcName === \"\\\\begin\") {\n // begin...end is similar to left...right\n if (!src_environments.hasOwnProperty(envName)) {\n throw new src_ParseError(\"No such environment: \" + envName, nameGroup);\n } // Build the environment object. Arguments and other information will\n // be made available to the begin and end methods using properties.\n\n\n const env = src_environments[envName];\n const {\n args,\n optArgs\n } = parser.parseArguments(\"\\\\begin{\" + envName + \"}\", env);\n const context = {\n mode: parser.mode,\n envName,\n parser\n };\n const result = env.handler(context, args, optArgs);\n parser.expect(\"\\\\end\", false);\n const endNameToken = parser.nextToken;\n const end = assertNodeType(parser.parseFunction(), \"environment\");\n\n if (end.name !== envName) {\n throw new src_ParseError(\"Mismatch: \\\\begin{\" + envName + \"} matched by \\\\end{\" + end.name + \"}\", endNameToken);\n } // $FlowFixMe, \"environment\" handler returns an environment ParseNode\n\n\n return result;\n }\n\n return {\n type: \"environment\",\n mode: parser.mode,\n name: envName,\n nameGroup\n };\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/font.js\n// TODO(kevinb): implement \\\\sl and \\\\sc\n\n\n\n\n\n\nconst font_htmlBuilder = (group, options) => {\n const font = group.font;\n const newOptions = options.withFont(font);\n return buildGroup(group.body, newOptions);\n};\n\nconst font_mathmlBuilder = (group, options) => {\n const font = group.font;\n const newOptions = options.withFont(font);\n return buildMathML_buildGroup(group.body, newOptions);\n};\n\nconst fontAliases = {\n \"\\\\Bbb\": \"\\\\mathbb\",\n \"\\\\bold\": \"\\\\mathbf\",\n \"\\\\frak\": \"\\\\mathfrak\",\n \"\\\\bm\": \"\\\\boldsymbol\"\n};\ndefineFunction({\n type: \"font\",\n names: [// styles, except \\boldsymbol defined below\n \"\\\\mathrm\", \"\\\\mathit\", \"\\\\mathbf\", \"\\\\mathnormal\", \"\\\\mathsfit\", // families\n \"\\\\mathbb\", \"\\\\mathcal\", \"\\\\mathfrak\", \"\\\\mathscr\", \"\\\\mathsf\", \"\\\\mathtt\", // aliases, except \\bm defined below\n \"\\\\Bbb\", \"\\\\bold\", \"\\\\frak\"],\n props: {\n numArgs: 1,\n allowedInArgument: true\n },\n handler: (_ref, args) => {\n let {\n parser,\n funcName\n } = _ref;\n const body = normalizeArgument(args[0]);\n let func = funcName;\n\n if (func in fontAliases) {\n func = fontAliases[func];\n }\n\n return {\n type: \"font\",\n mode: parser.mode,\n font: func.slice(1),\n body\n };\n },\n htmlBuilder: font_htmlBuilder,\n mathmlBuilder: font_mathmlBuilder\n});\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\boldsymbol\", \"\\\\bm\"],\n props: {\n numArgs: 1\n },\n handler: (_ref2, args) => {\n let {\n parser\n } = _ref2;\n const body = args[0];\n const isCharacterBox = utils.isCharacterBox(body); // amsbsy.sty's \\boldsymbol uses \\binrel spacing to inherit the\n // argument's bin|rel|ord status\n\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: binrelClass(body),\n body: [{\n type: \"font\",\n mode: parser.mode,\n font: \"boldsymbol\",\n body\n }],\n isCharacterBox: isCharacterBox\n };\n }\n}); // Old font changing functions\n\ndefineFunction({\n type: \"font\",\n names: [\"\\\\rm\", \"\\\\sf\", \"\\\\tt\", \"\\\\bf\", \"\\\\it\", \"\\\\cal\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: (_ref3, args) => {\n let {\n parser,\n funcName,\n breakOnTokenText\n } = _ref3;\n const {\n mode\n } = parser;\n const body = parser.parseExpression(true, breakOnTokenText);\n const style = \"math\" + funcName.slice(1);\n return {\n type: \"font\",\n mode: mode,\n font: style,\n body: {\n type: \"ordgroup\",\n mode: parser.mode,\n body\n }\n };\n },\n htmlBuilder: font_htmlBuilder,\n mathmlBuilder: font_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/genfrac.js\n\n\n\n\n\n\n\n\n\n\n\nconst adjustStyle = (size, originalStyle) => {\n // Figure out what style this fraction should be in based on the\n // function used\n let style = originalStyle;\n\n if (size === \"display\") {\n // Get display style as a default.\n // If incoming style is sub/sup, use style.text() to get correct size.\n style = style.id >= src_Style.SCRIPT.id ? style.text() : src_Style.DISPLAY;\n } else if (size === \"text\" && style.size === src_Style.DISPLAY.size) {\n // We're in a \\tfrac but incoming style is displaystyle, so:\n style = src_Style.TEXT;\n } else if (size === \"script\") {\n style = src_Style.SCRIPT;\n } else if (size === \"scriptscript\") {\n style = src_Style.SCRIPTSCRIPT;\n }\n\n return style;\n};\n\nconst genfrac_htmlBuilder = (group, options) => {\n // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e).\n const style = adjustStyle(group.size, options.style);\n const nstyle = style.fracNum();\n const dstyle = style.fracDen();\n let newOptions;\n newOptions = options.havingStyle(nstyle);\n const numerm = buildGroup(group.numer, newOptions, options);\n\n if (group.continued) {\n // \\cfrac inserts a \\strut into the numerator.\n // Get \\strut dimensions from TeXbook page 353.\n const hStrut = 8.5 / options.fontMetrics().ptPerEm;\n const dStrut = 3.5 / options.fontMetrics().ptPerEm;\n numerm.height = numerm.height < hStrut ? hStrut : numerm.height;\n numerm.depth = numerm.depth < dStrut ? dStrut : numerm.depth;\n }\n\n newOptions = options.havingStyle(dstyle);\n const denomm = buildGroup(group.denom, newOptions, options);\n let rule;\n let ruleWidth;\n let ruleSpacing;\n\n if (group.hasBarLine) {\n if (group.barSize) {\n ruleWidth = calculateSize(group.barSize, options);\n rule = buildCommon.makeLineSpan(\"frac-line\", options, ruleWidth);\n } else {\n rule = buildCommon.makeLineSpan(\"frac-line\", options);\n }\n\n ruleWidth = rule.height;\n ruleSpacing = rule.height;\n } else {\n rule = null;\n ruleWidth = 0;\n ruleSpacing = options.fontMetrics().defaultRuleThickness;\n } // Rule 15b\n\n\n let numShift;\n let clearance;\n let denomShift;\n\n if (style.size === src_Style.DISPLAY.size || group.size === \"display\") {\n numShift = options.fontMetrics().num1;\n\n if (ruleWidth > 0) {\n clearance = 3 * ruleSpacing;\n } else {\n clearance = 7 * ruleSpacing;\n }\n\n denomShift = options.fontMetrics().denom1;\n } else {\n if (ruleWidth > 0) {\n numShift = options.fontMetrics().num2;\n clearance = ruleSpacing;\n } else {\n numShift = options.fontMetrics().num3;\n clearance = 3 * ruleSpacing;\n }\n\n denomShift = options.fontMetrics().denom2;\n }\n\n let frac;\n\n if (!rule) {\n // Rule 15c\n const candidateClearance = numShift - numerm.depth - (denomm.height - denomShift);\n\n if (candidateClearance < clearance) {\n numShift += 0.5 * (clearance - candidateClearance);\n denomShift += 0.5 * (clearance - candidateClearance);\n }\n\n frac = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: denomm,\n shift: denomShift\n }, {\n type: \"elem\",\n elem: numerm,\n shift: -numShift\n }]\n }, options);\n } else {\n // Rule 15d\n const axisHeight = options.fontMetrics().axisHeight;\n\n if (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth) < clearance) {\n numShift += clearance - (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth));\n }\n\n if (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift) < clearance) {\n denomShift += clearance - (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift));\n }\n\n const midShift = -(axisHeight - 0.5 * ruleWidth);\n frac = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: denomm,\n shift: denomShift\n }, {\n type: \"elem\",\n elem: rule,\n shift: midShift\n }, {\n type: \"elem\",\n elem: numerm,\n shift: -numShift\n }]\n }, options);\n } // Since we manually change the style sometimes (with \\dfrac or \\tfrac),\n // account for the possible size change here.\n\n\n newOptions = options.havingStyle(style);\n frac.height *= newOptions.sizeMultiplier / options.sizeMultiplier;\n frac.depth *= newOptions.sizeMultiplier / options.sizeMultiplier; // Rule 15e\n\n let delimSize;\n\n if (style.size === src_Style.DISPLAY.size) {\n delimSize = options.fontMetrics().delim1;\n } else if (style.size === src_Style.SCRIPTSCRIPT.size) {\n delimSize = options.havingStyle(src_Style.SCRIPT).fontMetrics().delim2;\n } else {\n delimSize = options.fontMetrics().delim2;\n }\n\n let leftDelim;\n let rightDelim;\n\n if (group.leftDelim == null) {\n leftDelim = makeNullDelimiter(options, [\"mopen\"]);\n } else {\n leftDelim = delimiter.customSizedDelim(group.leftDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mopen\"]);\n }\n\n if (group.continued) {\n rightDelim = buildCommon.makeSpan([]); // zero width for \\cfrac\n } else if (group.rightDelim == null) {\n rightDelim = makeNullDelimiter(options, [\"mclose\"]);\n } else {\n rightDelim = delimiter.customSizedDelim(group.rightDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mclose\"]);\n }\n\n return buildCommon.makeSpan([\"mord\"].concat(newOptions.sizingClasses(options)), [leftDelim, buildCommon.makeSpan([\"mfrac\"], [frac]), rightDelim], options);\n};\n\nconst genfrac_mathmlBuilder = (group, options) => {\n let node = new mathMLTree.MathNode(\"mfrac\", [buildMathML_buildGroup(group.numer, options), buildMathML_buildGroup(group.denom, options)]);\n\n if (!group.hasBarLine) {\n node.setAttribute(\"linethickness\", \"0px\");\n } else if (group.barSize) {\n const ruleWidth = calculateSize(group.barSize, options);\n node.setAttribute(\"linethickness\", makeEm(ruleWidth));\n }\n\n const style = adjustStyle(group.size, options.style);\n\n if (style.size !== options.style.size) {\n node = new mathMLTree.MathNode(\"mstyle\", [node]);\n const isDisplay = style.size === src_Style.DISPLAY.size ? \"true\" : \"false\";\n node.setAttribute(\"displaystyle\", isDisplay);\n node.setAttribute(\"scriptlevel\", \"0\");\n }\n\n if (group.leftDelim != null || group.rightDelim != null) {\n const withDelims = [];\n\n if (group.leftDelim != null) {\n const leftOp = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(group.leftDelim.replace(\"\\\\\", \"\"))]);\n leftOp.setAttribute(\"fence\", \"true\");\n withDelims.push(leftOp);\n }\n\n withDelims.push(node);\n\n if (group.rightDelim != null) {\n const rightOp = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(group.rightDelim.replace(\"\\\\\", \"\"))]);\n rightOp.setAttribute(\"fence\", \"true\");\n withDelims.push(rightOp);\n }\n\n return makeRow(withDelims);\n }\n\n return node;\n};\n\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\dfrac\", \"\\\\frac\", \"\\\\tfrac\", \"\\\\dbinom\", \"\\\\binom\", \"\\\\tbinom\", \"\\\\\\\\atopfrac\", // can’t be entered directly\n \"\\\\\\\\bracefrac\", \"\\\\\\\\brackfrac\" // ditto\n ],\n props: {\n numArgs: 2,\n allowedInArgument: true\n },\n handler: (_ref, args) => {\n let {\n parser,\n funcName\n } = _ref;\n const numer = args[0];\n const denom = args[1];\n let hasBarLine;\n let leftDelim = null;\n let rightDelim = null;\n let size = \"auto\";\n\n switch (funcName) {\n case \"\\\\dfrac\":\n case \"\\\\frac\":\n case \"\\\\tfrac\":\n hasBarLine = true;\n break;\n\n case \"\\\\\\\\atopfrac\":\n hasBarLine = false;\n break;\n\n case \"\\\\dbinom\":\n case \"\\\\binom\":\n case \"\\\\tbinom\":\n hasBarLine = false;\n leftDelim = \"(\";\n rightDelim = \")\";\n break;\n\n case \"\\\\\\\\bracefrac\":\n hasBarLine = false;\n leftDelim = \"\\\\{\";\n rightDelim = \"\\\\}\";\n break;\n\n case \"\\\\\\\\brackfrac\":\n hasBarLine = false;\n leftDelim = \"[\";\n rightDelim = \"]\";\n break;\n\n default:\n throw new Error(\"Unrecognized genfrac command\");\n }\n\n switch (funcName) {\n case \"\\\\dfrac\":\n case \"\\\\dbinom\":\n size = \"display\";\n break;\n\n case \"\\\\tfrac\":\n case \"\\\\tbinom\":\n size = \"text\";\n break;\n }\n\n return {\n type: \"genfrac\",\n mode: parser.mode,\n continued: false,\n numer,\n denom,\n hasBarLine,\n leftDelim,\n rightDelim,\n size,\n barSize: null\n };\n },\n htmlBuilder: genfrac_htmlBuilder,\n mathmlBuilder: genfrac_mathmlBuilder\n});\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\cfrac\"],\n props: {\n numArgs: 2\n },\n handler: (_ref2, args) => {\n let {\n parser,\n funcName\n } = _ref2;\n const numer = args[0];\n const denom = args[1];\n return {\n type: \"genfrac\",\n mode: parser.mode,\n continued: true,\n numer,\n denom,\n hasBarLine: true,\n leftDelim: null,\n rightDelim: null,\n size: \"display\",\n barSize: null\n };\n }\n}); // Infix generalized fractions -- these are not rendered directly, but replaced\n// immediately by one of the variants above.\n\ndefineFunction({\n type: \"infix\",\n names: [\"\\\\over\", \"\\\\choose\", \"\\\\atop\", \"\\\\brace\", \"\\\\brack\"],\n props: {\n numArgs: 0,\n infix: true\n },\n\n handler(_ref3) {\n let {\n parser,\n funcName,\n token\n } = _ref3;\n let replaceWith;\n\n switch (funcName) {\n case \"\\\\over\":\n replaceWith = \"\\\\frac\";\n break;\n\n case \"\\\\choose\":\n replaceWith = \"\\\\binom\";\n break;\n\n case \"\\\\atop\":\n replaceWith = \"\\\\\\\\atopfrac\";\n break;\n\n case \"\\\\brace\":\n replaceWith = \"\\\\\\\\bracefrac\";\n break;\n\n case \"\\\\brack\":\n replaceWith = \"\\\\\\\\brackfrac\";\n break;\n\n default:\n throw new Error(\"Unrecognized infix genfrac command\");\n }\n\n return {\n type: \"infix\",\n mode: parser.mode,\n replaceWith,\n token\n };\n }\n\n});\nconst stylArray = [\"display\", \"text\", \"script\", \"scriptscript\"];\n\nconst delimFromValue = function (delimString) {\n let delim = null;\n\n if (delimString.length > 0) {\n delim = delimString;\n delim = delim === \".\" ? null : delim;\n }\n\n return delim;\n};\n\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\genfrac\"],\n props: {\n numArgs: 6,\n allowedInArgument: true,\n argTypes: [\"math\", \"math\", \"size\", \"text\", \"math\", \"math\"]\n },\n\n handler(_ref4, args) {\n let {\n parser\n } = _ref4;\n const numer = args[4];\n const denom = args[5]; // Look into the parse nodes to get the desired delimiters.\n\n const leftNode = normalizeArgument(args[0]);\n const leftDelim = leftNode.type === \"atom\" && leftNode.family === \"open\" ? delimFromValue(leftNode.text) : null;\n const rightNode = normalizeArgument(args[1]);\n const rightDelim = rightNode.type === \"atom\" && rightNode.family === \"close\" ? delimFromValue(rightNode.text) : null;\n const barNode = assertNodeType(args[2], \"size\");\n let hasBarLine;\n let barSize = null;\n\n if (barNode.isBlank) {\n // \\genfrac acts differently than \\above.\n // \\genfrac treats an empty size group as a signal to use a\n // standard bar size. \\above would see size = 0 and omit the bar.\n hasBarLine = true;\n } else {\n barSize = barNode.value;\n hasBarLine = barSize.number > 0;\n } // Find out if we want displaystyle, textstyle, etc.\n\n\n let size = \"auto\";\n let styl = args[3];\n\n if (styl.type === \"ordgroup\") {\n if (styl.body.length > 0) {\n const textOrd = assertNodeType(styl.body[0], \"textord\");\n size = stylArray[Number(textOrd.text)];\n }\n } else {\n styl = assertNodeType(styl, \"textord\");\n size = stylArray[Number(styl.text)];\n }\n\n return {\n type: \"genfrac\",\n mode: parser.mode,\n numer,\n denom,\n continued: false,\n hasBarLine,\n barSize,\n leftDelim,\n rightDelim,\n size\n };\n },\n\n htmlBuilder: genfrac_htmlBuilder,\n mathmlBuilder: genfrac_mathmlBuilder\n}); // \\above is an infix fraction that also defines a fraction bar size.\n\ndefineFunction({\n type: \"infix\",\n names: [\"\\\\above\"],\n props: {\n numArgs: 1,\n argTypes: [\"size\"],\n infix: true\n },\n\n handler(_ref5, args) {\n let {\n parser,\n funcName,\n token\n } = _ref5;\n return {\n type: \"infix\",\n mode: parser.mode,\n replaceWith: \"\\\\\\\\abovefrac\",\n size: assertNodeType(args[0], \"size\").value,\n token\n };\n }\n\n});\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\\\\\abovefrac\"],\n props: {\n numArgs: 3,\n argTypes: [\"math\", \"size\", \"math\"]\n },\n handler: (_ref6, args) => {\n let {\n parser,\n funcName\n } = _ref6;\n const numer = args[0];\n const barSize = assert(assertNodeType(args[1], \"infix\").size);\n const denom = args[2];\n const hasBarLine = barSize.number > 0;\n return {\n type: \"genfrac\",\n mode: parser.mode,\n numer,\n denom,\n continued: false,\n hasBarLine,\n barSize,\n leftDelim: null,\n rightDelim: null,\n size: \"auto\"\n };\n },\n htmlBuilder: genfrac_htmlBuilder,\n mathmlBuilder: genfrac_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/horizBrace.js\n\n\n\n\n\n\n\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only \"horizBrace\", but\n// also \"supsub\" since an over/underbrace can affect super/subscripting.\nconst horizBrace_htmlBuilder = (grp, options) => {\n const style = options.style; // Pull out the `ParseNode<\"horizBrace\">` if `grp` is a \"supsub\" node.\n\n let supSubGroup;\n let group;\n\n if (grp.type === \"supsub\") {\n // Ref: LaTeX source2e: }}}}\\limits}\n // i.e. LaTeX treats the brace similar to an op and passes it\n // with \\limits, so we need to assign supsub style.\n supSubGroup = grp.sup ? buildGroup(grp.sup, options.havingStyle(style.sup()), options) : buildGroup(grp.sub, options.havingStyle(style.sub()), options);\n group = assertNodeType(grp.base, \"horizBrace\");\n } else {\n group = assertNodeType(grp, \"horizBrace\");\n } // Build the base group\n\n\n const body = buildGroup(group.base, options.havingBaseStyle(src_Style.DISPLAY)); // Create the stretchy element\n\n const braceBody = stretchy.svgSpan(group, options); // Generate the vlist, with the appropriate kerns ┏━━━━━━━━┓\n // This first vlist contains the content and the brace: equation\n\n let vlist;\n\n if (group.isOver) {\n vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"kern\",\n size: 0.1\n }, {\n type: \"elem\",\n elem: braceBody\n }]\n }, options); // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: body.depth + 0.1 + braceBody.height,\n children: [{\n type: \"elem\",\n elem: braceBody\n }, {\n type: \"kern\",\n size: 0.1\n }, {\n type: \"elem\",\n elem: body\n }]\n }, options); // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n vlist.children[0].children[0].children[0].classes.push(\"svg-align\");\n }\n\n if (supSubGroup) {\n // To write the supsub, wrap the first vlist in another vlist:\n // They can't all go in the same vlist, because the note might be\n // wider than the equation. We want the equation to control the\n // brace width.\n // note long note long note\n // ┏━━━━━━━━┓ or ┏━━━┓ not ┏━━━━━━━━━┓\n // equation eqn eqn\n const vSpan = buildCommon.makeSpan([\"mord\", group.isOver ? \"mover\" : \"munder\"], [vlist], options);\n\n if (group.isOver) {\n vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: vSpan\n }, {\n type: \"kern\",\n size: 0.2\n }, {\n type: \"elem\",\n elem: supSubGroup\n }]\n }, options);\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: vSpan.depth + 0.2 + supSubGroup.height + supSubGroup.depth,\n children: [{\n type: \"elem\",\n elem: supSubGroup\n }, {\n type: \"kern\",\n size: 0.2\n }, {\n type: \"elem\",\n elem: vSpan\n }]\n }, options);\n }\n }\n\n return buildCommon.makeSpan([\"mord\", group.isOver ? \"mover\" : \"munder\"], [vlist], options);\n};\n\nconst horizBrace_mathmlBuilder = (group, options) => {\n const accentNode = stretchy.mathMLnode(group.label);\n return new mathMLTree.MathNode(group.isOver ? \"mover\" : \"munder\", [buildMathML_buildGroup(group.base, options), accentNode]);\n}; // Horizontal stretchy braces\n\n\ndefineFunction({\n type: \"horizBrace\",\n names: [\"\\\\overbrace\", \"\\\\underbrace\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n let {\n parser,\n funcName\n } = _ref;\n return {\n type: \"horizBrace\",\n mode: parser.mode,\n label: funcName,\n isOver: /^\\\\over/.test(funcName),\n base: args[0]\n };\n },\n\n htmlBuilder: horizBrace_htmlBuilder,\n mathmlBuilder: horizBrace_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/href.js\n\n\n\n\n\n\ndefineFunction({\n type: \"href\",\n names: [\"\\\\href\"],\n props: {\n numArgs: 2,\n argTypes: [\"url\", \"original\"],\n allowedInText: true\n },\n handler: (_ref, args) => {\n let {\n parser\n } = _ref;\n const body = args[1];\n const href = assertNodeType(args[0], \"url\").url;\n\n if (!parser.settings.isTrusted({\n command: \"\\\\href\",\n url: href\n })) {\n return parser.formatUnsupportedCmd(\"\\\\href\");\n }\n\n return {\n type: \"href\",\n mode: parser.mode,\n href,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n const elements = buildExpression(group.body, options, false);\n return buildCommon.makeAnchor(group.href, [], elements, options);\n },\n mathmlBuilder: (group, options) => {\n let math = buildExpressionRow(group.body, options);\n\n if (!(math instanceof MathNode)) {\n math = new MathNode(\"mrow\", [math]);\n }\n\n math.setAttribute(\"href\", group.href);\n return math;\n }\n});\ndefineFunction({\n type: \"href\",\n names: [\"\\\\url\"],\n props: {\n numArgs: 1,\n argTypes: [\"url\"],\n allowedInText: true\n },\n handler: (_ref2, args) => {\n let {\n parser\n } = _ref2;\n const href = assertNodeType(args[0], \"url\").url;\n\n if (!parser.settings.isTrusted({\n command: \"\\\\url\",\n url: href\n })) {\n return parser.formatUnsupportedCmd(\"\\\\url\");\n }\n\n const chars = [];\n\n for (let i = 0; i < href.length; i++) {\n let c = href[i];\n\n if (c === \"~\") {\n c = \"\\\\textasciitilde\";\n }\n\n chars.push({\n type: \"textord\",\n mode: \"text\",\n text: c\n });\n }\n\n const body = {\n type: \"text\",\n mode: parser.mode,\n font: \"\\\\texttt\",\n body: chars\n };\n return {\n type: \"href\",\n mode: parser.mode,\n href,\n body: ordargument(body)\n };\n }\n});\n;// CONCATENATED MODULE: ./src/functions/hbox.js\n\n\n\n\n // \\hbox is provided for compatibility with LaTeX \\vcenter.\n// In LaTeX, \\vcenter can act only on a box, as in\n// \\vcenter{\\hbox{$\\frac{a+b}{\\dfrac{c}{d}}$}}\n// This function by itself doesn't do anything but prevent a soft line break.\n\ndefineFunction({\n type: \"hbox\",\n names: [\"\\\\hbox\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"],\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref, args) {\n let {\n parser\n } = _ref;\n return {\n type: \"hbox\",\n mode: parser.mode,\n body: ordargument(args[0])\n };\n },\n\n htmlBuilder(group, options) {\n const elements = buildExpression(group.body, options, false);\n return buildCommon.makeFragment(elements);\n },\n\n mathmlBuilder(group, options) {\n return new mathMLTree.MathNode(\"mrow\", buildMathML_buildExpression(group.body, options));\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/html.js\n\n\n\n\n\n\ndefineFunction({\n type: \"html\",\n names: [\"\\\\htmlClass\", \"\\\\htmlId\", \"\\\\htmlStyle\", \"\\\\htmlData\"],\n props: {\n numArgs: 2,\n argTypes: [\"raw\", \"original\"],\n allowedInText: true\n },\n handler: (_ref, args) => {\n let {\n parser,\n funcName,\n token\n } = _ref;\n const value = assertNodeType(args[0], \"raw\").string;\n const body = args[1];\n\n if (parser.settings.strict) {\n parser.settings.reportNonstrict(\"htmlExtension\", \"HTML extension is disabled on strict mode\");\n }\n\n let trustContext;\n const attributes = {};\n\n switch (funcName) {\n case \"\\\\htmlClass\":\n attributes.class = value;\n trustContext = {\n command: \"\\\\htmlClass\",\n class: value\n };\n break;\n\n case \"\\\\htmlId\":\n attributes.id = value;\n trustContext = {\n command: \"\\\\htmlId\",\n id: value\n };\n break;\n\n case \"\\\\htmlStyle\":\n attributes.style = value;\n trustContext = {\n command: \"\\\\htmlStyle\",\n style: value\n };\n break;\n\n case \"\\\\htmlData\":\n {\n const data = value.split(\",\");\n\n for (let i = 0; i < data.length; i++) {\n const keyVal = data[i].split(\"=\");\n\n if (keyVal.length !== 2) {\n throw new src_ParseError(\"Error parsing key-value for \\\\htmlData\");\n }\n\n attributes[\"data-\" + keyVal[0].trim()] = keyVal[1].trim();\n }\n\n trustContext = {\n command: \"\\\\htmlData\",\n attributes\n };\n break;\n }\n\n default:\n throw new Error(\"Unrecognized html command\");\n }\n\n if (!parser.settings.isTrusted(trustContext)) {\n return parser.formatUnsupportedCmd(funcName);\n }\n\n return {\n type: \"html\",\n mode: parser.mode,\n attributes,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n const elements = buildExpression(group.body, options, false);\n const classes = [\"enclosing\"];\n\n if (group.attributes.class) {\n classes.push(...group.attributes.class.trim().split(/\\s+/));\n }\n\n const span = buildCommon.makeSpan(classes, elements, options);\n\n for (const attr in group.attributes) {\n if (attr !== \"class\" && group.attributes.hasOwnProperty(attr)) {\n span.setAttribute(attr, group.attributes[attr]);\n }\n }\n\n return span;\n },\n mathmlBuilder: (group, options) => {\n return buildExpressionRow(group.body, options);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/htmlmathml.js\n\n\n\n\ndefineFunction({\n type: \"htmlmathml\",\n names: [\"\\\\html@mathml\"],\n props: {\n numArgs: 2,\n allowedInText: true\n },\n handler: (_ref, args) => {\n let {\n parser\n } = _ref;\n return {\n type: \"htmlmathml\",\n mode: parser.mode,\n html: ordargument(args[0]),\n mathml: ordargument(args[1])\n };\n },\n htmlBuilder: (group, options) => {\n const elements = buildExpression(group.html, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n return buildExpressionRow(group.mathml, options);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/includegraphics.js\n\n\n\n\n\n\n\nconst sizeData = function (str) {\n if (/^[-+]? *(\\d+(\\.\\d*)?|\\.\\d+)$/.test(str)) {\n // str is a number with no unit specified.\n // default unit is bp, per graphix package.\n return {\n number: +str,\n unit: \"bp\"\n };\n } else {\n const match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(str);\n\n if (!match) {\n throw new src_ParseError(\"Invalid size: '\" + str + \"' in \\\\includegraphics\");\n }\n\n const data = {\n number: +(match[1] + match[2]),\n // sign + magnitude, cast to number\n unit: match[3]\n };\n\n if (!validUnit(data)) {\n throw new src_ParseError(\"Invalid unit: '\" + data.unit + \"' in \\\\includegraphics.\");\n }\n\n return data;\n }\n};\n\ndefineFunction({\n type: \"includegraphics\",\n names: [\"\\\\includegraphics\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1,\n argTypes: [\"raw\", \"url\"],\n allowedInText: false\n },\n handler: (_ref, args, optArgs) => {\n let {\n parser\n } = _ref;\n let width = {\n number: 0,\n unit: \"em\"\n };\n let height = {\n number: 0.9,\n unit: \"em\"\n }; // sorta character sized.\n\n let totalheight = {\n number: 0,\n unit: \"em\"\n };\n let alt = \"\";\n\n if (optArgs[0]) {\n const attributeStr = assertNodeType(optArgs[0], \"raw\").string; // Parser.js does not parse key/value pairs. We get a string.\n\n const attributes = attributeStr.split(\",\");\n\n for (let i = 0; i < attributes.length; i++) {\n const keyVal = attributes[i].split(\"=\");\n\n if (keyVal.length === 2) {\n const str = keyVal[1].trim();\n\n switch (keyVal[0].trim()) {\n case \"alt\":\n alt = str;\n break;\n\n case \"width\":\n width = sizeData(str);\n break;\n\n case \"height\":\n height = sizeData(str);\n break;\n\n case \"totalheight\":\n totalheight = sizeData(str);\n break;\n\n default:\n throw new src_ParseError(\"Invalid key: '\" + keyVal[0] + \"' in \\\\includegraphics.\");\n }\n }\n }\n }\n\n const src = assertNodeType(args[0], \"url\").url;\n\n if (alt === \"\") {\n // No alt given. Use the file name. Strip away the path.\n alt = src;\n alt = alt.replace(/^.*[\\\\/]/, '');\n alt = alt.substring(0, alt.lastIndexOf('.'));\n }\n\n if (!parser.settings.isTrusted({\n command: \"\\\\includegraphics\",\n url: src\n })) {\n return parser.formatUnsupportedCmd(\"\\\\includegraphics\");\n }\n\n return {\n type: \"includegraphics\",\n mode: parser.mode,\n alt: alt,\n width: width,\n height: height,\n totalheight: totalheight,\n src: src\n };\n },\n htmlBuilder: (group, options) => {\n const height = calculateSize(group.height, options);\n let depth = 0;\n\n if (group.totalheight.number > 0) {\n depth = calculateSize(group.totalheight, options) - height;\n }\n\n let width = 0;\n\n if (group.width.number > 0) {\n width = calculateSize(group.width, options);\n }\n\n const style = {\n height: makeEm(height + depth)\n };\n\n if (width > 0) {\n style.width = makeEm(width);\n }\n\n if (depth > 0) {\n style.verticalAlign = makeEm(-depth);\n }\n\n const node = new Img(group.src, group.alt, style);\n node.height = height;\n node.depth = depth;\n return node;\n },\n mathmlBuilder: (group, options) => {\n const node = new mathMLTree.MathNode(\"mglyph\", []);\n node.setAttribute(\"alt\", group.alt);\n const height = calculateSize(group.height, options);\n let depth = 0;\n\n if (group.totalheight.number > 0) {\n depth = calculateSize(group.totalheight, options) - height;\n node.setAttribute(\"valign\", makeEm(-depth));\n }\n\n node.setAttribute(\"height\", makeEm(height + depth));\n\n if (group.width.number > 0) {\n const width = calculateSize(group.width, options);\n node.setAttribute(\"width\", makeEm(width));\n }\n\n node.setAttribute(\"src\", group.src);\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/kern.js\n// Horizontal spacing commands\n\n\n\n\n // TODO: \\hskip and \\mskip should support plus and minus in lengths\n\ndefineFunction({\n type: \"kern\",\n names: [\"\\\\kern\", \"\\\\mkern\", \"\\\\hskip\", \"\\\\mskip\"],\n props: {\n numArgs: 1,\n argTypes: [\"size\"],\n primitive: true,\n allowedInText: true\n },\n\n handler(_ref, args) {\n let {\n parser,\n funcName\n } = _ref;\n const size = assertNodeType(args[0], \"size\");\n\n if (parser.settings.strict) {\n const mathFunction = funcName[1] === 'm'; // \\mkern, \\mskip\n\n const muUnit = size.value.unit === 'mu';\n\n if (mathFunction) {\n if (!muUnit) {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" supports only mu units, \" + (\"not \" + size.value.unit + \" units\"));\n }\n\n if (parser.mode !== \"math\") {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" works only in math mode\");\n }\n } else {\n // !mathFunction\n if (muUnit) {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" doesn't support mu units\");\n }\n }\n }\n\n return {\n type: \"kern\",\n mode: parser.mode,\n dimension: size.value\n };\n },\n\n htmlBuilder(group, options) {\n return buildCommon.makeGlue(group.dimension, options);\n },\n\n mathmlBuilder(group, options) {\n const dimension = calculateSize(group.dimension, options);\n return new mathMLTree.SpaceNode(dimension);\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/lap.js\n// Horizontal overlap functions\n\n\n\n\n\n\ndefineFunction({\n type: \"lap\",\n names: [\"\\\\mathllap\", \"\\\\mathrlap\", \"\\\\mathclap\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args) => {\n let {\n parser,\n funcName\n } = _ref;\n const body = args[0];\n return {\n type: \"lap\",\n mode: parser.mode,\n alignment: funcName.slice(5),\n body\n };\n },\n htmlBuilder: (group, options) => {\n // mathllap, mathrlap, mathclap\n let inner;\n\n if (group.alignment === \"clap\") {\n // ref: https://www.math.lsu.edu/~aperlis/publications/mathclap/\n inner = buildCommon.makeSpan([], [buildGroup(group.body, options)]); // wrap, since CSS will center a .clap > .inner > span\n\n inner = buildCommon.makeSpan([\"inner\"], [inner], options);\n } else {\n inner = buildCommon.makeSpan([\"inner\"], [buildGroup(group.body, options)]);\n }\n\n const fix = buildCommon.makeSpan([\"fix\"], []);\n let node = buildCommon.makeSpan([group.alignment], [inner, fix], options); // At this point, we have correctly set horizontal alignment of the\n // two items involved in the lap.\n // Next, use a strut to set the height of the HTML bounding box.\n // Otherwise, a tall argument may be misplaced.\n // This code resolved issue #1153\n\n const strut = buildCommon.makeSpan([\"strut\"]);\n strut.style.height = makeEm(node.height + node.depth);\n\n if (node.depth) {\n strut.style.verticalAlign = makeEm(-node.depth);\n }\n\n node.children.unshift(strut); // Next, prevent vertical misplacement when next to something tall.\n // This code resolves issue #1234\n\n node = buildCommon.makeSpan([\"thinbox\"], [node], options);\n return buildCommon.makeSpan([\"mord\", \"vbox\"], [node], options);\n },\n mathmlBuilder: (group, options) => {\n // mathllap, mathrlap, mathclap\n const node = new mathMLTree.MathNode(\"mpadded\", [buildMathML_buildGroup(group.body, options)]);\n\n if (group.alignment !== \"rlap\") {\n const offset = group.alignment === \"llap\" ? \"-1\" : \"-0.5\";\n node.setAttribute(\"lspace\", offset + \"width\");\n }\n\n node.setAttribute(\"width\", \"0px\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/math.js\n\n // Switching from text mode back to math mode\n\ndefineFunction({\n type: \"styling\",\n names: [\"\\\\(\", \"$\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: false\n },\n\n handler(_ref, args) {\n let {\n funcName,\n parser\n } = _ref;\n const outerMode = parser.mode;\n parser.switchMode(\"math\");\n const close = funcName === \"\\\\(\" ? \"\\\\)\" : \"$\";\n const body = parser.parseExpression(false, close);\n parser.expect(close);\n parser.switchMode(outerMode);\n return {\n type: \"styling\",\n mode: parser.mode,\n style: \"text\",\n body\n };\n }\n\n}); // Check for extra closing math delimiters\n\ndefineFunction({\n type: \"text\",\n // Doesn't matter what this is.\n names: [\"\\\\)\", \"\\\\]\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: false\n },\n\n handler(context, args) {\n throw new src_ParseError(\"Mismatched \" + context.funcName);\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/mathchoice.js\n\n\n\n\n\n\nconst chooseMathStyle = (group, options) => {\n switch (options.style.size) {\n case src_Style.DISPLAY.size:\n return group.display;\n\n case src_Style.TEXT.size:\n return group.text;\n\n case src_Style.SCRIPT.size:\n return group.script;\n\n case src_Style.SCRIPTSCRIPT.size:\n return group.scriptscript;\n\n default:\n return group.text;\n }\n};\n\ndefineFunction({\n type: \"mathchoice\",\n names: [\"\\\\mathchoice\"],\n props: {\n numArgs: 4,\n primitive: true\n },\n handler: (_ref, args) => {\n let {\n parser\n } = _ref;\n return {\n type: \"mathchoice\",\n mode: parser.mode,\n display: ordargument(args[0]),\n text: ordargument(args[1]),\n script: ordargument(args[2]),\n scriptscript: ordargument(args[3])\n };\n },\n htmlBuilder: (group, options) => {\n const body = chooseMathStyle(group, options);\n const elements = buildExpression(body, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n const body = chooseMathStyle(group, options);\n return buildExpressionRow(body, options);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/utils/assembleSupSub.js\n\n\n\n // For an operator with limits, assemble the base, sup, and sub into a span.\n\nconst assembleSupSub = (base, supGroup, subGroup, options, style, slant, baseShift) => {\n base = buildCommon.makeSpan([], [base]);\n const subIsSingleCharacter = subGroup && utils.isCharacterBox(subGroup);\n let sub;\n let sup; // We manually have to handle the superscripts and subscripts. This,\n // aside from the kern calculations, is copied from supsub.\n\n if (supGroup) {\n const elem = buildGroup(supGroup, options.havingStyle(style.sup()), options);\n sup = {\n elem,\n kern: Math.max(options.fontMetrics().bigOpSpacing1, options.fontMetrics().bigOpSpacing3 - elem.depth)\n };\n }\n\n if (subGroup) {\n const elem = buildGroup(subGroup, options.havingStyle(style.sub()), options);\n sub = {\n elem,\n kern: Math.max(options.fontMetrics().bigOpSpacing2, options.fontMetrics().bigOpSpacing4 - elem.height)\n };\n } // Build the final group as a vlist of the possible subscript, base,\n // and possible superscript.\n\n\n let finalGroup;\n\n if (sup && sub) {\n const bottom = options.fontMetrics().bigOpSpacing5 + sub.elem.height + sub.elem.depth + sub.kern + base.depth + baseShift;\n finalGroup = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: bottom,\n children: [{\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }, {\n type: \"elem\",\n elem: sub.elem,\n marginLeft: makeEm(-slant)\n }, {\n type: \"kern\",\n size: sub.kern\n }, {\n type: \"elem\",\n elem: base\n }, {\n type: \"kern\",\n size: sup.kern\n }, {\n type: \"elem\",\n elem: sup.elem,\n marginLeft: makeEm(slant)\n }, {\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }]\n }, options);\n } else if (sub) {\n const top = base.height - baseShift; // Shift the limits by the slant of the symbol. Note\n // that we are supposed to shift the limits by 1/2 of the slant,\n // but since we are centering the limits adding a full slant of\n // margin will shift by 1/2 that.\n\n finalGroup = buildCommon.makeVList({\n positionType: \"top\",\n positionData: top,\n children: [{\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }, {\n type: \"elem\",\n elem: sub.elem,\n marginLeft: makeEm(-slant)\n }, {\n type: \"kern\",\n size: sub.kern\n }, {\n type: \"elem\",\n elem: base\n }]\n }, options);\n } else if (sup) {\n const bottom = base.depth + baseShift;\n finalGroup = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: bottom,\n children: [{\n type: \"elem\",\n elem: base\n }, {\n type: \"kern\",\n size: sup.kern\n }, {\n type: \"elem\",\n elem: sup.elem,\n marginLeft: makeEm(slant)\n }, {\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }]\n }, options);\n } else {\n // This case probably shouldn't occur (this would mean the\n // supsub was sending us a group with no superscript or\n // subscript) but be safe.\n return base;\n }\n\n const parts = [finalGroup];\n\n if (sub && slant !== 0 && !subIsSingleCharacter) {\n // A negative margin-left was applied to the lower limit.\n // Avoid an overlap by placing a spacer on the left on the group.\n const spacer = buildCommon.makeSpan([\"mspace\"], [], options);\n spacer.style.marginRight = makeEm(slant);\n parts.unshift(spacer);\n }\n\n return buildCommon.makeSpan([\"mop\", \"op-limits\"], parts, options);\n};\n;// CONCATENATED MODULE: ./src/functions/op.js\n// Limits, symbols\n\n\n\n\n\n\n\n\n\n\n\n// Most operators have a large successor symbol, but these don't.\nconst noSuccessor = [\"\\\\smallint\"]; // NOTE: Unlike most `htmlBuilder`s, this one handles not only \"op\", but also\n// \"supsub\" since some of them (like \\int) can affect super/subscripting.\n\nconst op_htmlBuilder = (grp, options) => {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n let supGroup;\n let subGroup;\n let hasLimits = false;\n let group;\n\n if (grp.type === \"supsub\") {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = grp.sup;\n subGroup = grp.sub;\n group = assertNodeType(grp.base, \"op\");\n hasLimits = true;\n } else {\n group = assertNodeType(grp, \"op\");\n }\n\n const style = options.style;\n let large = false;\n\n if (style.size === src_Style.DISPLAY.size && group.symbol && !utils.contains(noSuccessor, group.name)) {\n // Most symbol operators get larger in displaystyle (rule 13)\n large = true;\n }\n\n let base;\n\n if (group.symbol) {\n // If this is a symbol, create the symbol.\n const fontName = large ? \"Size2-Regular\" : \"Size1-Regular\";\n let stash = \"\";\n\n if (group.name === \"\\\\oiint\" || group.name === \"\\\\oiiint\") {\n // No font glyphs yet, so use a glyph w/o the oval.\n // TODO: When font glyphs are available, delete this code.\n stash = group.name.slice(1);\n group.name = stash === \"oiint\" ? \"\\\\iint\" : \"\\\\iiint\";\n }\n\n base = buildCommon.makeSymbol(group.name, fontName, \"math\", options, [\"mop\", \"op-symbol\", large ? \"large-op\" : \"small-op\"]);\n\n if (stash.length > 0) {\n // We're in \\oiint or \\oiiint. Overlay the oval.\n // TODO: When font glyphs are available, delete this code.\n const italic = base.italic;\n const oval = buildCommon.staticSvg(stash + \"Size\" + (large ? \"2\" : \"1\"), options);\n base = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: base,\n shift: 0\n }, {\n type: \"elem\",\n elem: oval,\n shift: large ? 0.08 : 0\n }]\n }, options);\n group.name = \"\\\\\" + stash;\n base.classes.unshift(\"mop\"); // $FlowFixMe\n\n base.italic = italic;\n }\n } else if (group.body) {\n // If this is a list, compose that list.\n const inner = buildExpression(group.body, options, true);\n\n if (inner.length === 1 && inner[0] instanceof SymbolNode) {\n base = inner[0];\n base.classes[0] = \"mop\"; // replace old mclass\n } else {\n base = buildCommon.makeSpan([\"mop\"], inner, options);\n }\n } else {\n // Otherwise, this is a text operator. Build the text from the\n // operator's name.\n const output = [];\n\n for (let i = 1; i < group.name.length; i++) {\n output.push(buildCommon.mathsym(group.name[i], group.mode, options));\n }\n\n base = buildCommon.makeSpan([\"mop\"], output, options);\n } // If content of op is a single symbol, shift it vertically.\n\n\n let baseShift = 0;\n let slant = 0;\n\n if ((base instanceof SymbolNode || group.name === \"\\\\oiint\" || group.name === \"\\\\oiiint\") && !group.suppressBaseShift) {\n // We suppress the shift of the base of \\overset and \\underset. Otherwise,\n // shift the symbol so its center lies on the axis (rule 13). It\n // appears that our fonts have the centers of the symbols already\n // almost on the axis, so these numbers are very small. Note we\n // don't actually apply this here, but instead it is used either in\n // the vlist creation or separately when there are no limits.\n baseShift = (base.height - base.depth) / 2 - options.fontMetrics().axisHeight; // The slant of the symbol is just its italic correction.\n // $FlowFixMe\n\n slant = base.italic;\n }\n\n if (hasLimits) {\n return assembleSupSub(base, supGroup, subGroup, options, style, slant, baseShift);\n } else {\n if (baseShift) {\n base.style.position = \"relative\";\n base.style.top = makeEm(baseShift);\n }\n\n return base;\n }\n};\n\nconst op_mathmlBuilder = (group, options) => {\n let node;\n\n if (group.symbol) {\n // This is a symbol. Just add the symbol.\n node = new MathNode(\"mo\", [makeText(group.name, group.mode)]);\n\n if (utils.contains(noSuccessor, group.name)) {\n node.setAttribute(\"largeop\", \"false\");\n }\n } else if (group.body) {\n // This is an operator with children. Add them.\n node = new MathNode(\"mo\", buildMathML_buildExpression(group.body, options));\n } else {\n // This is a text operator. Add all of the characters from the\n // operator's name.\n node = new MathNode(\"mi\", [new TextNode(group.name.slice(1))]); // Append an .\n // ref: https://www.w3.org/TR/REC-MathML/chap3_2.html#sec3.2.4\n\n const operator = new MathNode(\"mo\", [makeText(\"\\u2061\", \"text\")]);\n\n if (group.parentIsSupSub) {\n node = new MathNode(\"mrow\", [node, operator]);\n } else {\n node = newDocumentFragment([node, operator]);\n }\n }\n\n return node;\n};\n\nconst singleCharBigOps = {\n \"\\u220F\": \"\\\\prod\",\n \"\\u2210\": \"\\\\coprod\",\n \"\\u2211\": \"\\\\sum\",\n \"\\u22c0\": \"\\\\bigwedge\",\n \"\\u22c1\": \"\\\\bigvee\",\n \"\\u22c2\": \"\\\\bigcap\",\n \"\\u22c3\": \"\\\\bigcup\",\n \"\\u2a00\": \"\\\\bigodot\",\n \"\\u2a01\": \"\\\\bigoplus\",\n \"\\u2a02\": \"\\\\bigotimes\",\n \"\\u2a04\": \"\\\\biguplus\",\n \"\\u2a06\": \"\\\\bigsqcup\"\n};\ndefineFunction({\n type: \"op\",\n names: [\"\\\\coprod\", \"\\\\bigvee\", \"\\\\bigwedge\", \"\\\\biguplus\", \"\\\\bigcap\", \"\\\\bigcup\", \"\\\\intop\", \"\\\\prod\", \"\\\\sum\", \"\\\\bigotimes\", \"\\\\bigoplus\", \"\\\\bigodot\", \"\\\\bigsqcup\", \"\\\\smallint\", \"\\u220F\", \"\\u2210\", \"\\u2211\", \"\\u22c0\", \"\\u22c1\", \"\\u22c2\", \"\\u22c3\", \"\\u2a00\", \"\\u2a01\", \"\\u2a02\", \"\\u2a04\", \"\\u2a06\"],\n props: {\n numArgs: 0\n },\n handler: (_ref, args) => {\n let {\n parser,\n funcName\n } = _ref;\n let fName = funcName;\n\n if (fName.length === 1) {\n fName = singleCharBigOps[fName];\n }\n\n return {\n type: \"op\",\n mode: parser.mode,\n limits: true,\n parentIsSupSub: false,\n symbol: true,\n name: fName\n };\n },\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n}); // Note: calling defineFunction with a type that's already been defined only\n// works because the same htmlBuilder and mathmlBuilder are being used.\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\mathop\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (_ref2, args) => {\n let {\n parser\n } = _ref2;\n const body = args[0];\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: false,\n body: ordargument(body)\n };\n },\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n}); // There are 2 flags for operators; whether they produce limits in\n// displaystyle, and whether they are symbols and should grow in\n// displaystyle. These four groups cover the four possible choices.\n\nconst singleCharIntegrals = {\n \"\\u222b\": \"\\\\int\",\n \"\\u222c\": \"\\\\iint\",\n \"\\u222d\": \"\\\\iiint\",\n \"\\u222e\": \"\\\\oint\",\n \"\\u222f\": \"\\\\oiint\",\n \"\\u2230\": \"\\\\oiiint\"\n}; // No limits, not symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\arcsin\", \"\\\\arccos\", \"\\\\arctan\", \"\\\\arctg\", \"\\\\arcctg\", \"\\\\arg\", \"\\\\ch\", \"\\\\cos\", \"\\\\cosec\", \"\\\\cosh\", \"\\\\cot\", \"\\\\cotg\", \"\\\\coth\", \"\\\\csc\", \"\\\\ctg\", \"\\\\cth\", \"\\\\deg\", \"\\\\dim\", \"\\\\exp\", \"\\\\hom\", \"\\\\ker\", \"\\\\lg\", \"\\\\ln\", \"\\\\log\", \"\\\\sec\", \"\\\\sin\", \"\\\\sinh\", \"\\\\sh\", \"\\\\tan\", \"\\\\tanh\", \"\\\\tg\", \"\\\\th\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref3) {\n let {\n parser,\n funcName\n } = _ref3;\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: false,\n name: funcName\n };\n },\n\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n}); // Limits, not symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\det\", \"\\\\gcd\", \"\\\\inf\", \"\\\\lim\", \"\\\\max\", \"\\\\min\", \"\\\\Pr\", \"\\\\sup\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref4) {\n let {\n parser,\n funcName\n } = _ref4;\n return {\n type: \"op\",\n mode: parser.mode,\n limits: true,\n parentIsSupSub: false,\n symbol: false,\n name: funcName\n };\n },\n\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n}); // No limits, symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\int\", \"\\\\iint\", \"\\\\iiint\", \"\\\\oint\", \"\\\\oiint\", \"\\\\oiiint\", \"\\u222b\", \"\\u222c\", \"\\u222d\", \"\\u222e\", \"\\u222f\", \"\\u2230\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref5) {\n let {\n parser,\n funcName\n } = _ref5;\n let fName = funcName;\n\n if (fName.length === 1) {\n fName = singleCharIntegrals[fName];\n }\n\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: true,\n name: fName\n };\n },\n\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/operatorname.js\n\n\n\n\n\n\n\n\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only\n// \"operatorname\", but also \"supsub\" since \\operatorname* can\n// affect super/subscripting.\nconst operatorname_htmlBuilder = (grp, options) => {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n let supGroup;\n let subGroup;\n let hasLimits = false;\n let group;\n\n if (grp.type === \"supsub\") {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = grp.sup;\n subGroup = grp.sub;\n group = assertNodeType(grp.base, \"operatorname\");\n hasLimits = true;\n } else {\n group = assertNodeType(grp, \"operatorname\");\n }\n\n let base;\n\n if (group.body.length > 0) {\n const body = group.body.map(child => {\n // $FlowFixMe: Check if the node has a string `text` property.\n const childText = child.text;\n\n if (typeof childText === \"string\") {\n return {\n type: \"textord\",\n mode: child.mode,\n text: childText\n };\n } else {\n return child;\n }\n }); // Consolidate function names into symbol characters.\n\n const expression = buildExpression(body, options.withFont(\"mathrm\"), true);\n\n for (let i = 0; i < expression.length; i++) {\n const child = expression[i];\n\n if (child instanceof SymbolNode) {\n // Per amsopn package,\n // change minus to hyphen and \\ast to asterisk\n child.text = child.text.replace(/\\u2212/, \"-\").replace(/\\u2217/, \"*\");\n }\n }\n\n base = buildCommon.makeSpan([\"mop\"], expression, options);\n } else {\n base = buildCommon.makeSpan([\"mop\"], [], options);\n }\n\n if (hasLimits) {\n return assembleSupSub(base, supGroup, subGroup, options, options.style, 0, 0);\n } else {\n return base;\n }\n};\n\nconst operatorname_mathmlBuilder = (group, options) => {\n // The steps taken here are similar to the html version.\n let expression = buildMathML_buildExpression(group.body, options.withFont(\"mathrm\")); // Is expression a string or has it something like a fraction?\n\n let isAllString = true; // default\n\n for (let i = 0; i < expression.length; i++) {\n const node = expression[i];\n\n if (node instanceof mathMLTree.SpaceNode) {// Do nothing\n } else if (node instanceof mathMLTree.MathNode) {\n switch (node.type) {\n case \"mi\":\n case \"mn\":\n case \"ms\":\n case \"mspace\":\n case \"mtext\":\n break;\n // Do nothing yet.\n\n case \"mo\":\n {\n const child = node.children[0];\n\n if (node.children.length === 1 && child instanceof mathMLTree.TextNode) {\n child.text = child.text.replace(/\\u2212/, \"-\").replace(/\\u2217/, \"*\");\n } else {\n isAllString = false;\n }\n\n break;\n }\n\n default:\n isAllString = false;\n }\n } else {\n isAllString = false;\n }\n }\n\n if (isAllString) {\n // Write a single TextNode instead of multiple nested tags.\n const word = expression.map(node => node.toText()).join(\"\");\n expression = [new mathMLTree.TextNode(word)];\n }\n\n const identifier = new mathMLTree.MathNode(\"mi\", expression);\n identifier.setAttribute(\"mathvariant\", \"normal\"); // \\u2061 is the same as ⁡\n // ref: https://www.w3schools.com/charsets/ref_html_entities_a.asp\n\n const operator = new mathMLTree.MathNode(\"mo\", [makeText(\"\\u2061\", \"text\")]);\n\n if (group.parentIsSupSub) {\n return new mathMLTree.MathNode(\"mrow\", [identifier, operator]);\n } else {\n return mathMLTree.newDocumentFragment([identifier, operator]);\n }\n}; // \\operatorname\n// amsopn.dtx: \\mathop{#1\\kern\\z@\\operator@font#3}\\newmcodes@\n\n\ndefineFunction({\n type: \"operatorname\",\n names: [\"\\\\operatorname@\", \"\\\\operatornamewithlimits\"],\n props: {\n numArgs: 1\n },\n handler: (_ref, args) => {\n let {\n parser,\n funcName\n } = _ref;\n const body = args[0];\n return {\n type: \"operatorname\",\n mode: parser.mode,\n body: ordargument(body),\n alwaysHandleSupSub: funcName === \"\\\\operatornamewithlimits\",\n limits: false,\n parentIsSupSub: false\n };\n },\n htmlBuilder: operatorname_htmlBuilder,\n mathmlBuilder: operatorname_mathmlBuilder\n});\ndefineMacro(\"\\\\operatorname\", \"\\\\@ifstar\\\\operatornamewithlimits\\\\operatorname@\");\n;// CONCATENATED MODULE: ./src/functions/ordgroup.js\n\n\n\n\ndefineFunctionBuilders({\n type: \"ordgroup\",\n\n htmlBuilder(group, options) {\n if (group.semisimple) {\n return buildCommon.makeFragment(buildExpression(group.body, options, false));\n }\n\n return buildCommon.makeSpan([\"mord\"], buildExpression(group.body, options, true), options);\n },\n\n mathmlBuilder(group, options) {\n return buildExpressionRow(group.body, options, true);\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/overline.js\n\n\n\n\n\ndefineFunction({\n type: \"overline\",\n names: [\"\\\\overline\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n let {\n parser\n } = _ref;\n const body = args[0];\n return {\n type: \"overline\",\n mode: parser.mode,\n body\n };\n },\n\n htmlBuilder(group, options) {\n // Overlines are handled in the TeXbook pg 443, Rule 9.\n // Build the inner group in the cramped style.\n const innerGroup = buildGroup(group.body, options.havingCrampedStyle()); // Create the line above the body\n\n const line = buildCommon.makeLineSpan(\"overline-line\", options); // Generate the vlist, with the appropriate kerns\n\n const defaultRuleThickness = options.fontMetrics().defaultRuleThickness;\n const vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: innerGroup\n }, {\n type: \"kern\",\n size: 3 * defaultRuleThickness\n }, {\n type: \"elem\",\n elem: line\n }, {\n type: \"kern\",\n size: defaultRuleThickness\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"overline\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n const operator = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n const node = new mathMLTree.MathNode(\"mover\", [buildMathML_buildGroup(group.body, options), operator]);\n node.setAttribute(\"accent\", \"true\");\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/phantom.js\n\n\n\n\n\ndefineFunction({\n type: \"phantom\",\n names: [\"\\\\phantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args) => {\n let {\n parser\n } = _ref;\n const body = args[0];\n return {\n type: \"phantom\",\n mode: parser.mode,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n const elements = buildExpression(group.body, options.withPhantom(), false); // \\phantom isn't supposed to affect the elements it contains.\n // See \"color\" for more details.\n\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n const inner = buildMathML_buildExpression(group.body, options);\n return new mathMLTree.MathNode(\"mphantom\", inner);\n }\n});\ndefineFunction({\n type: \"hphantom\",\n names: [\"\\\\hphantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref2, args) => {\n let {\n parser\n } = _ref2;\n const body = args[0];\n return {\n type: \"hphantom\",\n mode: parser.mode,\n body\n };\n },\n htmlBuilder: (group, options) => {\n let node = buildCommon.makeSpan([], [buildGroup(group.body, options.withPhantom())]);\n node.height = 0;\n node.depth = 0;\n\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n node.children[i].height = 0;\n node.children[i].depth = 0;\n }\n } // See smash for comment re: use of makeVList\n\n\n node = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: node\n }]\n }, options); // For spacing, TeX treats \\smash as a math group (same spacing as ord).\n\n return buildCommon.makeSpan([\"mord\"], [node], options);\n },\n mathmlBuilder: (group, options) => {\n const inner = buildMathML_buildExpression(ordargument(group.body), options);\n const phantom = new mathMLTree.MathNode(\"mphantom\", inner);\n const node = new mathMLTree.MathNode(\"mpadded\", [phantom]);\n node.setAttribute(\"height\", \"0px\");\n node.setAttribute(\"depth\", \"0px\");\n return node;\n }\n});\ndefineFunction({\n type: \"vphantom\",\n names: [\"\\\\vphantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref3, args) => {\n let {\n parser\n } = _ref3;\n const body = args[0];\n return {\n type: \"vphantom\",\n mode: parser.mode,\n body\n };\n },\n htmlBuilder: (group, options) => {\n const inner = buildCommon.makeSpan([\"inner\"], [buildGroup(group.body, options.withPhantom())]);\n const fix = buildCommon.makeSpan([\"fix\"], []);\n return buildCommon.makeSpan([\"mord\", \"rlap\"], [inner, fix], options);\n },\n mathmlBuilder: (group, options) => {\n const inner = buildMathML_buildExpression(ordargument(group.body), options);\n const phantom = new mathMLTree.MathNode(\"mphantom\", inner);\n const node = new mathMLTree.MathNode(\"mpadded\", [phantom]);\n node.setAttribute(\"width\", \"0px\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/raisebox.js\n\n\n\n\n\n\n // Box manipulation\n\ndefineFunction({\n type: \"raisebox\",\n names: [\"\\\\raisebox\"],\n props: {\n numArgs: 2,\n argTypes: [\"size\", \"hbox\"],\n allowedInText: true\n },\n\n handler(_ref, args) {\n let {\n parser\n } = _ref;\n const amount = assertNodeType(args[0], \"size\").value;\n const body = args[1];\n return {\n type: \"raisebox\",\n mode: parser.mode,\n dy: amount,\n body\n };\n },\n\n htmlBuilder(group, options) {\n const body = buildGroup(group.body, options);\n const dy = calculateSize(group.dy, options);\n return buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -dy,\n children: [{\n type: \"elem\",\n elem: body\n }]\n }, options);\n },\n\n mathmlBuilder(group, options) {\n const node = new mathMLTree.MathNode(\"mpadded\", [buildMathML_buildGroup(group.body, options)]);\n const dy = group.dy.number + group.dy.unit;\n node.setAttribute(\"voffset\", dy);\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/relax.js\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\relax\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(_ref) {\n let {\n parser\n } = _ref;\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/rule.js\n\n\n\n\n\ndefineFunction({\n type: \"rule\",\n names: [\"\\\\rule\"],\n props: {\n numArgs: 2,\n numOptionalArgs: 1,\n allowedInText: true,\n allowedInMath: true,\n argTypes: [\"size\", \"size\", \"size\"]\n },\n\n handler(_ref, args, optArgs) {\n let {\n parser\n } = _ref;\n const shift = optArgs[0];\n const width = assertNodeType(args[0], \"size\");\n const height = assertNodeType(args[1], \"size\");\n return {\n type: \"rule\",\n mode: parser.mode,\n shift: shift && assertNodeType(shift, \"size\").value,\n width: width.value,\n height: height.value\n };\n },\n\n htmlBuilder(group, options) {\n // Make an empty span for the rule\n const rule = buildCommon.makeSpan([\"mord\", \"rule\"], [], options); // Calculate the shift, width, and height of the rule, and account for units\n\n const width = calculateSize(group.width, options);\n const height = calculateSize(group.height, options);\n const shift = group.shift ? calculateSize(group.shift, options) : 0; // Style the rule to the right size\n\n rule.style.borderRightWidth = makeEm(width);\n rule.style.borderTopWidth = makeEm(height);\n rule.style.bottom = makeEm(shift); // Record the height and width\n\n rule.width = width;\n rule.height = height + shift;\n rule.depth = -shift; // Font size is the number large enough that the browser will\n // reserve at least `absHeight` space above the baseline.\n // The 1.125 factor was empirically determined\n\n rule.maxFontSize = height * 1.125 * options.sizeMultiplier;\n return rule;\n },\n\n mathmlBuilder(group, options) {\n const width = calculateSize(group.width, options);\n const height = calculateSize(group.height, options);\n const shift = group.shift ? calculateSize(group.shift, options) : 0;\n const color = options.color && options.getColor() || \"black\";\n const rule = new mathMLTree.MathNode(\"mspace\");\n rule.setAttribute(\"mathbackground\", color);\n rule.setAttribute(\"width\", makeEm(width));\n rule.setAttribute(\"height\", makeEm(height));\n const wrapper = new mathMLTree.MathNode(\"mpadded\", [rule]);\n\n if (shift >= 0) {\n wrapper.setAttribute(\"height\", makeEm(shift));\n } else {\n wrapper.setAttribute(\"height\", makeEm(shift));\n wrapper.setAttribute(\"depth\", makeEm(-shift));\n }\n\n wrapper.setAttribute(\"voffset\", makeEm(shift));\n return wrapper;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/sizing.js\n\n\n\n\n\n\nfunction sizingGroup(value, options, baseOptions) {\n const inner = buildExpression(value, options, false);\n const multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier; // Add size-resetting classes to the inner list and set maxFontSize\n // manually. Handle nested size changes.\n\n for (let i = 0; i < inner.length; i++) {\n const pos = inner[i].classes.indexOf(\"sizing\");\n\n if (pos < 0) {\n Array.prototype.push.apply(inner[i].classes, options.sizingClasses(baseOptions));\n } else if (inner[i].classes[pos + 1] === \"reset-size\" + options.size) {\n // This is a nested size change: e.g., inner[i] is the \"b\" in\n // `\\Huge a \\small b`. Override the old size (the `reset-` class)\n // but not the new size.\n inner[i].classes[pos + 1] = \"reset-size\" + baseOptions.size;\n }\n\n inner[i].height *= multiplier;\n inner[i].depth *= multiplier;\n }\n\n return buildCommon.makeFragment(inner);\n}\nconst sizeFuncs = [\"\\\\tiny\", \"\\\\sixptsize\", \"\\\\scriptsize\", \"\\\\footnotesize\", \"\\\\small\", \"\\\\normalsize\", \"\\\\large\", \"\\\\Large\", \"\\\\LARGE\", \"\\\\huge\", \"\\\\Huge\"];\nconst sizing_htmlBuilder = (group, options) => {\n // Handle sizing operators like \\Huge. Real TeX doesn't actually allow\n // these functions inside of math expressions, so we do some special\n // handling.\n const newOptions = options.havingSize(group.size);\n return sizingGroup(group.body, newOptions, options);\n};\ndefineFunction({\n type: \"sizing\",\n names: sizeFuncs,\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: (_ref, args) => {\n let {\n breakOnTokenText,\n funcName,\n parser\n } = _ref;\n const body = parser.parseExpression(false, breakOnTokenText);\n return {\n type: \"sizing\",\n mode: parser.mode,\n // Figure out what size to use based on the list of functions above\n size: sizeFuncs.indexOf(funcName) + 1,\n body\n };\n },\n htmlBuilder: sizing_htmlBuilder,\n mathmlBuilder: (group, options) => {\n const newOptions = options.havingSize(group.size);\n const inner = buildMathML_buildExpression(group.body, newOptions);\n const node = new mathMLTree.MathNode(\"mstyle\", inner); // TODO(emily): This doesn't produce the correct size for nested size\n // changes, because we don't keep state of what style we're currently\n // in, so we can't reset the size to normal before changing it. Now\n // that we're passing an options parameter we should be able to fix\n // this.\n\n node.setAttribute(\"mathsize\", makeEm(newOptions.sizeMultiplier));\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/smash.js\n// smash, with optional [tb], as in AMS\n\n\n\n\n\n\ndefineFunction({\n type: \"smash\",\n names: [\"\\\\smash\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args, optArgs) => {\n let {\n parser\n } = _ref;\n let smashHeight = false;\n let smashDepth = false;\n const tbArg = optArgs[0] && assertNodeType(optArgs[0], \"ordgroup\");\n\n if (tbArg) {\n // Optional [tb] argument is engaged.\n // ref: amsmath: \\renewcommand{\\smash}[1][tb]{%\n // def\\mb@t{\\ht}\\def\\mb@b{\\dp}\\def\\mb@tb{\\ht\\z@\\z@\\dp}%\n let letter = \"\";\n\n for (let i = 0; i < tbArg.body.length; ++i) {\n const node = tbArg.body[i]; // $FlowFixMe: Not every node type has a `text` property.\n\n letter = node.text;\n\n if (letter === \"t\") {\n smashHeight = true;\n } else if (letter === \"b\") {\n smashDepth = true;\n } else {\n smashHeight = false;\n smashDepth = false;\n break;\n }\n }\n } else {\n smashHeight = true;\n smashDepth = true;\n }\n\n const body = args[0];\n return {\n type: \"smash\",\n mode: parser.mode,\n body,\n smashHeight,\n smashDepth\n };\n },\n htmlBuilder: (group, options) => {\n const node = buildCommon.makeSpan([], [buildGroup(group.body, options)]);\n\n if (!group.smashHeight && !group.smashDepth) {\n return node;\n }\n\n if (group.smashHeight) {\n node.height = 0; // In order to influence makeVList, we have to reset the children.\n\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n node.children[i].height = 0;\n }\n }\n }\n\n if (group.smashDepth) {\n node.depth = 0;\n\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n node.children[i].depth = 0;\n }\n }\n } // At this point, we've reset the TeX-like height and depth values.\n // But the span still has an HTML line height.\n // makeVList applies \"display: table-cell\", which prevents the browser\n // from acting on that line height. So we'll call makeVList now.\n\n\n const smashedNode = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: node\n }]\n }, options); // For spacing, TeX treats \\hphantom as a math group (same spacing as ord).\n\n return buildCommon.makeSpan([\"mord\"], [smashedNode], options);\n },\n mathmlBuilder: (group, options) => {\n const node = new mathMLTree.MathNode(\"mpadded\", [buildMathML_buildGroup(group.body, options)]);\n\n if (group.smashHeight) {\n node.setAttribute(\"height\", \"0px\");\n }\n\n if (group.smashDepth) {\n node.setAttribute(\"depth\", \"0px\");\n }\n\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/sqrt.js\n\n\n\n\n\n\n\n\ndefineFunction({\n type: \"sqrt\",\n names: [\"\\\\sqrt\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1\n },\n\n handler(_ref, args, optArgs) {\n let {\n parser\n } = _ref;\n const index = optArgs[0];\n const body = args[0];\n return {\n type: \"sqrt\",\n mode: parser.mode,\n body,\n index\n };\n },\n\n htmlBuilder(group, options) {\n // Square roots are handled in the TeXbook pg. 443, Rule 11.\n // First, we do the same steps as in overline to build the inner group\n // and line\n let inner = buildGroup(group.body, options.havingCrampedStyle());\n\n if (inner.height === 0) {\n // Render a small surd.\n inner.height = options.fontMetrics().xHeight;\n } // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n\n\n inner = buildCommon.wrapFragment(inner, options); // Calculate the minimum size for the \\surd delimiter\n\n const metrics = options.fontMetrics();\n const theta = metrics.defaultRuleThickness;\n let phi = theta;\n\n if (options.style.id < src_Style.TEXT.id) {\n phi = options.fontMetrics().xHeight;\n } // Calculate the clearance between the body and line\n\n\n let lineClearance = theta + phi / 4;\n const minDelimiterHeight = inner.height + inner.depth + lineClearance + theta; // Create a sqrt SVG of the required minimum size\n\n const {\n span: img,\n ruleWidth,\n advanceWidth\n } = delimiter.sqrtImage(minDelimiterHeight, options);\n const delimDepth = img.height - ruleWidth; // Adjust the clearance based on the delimiter size\n\n if (delimDepth > inner.height + inner.depth + lineClearance) {\n lineClearance = (lineClearance + delimDepth - inner.height - inner.depth) / 2;\n } // Shift the sqrt image\n\n\n const imgShift = img.height - inner.height - lineClearance - ruleWidth;\n inner.style.paddingLeft = makeEm(advanceWidth); // Overlay the image and the argument.\n\n const body = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: inner,\n wrapperClasses: [\"svg-align\"]\n }, {\n type: \"kern\",\n size: -(inner.height + imgShift)\n }, {\n type: \"elem\",\n elem: img\n }, {\n type: \"kern\",\n size: ruleWidth\n }]\n }, options);\n\n if (!group.index) {\n return buildCommon.makeSpan([\"mord\", \"sqrt\"], [body], options);\n } else {\n // Handle the optional root index\n // The index is always in scriptscript style\n const newOptions = options.havingStyle(src_Style.SCRIPTSCRIPT);\n const rootm = buildGroup(group.index, newOptions, options); // The amount the index is shifted by. This is taken from the TeX\n // source, in the definition of `\\r@@t`.\n\n const toShift = 0.6 * (body.height - body.depth); // Build a VList with the superscript shifted up correctly\n\n const rootVList = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -toShift,\n children: [{\n type: \"elem\",\n elem: rootm\n }]\n }, options); // Add a class surrounding it so we can add on the appropriate\n // kerning\n\n const rootVListWrap = buildCommon.makeSpan([\"root\"], [rootVList]);\n return buildCommon.makeSpan([\"mord\", \"sqrt\"], [rootVListWrap, body], options);\n }\n },\n\n mathmlBuilder(group, options) {\n const {\n body,\n index\n } = group;\n return index ? new mathMLTree.MathNode(\"mroot\", [buildMathML_buildGroup(body, options), buildMathML_buildGroup(index, options)]) : new mathMLTree.MathNode(\"msqrt\", [buildMathML_buildGroup(body, options)]);\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/styling.js\n\n\n\n\n\nconst styling_styleMap = {\n \"display\": src_Style.DISPLAY,\n \"text\": src_Style.TEXT,\n \"script\": src_Style.SCRIPT,\n \"scriptscript\": src_Style.SCRIPTSCRIPT\n};\ndefineFunction({\n type: \"styling\",\n names: [\"\\\\displaystyle\", \"\\\\textstyle\", \"\\\\scriptstyle\", \"\\\\scriptscriptstyle\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref, args) {\n let {\n breakOnTokenText,\n funcName,\n parser\n } = _ref;\n // parse out the implicit body\n const body = parser.parseExpression(true, breakOnTokenText); // TODO: Refactor to avoid duplicating styleMap in multiple places (e.g.\n // here and in buildHTML and de-dupe the enumeration of all the styles).\n // $FlowFixMe: The names above exactly match the styles.\n\n const style = funcName.slice(1, funcName.length - 5);\n return {\n type: \"styling\",\n mode: parser.mode,\n // Figure out what style to use by pulling out the style from\n // the function name\n style,\n body\n };\n },\n\n htmlBuilder(group, options) {\n // Style changes are handled in the TeXbook on pg. 442, Rule 3.\n const newStyle = styling_styleMap[group.style];\n const newOptions = options.havingStyle(newStyle).withFont('');\n return sizingGroup(group.body, newOptions, options);\n },\n\n mathmlBuilder(group, options) {\n // Figure out what style we're changing to.\n const newStyle = styling_styleMap[group.style];\n const newOptions = options.havingStyle(newStyle);\n const inner = buildMathML_buildExpression(group.body, newOptions);\n const node = new mathMLTree.MathNode(\"mstyle\", inner);\n const styleAttributes = {\n \"display\": [\"0\", \"true\"],\n \"text\": [\"0\", \"false\"],\n \"script\": [\"1\", \"false\"],\n \"scriptscript\": [\"2\", \"false\"]\n };\n const attr = styleAttributes[group.style];\n node.setAttribute(\"scriptlevel\", attr[0]);\n node.setAttribute(\"displaystyle\", attr[1]);\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/supsub.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Sometimes, groups perform special rules when they have superscripts or\n * subscripts attached to them. This function lets the `supsub` group know that\n * Sometimes, groups perform special rules when they have superscripts or\n * its inner element should handle the superscripts and subscripts instead of\n * handling them itself.\n */\nconst htmlBuilderDelegate = function (group, options) {\n const base = group.base;\n\n if (!base) {\n return null;\n } else if (base.type === \"op\") {\n // Operators handle supsubs differently when they have limits\n // (e.g. `\\displaystyle\\sum_2^3`)\n const delegate = base.limits && (options.style.size === src_Style.DISPLAY.size || base.alwaysHandleSupSub);\n return delegate ? op_htmlBuilder : null;\n } else if (base.type === \"operatorname\") {\n const delegate = base.alwaysHandleSupSub && (options.style.size === src_Style.DISPLAY.size || base.limits);\n return delegate ? operatorname_htmlBuilder : null;\n } else if (base.type === \"accent\") {\n return utils.isCharacterBox(base.base) ? htmlBuilder : null;\n } else if (base.type === \"horizBrace\") {\n const isSup = !group.sub;\n return isSup === base.isOver ? horizBrace_htmlBuilder : null;\n } else {\n return null;\n }\n}; // Super scripts and subscripts, whose precise placement can depend on other\n// functions that precede them.\n\n\ndefineFunctionBuilders({\n type: \"supsub\",\n\n htmlBuilder(group, options) {\n // Superscript and subscripts are handled in the TeXbook on page\n // 445-446, rules 18(a-f).\n // Here is where we defer to the inner group if it should handle\n // superscripts and subscripts itself.\n const builderDelegate = htmlBuilderDelegate(group, options);\n\n if (builderDelegate) {\n return builderDelegate(group, options);\n }\n\n const {\n base: valueBase,\n sup: valueSup,\n sub: valueSub\n } = group;\n const base = buildGroup(valueBase, options);\n let supm;\n let subm;\n const metrics = options.fontMetrics(); // Rule 18a\n\n let supShift = 0;\n let subShift = 0;\n const isCharacterBox = valueBase && utils.isCharacterBox(valueBase);\n\n if (valueSup) {\n const newOptions = options.havingStyle(options.style.sup());\n supm = buildGroup(valueSup, newOptions, options);\n\n if (!isCharacterBox) {\n supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options.sizeMultiplier;\n }\n }\n\n if (valueSub) {\n const newOptions = options.havingStyle(options.style.sub());\n subm = buildGroup(valueSub, newOptions, options);\n\n if (!isCharacterBox) {\n subShift = base.depth + newOptions.fontMetrics().subDrop * newOptions.sizeMultiplier / options.sizeMultiplier;\n }\n } // Rule 18c\n\n\n let minSupShift;\n\n if (options.style === src_Style.DISPLAY) {\n minSupShift = metrics.sup1;\n } else if (options.style.cramped) {\n minSupShift = metrics.sup3;\n } else {\n minSupShift = metrics.sup2;\n } // scriptspace is a font-size-independent size, so scale it\n // appropriately for use as the marginRight.\n\n\n const multiplier = options.sizeMultiplier;\n const marginRight = makeEm(0.5 / metrics.ptPerEm / multiplier);\n let marginLeft = null;\n\n if (subm) {\n // Subscripts shouldn't be shifted by the base's italic correction.\n // Account for that by shifting the subscript back the appropriate\n // amount. Note we only do this when the base is a single symbol.\n const isOiint = group.base && group.base.type === \"op\" && group.base.name && (group.base.name === \"\\\\oiint\" || group.base.name === \"\\\\oiiint\");\n\n if (base instanceof SymbolNode || isOiint) {\n // $FlowFixMe\n marginLeft = makeEm(-base.italic);\n }\n }\n\n let supsub;\n\n if (supm && subm) {\n supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n subShift = Math.max(subShift, metrics.sub2);\n const ruleWidth = metrics.defaultRuleThickness; // Rule 18e\n\n const maxWidth = 4 * ruleWidth;\n\n if (supShift - supm.depth - (subm.height - subShift) < maxWidth) {\n subShift = maxWidth - (supShift - supm.depth) + subm.height;\n const psi = 0.8 * metrics.xHeight - (supShift - supm.depth);\n\n if (psi > 0) {\n supShift += psi;\n subShift -= psi;\n }\n }\n\n const vlistElem = [{\n type: \"elem\",\n elem: subm,\n shift: subShift,\n marginRight,\n marginLeft\n }, {\n type: \"elem\",\n elem: supm,\n shift: -supShift,\n marginRight\n }];\n supsub = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: vlistElem\n }, options);\n } else if (subm) {\n // Rule 18b\n subShift = Math.max(subShift, metrics.sub1, subm.height - 0.8 * metrics.xHeight);\n const vlistElem = [{\n type: \"elem\",\n elem: subm,\n marginLeft,\n marginRight\n }];\n supsub = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: subShift,\n children: vlistElem\n }, options);\n } else if (supm) {\n // Rule 18c, d\n supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n supsub = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -supShift,\n children: [{\n type: \"elem\",\n elem: supm,\n marginRight\n }]\n }, options);\n } else {\n throw new Error(\"supsub must have either sup or sub.\");\n } // Wrap the supsub vlist in a span.msupsub to reset text-align.\n\n\n const mclass = getTypeOfDomTree(base, \"right\") || \"mord\";\n return buildCommon.makeSpan([mclass], [base, buildCommon.makeSpan([\"msupsub\"], [supsub])], options);\n },\n\n mathmlBuilder(group, options) {\n // Is the inner group a relevant horizonal brace?\n let isBrace = false;\n let isOver;\n let isSup;\n\n if (group.base && group.base.type === \"horizBrace\") {\n isSup = !!group.sup;\n\n if (isSup === group.base.isOver) {\n isBrace = true;\n isOver = group.base.isOver;\n }\n }\n\n if (group.base && (group.base.type === \"op\" || group.base.type === \"operatorname\")) {\n group.base.parentIsSupSub = true;\n }\n\n const children = [buildMathML_buildGroup(group.base, options)];\n\n if (group.sub) {\n children.push(buildMathML_buildGroup(group.sub, options));\n }\n\n if (group.sup) {\n children.push(buildMathML_buildGroup(group.sup, options));\n }\n\n let nodeType;\n\n if (isBrace) {\n nodeType = isOver ? \"mover\" : \"munder\";\n } else if (!group.sub) {\n const base = group.base;\n\n if (base && base.type === \"op\" && base.limits && (options.style === src_Style.DISPLAY || base.alwaysHandleSupSub)) {\n nodeType = \"mover\";\n } else if (base && base.type === \"operatorname\" && base.alwaysHandleSupSub && (base.limits || options.style === src_Style.DISPLAY)) {\n nodeType = \"mover\";\n } else {\n nodeType = \"msup\";\n }\n } else if (!group.sup) {\n const base = group.base;\n\n if (base && base.type === \"op\" && base.limits && (options.style === src_Style.DISPLAY || base.alwaysHandleSupSub)) {\n nodeType = \"munder\";\n } else if (base && base.type === \"operatorname\" && base.alwaysHandleSupSub && (base.limits || options.style === src_Style.DISPLAY)) {\n nodeType = \"munder\";\n } else {\n nodeType = \"msub\";\n }\n } else {\n const base = group.base;\n\n if (base && base.type === \"op\" && base.limits && options.style === src_Style.DISPLAY) {\n nodeType = \"munderover\";\n } else if (base && base.type === \"operatorname\" && base.alwaysHandleSupSub && (options.style === src_Style.DISPLAY || base.limits)) {\n nodeType = \"munderover\";\n } else {\n nodeType = \"msubsup\";\n }\n }\n\n return new mathMLTree.MathNode(nodeType, children);\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/symbolsOp.js\n\n\n\n // Operator ParseNodes created in Parser.js from symbol Groups in src/symbols.js.\n\ndefineFunctionBuilders({\n type: \"atom\",\n\n htmlBuilder(group, options) {\n return buildCommon.mathsym(group.text, group.mode, options, [\"m\" + group.family]);\n },\n\n mathmlBuilder(group, options) {\n const node = new mathMLTree.MathNode(\"mo\", [makeText(group.text, group.mode)]);\n\n if (group.family === \"bin\") {\n const variant = getVariant(group, options);\n\n if (variant === \"bold-italic\") {\n node.setAttribute(\"mathvariant\", variant);\n }\n } else if (group.family === \"punct\") {\n node.setAttribute(\"separator\", \"true\");\n } else if (group.family === \"open\" || group.family === \"close\") {\n // Delims built here should not stretch vertically.\n // See delimsizing.js for stretchy delims.\n node.setAttribute(\"stretchy\", \"false\");\n }\n\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/symbolsOrd.js\n\n\n\n\n// \"mathord\" and \"textord\" ParseNodes created in Parser.js from symbol Groups in\n// src/symbols.js.\nconst defaultVariant = {\n \"mi\": \"italic\",\n \"mn\": \"normal\",\n \"mtext\": \"normal\"\n};\ndefineFunctionBuilders({\n type: \"mathord\",\n\n htmlBuilder(group, options) {\n return buildCommon.makeOrd(group, options, \"mathord\");\n },\n\n mathmlBuilder(group, options) {\n const node = new mathMLTree.MathNode(\"mi\", [makeText(group.text, group.mode, options)]);\n const variant = getVariant(group, options) || \"italic\";\n\n if (variant !== defaultVariant[node.type]) {\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n }\n\n});\ndefineFunctionBuilders({\n type: \"textord\",\n\n htmlBuilder(group, options) {\n return buildCommon.makeOrd(group, options, \"textord\");\n },\n\n mathmlBuilder(group, options) {\n const text = makeText(group.text, group.mode, options);\n const variant = getVariant(group, options) || \"normal\";\n let node;\n\n if (group.mode === 'text') {\n node = new mathMLTree.MathNode(\"mtext\", [text]);\n } else if (/[0-9]/.test(group.text)) {\n node = new mathMLTree.MathNode(\"mn\", [text]);\n } else if (group.text === \"\\\\prime\") {\n node = new mathMLTree.MathNode(\"mo\", [text]);\n } else {\n node = new mathMLTree.MathNode(\"mi\", [text]);\n }\n\n if (variant !== defaultVariant[node.type]) {\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/symbolsSpacing.js\n\n\n\n // A map of CSS-based spacing functions to their CSS class.\n\nconst cssSpace = {\n \"\\\\nobreak\": \"nobreak\",\n \"\\\\allowbreak\": \"allowbreak\"\n}; // A lookup table to determine whether a spacing function/symbol should be\n// treated like a regular space character. If a symbol or command is a key\n// in this table, then it should be a regular space character. Furthermore,\n// the associated value may have a `className` specifying an extra CSS class\n// to add to the created `span`.\n\nconst regularSpace = {\n \" \": {},\n \"\\\\ \": {},\n \"~\": {\n className: \"nobreak\"\n },\n \"\\\\space\": {},\n \"\\\\nobreakspace\": {\n className: \"nobreak\"\n }\n}; // ParseNode<\"spacing\"> created in Parser.js from the \"spacing\" symbol Groups in\n// src/symbols.js.\n\ndefineFunctionBuilders({\n type: \"spacing\",\n\n htmlBuilder(group, options) {\n if (regularSpace.hasOwnProperty(group.text)) {\n const className = regularSpace[group.text].className || \"\"; // Spaces are generated by adding an actual space. Each of these\n // things has an entry in the symbols table, so these will be turned\n // into appropriate outputs.\n\n if (group.mode === \"text\") {\n const ord = buildCommon.makeOrd(group, options, \"textord\");\n ord.classes.push(className);\n return ord;\n } else {\n return buildCommon.makeSpan([\"mspace\", className], [buildCommon.mathsym(group.text, group.mode, options)], options);\n }\n } else if (cssSpace.hasOwnProperty(group.text)) {\n // Spaces based on just a CSS class.\n return buildCommon.makeSpan([\"mspace\", cssSpace[group.text]], [], options);\n } else {\n throw new src_ParseError(\"Unknown type of space \\\"\" + group.text + \"\\\"\");\n }\n },\n\n mathmlBuilder(group, options) {\n let node;\n\n if (regularSpace.hasOwnProperty(group.text)) {\n node = new mathMLTree.MathNode(\"mtext\", [new mathMLTree.TextNode(\"\\u00a0\")]);\n } else if (cssSpace.hasOwnProperty(group.text)) {\n // CSS-based MathML spaces (\\nobreak, \\allowbreak) are ignored\n return new mathMLTree.MathNode(\"mspace\");\n } else {\n throw new src_ParseError(\"Unknown type of space \\\"\" + group.text + \"\\\"\");\n }\n\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/tag.js\n\n\n\n\nconst pad = () => {\n const padNode = new mathMLTree.MathNode(\"mtd\", []);\n padNode.setAttribute(\"width\", \"50%\");\n return padNode;\n};\n\ndefineFunctionBuilders({\n type: \"tag\",\n\n mathmlBuilder(group, options) {\n const table = new mathMLTree.MathNode(\"mtable\", [new mathMLTree.MathNode(\"mtr\", [pad(), new mathMLTree.MathNode(\"mtd\", [buildExpressionRow(group.body, options)]), pad(), new mathMLTree.MathNode(\"mtd\", [buildExpressionRow(group.tag, options)])])]);\n table.setAttribute(\"width\", \"100%\");\n return table; // TODO: Left-aligned tags.\n // Currently, the group and options passed here do not contain\n // enough info to set tag alignment. `leqno` is in Settings but it is\n // not passed to Options. On the HTML side, leqno is\n // set by a CSS class applied in buildTree.js. That would have worked\n // in MathML if browsers supported . Since they don't, we\n // need to rewrite the way this function is called.\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/text.js\n\n\n\n // Non-mathy text, possibly in a font\n\nconst textFontFamilies = {\n \"\\\\text\": undefined,\n \"\\\\textrm\": \"textrm\",\n \"\\\\textsf\": \"textsf\",\n \"\\\\texttt\": \"texttt\",\n \"\\\\textnormal\": \"textrm\"\n};\nconst textFontWeights = {\n \"\\\\textbf\": \"textbf\",\n \"\\\\textmd\": \"textmd\"\n};\nconst textFontShapes = {\n \"\\\\textit\": \"textit\",\n \"\\\\textup\": \"textup\"\n};\n\nconst optionsWithFont = (group, options) => {\n const font = group.font; // Checks if the argument is a font family or a font style.\n\n if (!font) {\n return options;\n } else if (textFontFamilies[font]) {\n return options.withTextFontFamily(textFontFamilies[font]);\n } else if (textFontWeights[font]) {\n return options.withTextFontWeight(textFontWeights[font]);\n } else if (font === \"\\\\emph\") {\n return options.fontShape === \"textit\" ? options.withTextFontShape(\"textup\") : options.withTextFontShape(\"textit\");\n }\n\n return options.withTextFontShape(textFontShapes[font]);\n};\n\ndefineFunction({\n type: \"text\",\n names: [// Font families\n \"\\\\text\", \"\\\\textrm\", \"\\\\textsf\", \"\\\\texttt\", \"\\\\textnormal\", // Font weights\n \"\\\\textbf\", \"\\\\textmd\", // Font Shapes\n \"\\\\textit\", \"\\\\textup\", \"\\\\emph\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"],\n allowedInArgument: true,\n allowedInText: true\n },\n\n handler(_ref, args) {\n let {\n parser,\n funcName\n } = _ref;\n const body = args[0];\n return {\n type: \"text\",\n mode: parser.mode,\n body: ordargument(body),\n font: funcName\n };\n },\n\n htmlBuilder(group, options) {\n const newOptions = optionsWithFont(group, options);\n const inner = buildExpression(group.body, newOptions, true);\n return buildCommon.makeSpan([\"mord\", \"text\"], inner, newOptions);\n },\n\n mathmlBuilder(group, options) {\n const newOptions = optionsWithFont(group, options);\n return buildExpressionRow(group.body, newOptions);\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/underline.js\n\n\n\n\n\ndefineFunction({\n type: \"underline\",\n names: [\"\\\\underline\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n let {\n parser\n } = _ref;\n return {\n type: \"underline\",\n mode: parser.mode,\n body: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n // Underlines are handled in the TeXbook pg 443, Rule 10.\n // Build the inner group.\n const innerGroup = buildGroup(group.body, options); // Create the line to go below the body\n\n const line = buildCommon.makeLineSpan(\"underline-line\", options); // Generate the vlist, with the appropriate kerns\n\n const defaultRuleThickness = options.fontMetrics().defaultRuleThickness;\n const vlist = buildCommon.makeVList({\n positionType: \"top\",\n positionData: innerGroup.height,\n children: [{\n type: \"kern\",\n size: defaultRuleThickness\n }, {\n type: \"elem\",\n elem: line\n }, {\n type: \"kern\",\n size: 3 * defaultRuleThickness\n }, {\n type: \"elem\",\n elem: innerGroup\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"underline\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n const operator = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n const node = new mathMLTree.MathNode(\"munder\", [buildMathML_buildGroup(group.body, options), operator]);\n node.setAttribute(\"accentunder\", \"true\");\n return node;\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/vcenter.js\n\n\n\n\n // \\vcenter: Vertically center the argument group on the math axis.\n\ndefineFunction({\n type: \"vcenter\",\n names: [\"\\\\vcenter\"],\n props: {\n numArgs: 1,\n argTypes: [\"original\"],\n // In LaTeX, \\vcenter can act only on a box.\n allowedInText: false\n },\n\n handler(_ref, args) {\n let {\n parser\n } = _ref;\n return {\n type: \"vcenter\",\n mode: parser.mode,\n body: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n const body = buildGroup(group.body, options);\n const axisHeight = options.fontMetrics().axisHeight;\n const dy = 0.5 * (body.height - axisHeight - (body.depth + axisHeight));\n return buildCommon.makeVList({\n positionType: \"shift\",\n positionData: dy,\n children: [{\n type: \"elem\",\n elem: body\n }]\n }, options);\n },\n\n mathmlBuilder(group, options) {\n // There is no way to do this in MathML.\n // Write a class as a breadcrumb in case some post-processor wants\n // to perform a vcenter adjustment.\n return new mathMLTree.MathNode(\"mpadded\", [buildMathML_buildGroup(group.body, options)], [\"vcenter\"]);\n }\n\n});\n;// CONCATENATED MODULE: ./src/functions/verb.js\n\n\n\n\ndefineFunction({\n type: \"verb\",\n names: [\"\\\\verb\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(context, args, optArgs) {\n // \\verb and \\verb* are dealt with directly in Parser.js.\n // If we end up here, it's because of a failure to match the two delimiters\n // in the regex in Lexer.js. LaTeX raises the following error when \\verb is\n // terminated by end of line (or file).\n throw new src_ParseError(\"\\\\verb ended by end of line instead of matching delimiter\");\n },\n\n htmlBuilder(group, options) {\n const text = makeVerb(group);\n const body = []; // \\verb enters text mode and therefore is sized like \\textstyle\n\n const newOptions = options.havingStyle(options.style.text());\n\n for (let i = 0; i < text.length; i++) {\n let c = text[i];\n\n if (c === '~') {\n c = '\\\\textasciitilde';\n }\n\n body.push(buildCommon.makeSymbol(c, \"Typewriter-Regular\", group.mode, newOptions, [\"mord\", \"texttt\"]));\n }\n\n return buildCommon.makeSpan([\"mord\", \"text\"].concat(newOptions.sizingClasses(options)), buildCommon.tryCombineChars(body), newOptions);\n },\n\n mathmlBuilder(group, options) {\n const text = new mathMLTree.TextNode(makeVerb(group));\n const node = new mathMLTree.MathNode(\"mtext\", [text]);\n node.setAttribute(\"mathvariant\", \"monospace\");\n return node;\n }\n\n});\n/**\n * Converts verb group into body string.\n *\n * \\verb* replaces each space with an open box \\u2423\n * \\verb replaces each space with a no-break space \\xA0\n */\n\nconst makeVerb = group => group.body.replace(/ /g, group.star ? '\\u2423' : '\\xA0');\n;// CONCATENATED MODULE: ./src/functions.js\n/** Include this to ensure that all functions are defined. */\n\nconst functions = _functions;\n/* harmony default export */ var src_functions = (functions); // TODO(kevinb): have functions return an object and call defineFunction with\n// that object in this file instead of relying on side-effects.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n;// CONCATENATED MODULE: ./src/Lexer.js\n/**\n * The Lexer class handles tokenizing the input in various ways. Since our\n * parser expects us to be able to backtrack, the lexer allows lexing from any\n * given starting point.\n *\n * Its main exposed function is the `lex` function, which takes a position to\n * lex from and a type of token to lex. It defers to the appropriate `_innerLex`\n * function.\n *\n * The various `_innerLex` functions perform the actual lexing of different\n * kinds.\n */\n\n\n\n\n/* The following tokenRegex\n * - matches typical whitespace (but not NBSP etc.) using its first group\n * - does not match any control character \\x00-\\x1f except whitespace\n * - does not match a bare backslash\n * - matches any ASCII character except those just mentioned\n * - does not match the BMP private use area \\uE000-\\uF8FF\n * - does not match bare surrogate code units\n * - matches any BMP character except for those just described\n * - matches any valid Unicode surrogate pair\n * - matches a backslash followed by one or more whitespace characters\n * - matches a backslash followed by one or more letters then whitespace\n * - matches a backslash followed by any BMP character\n * Capturing groups:\n * [1] regular whitespace\n * [2] backslash followed by whitespace\n * [3] anything else, which may include:\n * [4] left character of \\verb*\n * [5] left character of \\verb\n * [6] backslash followed by word, excluding any trailing whitespace\n * Just because the Lexer matches something doesn't mean it's valid input:\n * If there is no matching function or symbol definition, the Parser will\n * still reject the input.\n */\nconst spaceRegexString = \"[ \\r\\n\\t]\";\nconst controlWordRegexString = \"\\\\\\\\[a-zA-Z@]+\";\nconst controlSymbolRegexString = \"\\\\\\\\[^\\uD800-\\uDFFF]\";\nconst controlWordWhitespaceRegexString = \"(\" + controlWordRegexString + \")\" + spaceRegexString + \"*\";\nconst controlSpaceRegexString = \"\\\\\\\\(\\n|[ \\r\\t]+\\n?)[ \\r\\t]*\";\nconst combiningDiacriticalMarkString = \"[\\u0300-\\u036f]\";\nconst combiningDiacriticalMarksEndRegex = new RegExp(combiningDiacriticalMarkString + \"+$\");\nconst tokenRegexString = \"(\" + spaceRegexString + \"+)|\" + ( // whitespace\ncontrolSpaceRegexString + \"|\") + // \\whitespace\n\"([!-\\\\[\\\\]-\\u2027\\u202A-\\uD7FF\\uF900-\\uFFFF]\" + ( // single codepoint\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\" + ( // surrogate pair\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|\\\\\\\\verb\\\\*([^]).*?\\\\4\" + // \\verb*\n\"|\\\\\\\\verb([^*a-zA-Z]).*?\\\\5\" + ( // \\verb unstarred\n\"|\" + controlWordWhitespaceRegexString) + ( // \\macroName + spaces\n\"|\" + controlSymbolRegexString + \")\"); // \\\\, \\', etc.\n\n/** Main Lexer class */\n\nclass Lexer {\n // Category codes. The lexer only supports comment characters (14) for now.\n // MacroExpander additionally distinguishes active (13).\n constructor(input, settings) {\n this.input = void 0;\n this.settings = void 0;\n this.tokenRegex = void 0;\n this.catcodes = void 0;\n // Separate accents from characters\n this.input = input;\n this.settings = settings;\n this.tokenRegex = new RegExp(tokenRegexString, 'g');\n this.catcodes = {\n \"%\": 14,\n // comment character\n \"~\": 13 // active character\n\n };\n }\n\n setCatcode(char, code) {\n this.catcodes[char] = code;\n }\n /**\n * This function lexes a single token.\n */\n\n\n lex() {\n const input = this.input;\n const pos = this.tokenRegex.lastIndex;\n\n if (pos === input.length) {\n return new Token(\"EOF\", new SourceLocation(this, pos, pos));\n }\n\n const match = this.tokenRegex.exec(input);\n\n if (match === null || match.index !== pos) {\n throw new src_ParseError(\"Unexpected character: '\" + input[pos] + \"'\", new Token(input[pos], new SourceLocation(this, pos, pos + 1)));\n }\n\n const text = match[6] || match[3] || (match[2] ? \"\\\\ \" : \" \");\n\n if (this.catcodes[text] === 14) {\n // comment character\n const nlIndex = input.indexOf('\\n', this.tokenRegex.lastIndex);\n\n if (nlIndex === -1) {\n this.tokenRegex.lastIndex = input.length; // EOF\n\n this.settings.reportNonstrict(\"commentAtEnd\", \"% comment has no terminating newline; LaTeX would \" + \"fail because of commenting the end of math mode (e.g. $)\");\n } else {\n this.tokenRegex.lastIndex = nlIndex + 1;\n }\n\n return this.lex();\n }\n\n return new Token(text, new SourceLocation(this, pos, this.tokenRegex.lastIndex));\n }\n\n}\n;// CONCATENATED MODULE: ./src/Namespace.js\n/**\n * A `Namespace` refers to a space of nameable things like macros or lengths,\n * which can be `set` either globally or local to a nested group, using an\n * undo stack similar to how TeX implements this functionality.\n * Performance-wise, `get` and local `set` take constant time, while global\n * `set` takes time proportional to the depth of group nesting.\n */\n\nclass Namespace {\n /**\n * Both arguments are optional. The first argument is an object of\n * built-in mappings which never change. The second argument is an object\n * of initial (global-level) mappings, which will constantly change\n * according to any global/top-level `set`s done.\n */\n constructor(builtins, globalMacros) {\n if (builtins === void 0) {\n builtins = {};\n }\n\n if (globalMacros === void 0) {\n globalMacros = {};\n }\n\n this.current = void 0;\n this.builtins = void 0;\n this.undefStack = void 0;\n this.current = globalMacros;\n this.builtins = builtins;\n this.undefStack = [];\n }\n /**\n * Start a new nested group, affecting future local `set`s.\n */\n\n\n beginGroup() {\n this.undefStack.push({});\n }\n /**\n * End current nested group, restoring values before the group began.\n */\n\n\n endGroup() {\n if (this.undefStack.length === 0) {\n throw new src_ParseError(\"Unbalanced namespace destruction: attempt \" + \"to pop global namespace; please report this as a bug\");\n }\n\n const undefs = this.undefStack.pop();\n\n for (const undef in undefs) {\n if (undefs.hasOwnProperty(undef)) {\n if (undefs[undef] == null) {\n delete this.current[undef];\n } else {\n this.current[undef] = undefs[undef];\n }\n }\n }\n }\n /**\n * Ends all currently nested groups (if any), restoring values before the\n * groups began. Useful in case of an error in the middle of parsing.\n */\n\n\n endGroups() {\n while (this.undefStack.length > 0) {\n this.endGroup();\n }\n }\n /**\n * Detect whether `name` has a definition. Equivalent to\n * `get(name) != null`.\n */\n\n\n has(name) {\n return this.current.hasOwnProperty(name) || this.builtins.hasOwnProperty(name);\n }\n /**\n * Get the current value of a name, or `undefined` if there is no value.\n *\n * Note: Do not use `if (namespace.get(...))` to detect whether a macro\n * is defined, as the definition may be the empty string which evaluates\n * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or\n * `if (namespace.has(...))`.\n */\n\n\n get(name) {\n if (this.current.hasOwnProperty(name)) {\n return this.current[name];\n } else {\n return this.builtins[name];\n }\n }\n /**\n * Set the current value of a name, and optionally set it globally too.\n * Local set() sets the current value and (when appropriate) adds an undo\n * operation to the undo stack. Global set() may change the undo\n * operation at every level, so takes time linear in their number.\n * A value of undefined means to delete existing definitions.\n */\n\n\n set(name, value, global) {\n if (global === void 0) {\n global = false;\n }\n\n if (global) {\n // Global set is equivalent to setting in all groups. Simulate this\n // by destroying any undos currently scheduled for this name,\n // and adding an undo with the *new* value (in case it later gets\n // locally reset within this environment).\n for (let i = 0; i < this.undefStack.length; i++) {\n delete this.undefStack[i][name];\n }\n\n if (this.undefStack.length > 0) {\n this.undefStack[this.undefStack.length - 1][name] = value;\n }\n } else {\n // Undo this set at end of this group (possibly to `undefined`),\n // unless an undo is already in place, in which case that older\n // value is the correct one.\n const top = this.undefStack[this.undefStack.length - 1];\n\n if (top && !top.hasOwnProperty(name)) {\n top[name] = this.current[name];\n }\n }\n\n if (value == null) {\n delete this.current[name];\n } else {\n this.current[name] = value;\n }\n }\n\n}\n;// CONCATENATED MODULE: ./src/macros.js\n/**\n * Predefined macros for KaTeX.\n * This can be used to define some commands in terms of others.\n */\n// Export global macros object from defineMacro\n\nconst macros = _macros;\n/* harmony default export */ var src_macros = (macros);\n\n\n\n\n\n //////////////////////////////////////////////////////////////////////\n// macro tools\n\ndefineMacro(\"\\\\noexpand\", function (context) {\n // The expansion is the token itself; but that token is interpreted\n // as if its meaning were ‘\\relax’ if it is a control sequence that\n // would ordinarily be expanded by TeX’s expansion rules.\n const t = context.popToken();\n\n if (context.isExpandable(t.text)) {\n t.noexpand = true;\n t.treatAsRelax = true;\n }\n\n return {\n tokens: [t],\n numArgs: 0\n };\n});\ndefineMacro(\"\\\\expandafter\", function (context) {\n // TeX first reads the token that comes immediately after \\expandafter,\n // without expanding it; let’s call this token t. Then TeX reads the\n // token that comes after t (and possibly more tokens, if that token\n // has an argument), replacing it by its expansion. Finally TeX puts\n // t back in front of that expansion.\n const t = context.popToken();\n context.expandOnce(true); // expand only an expandable token\n\n return {\n tokens: [t],\n numArgs: 0\n };\n}); // LaTeX's \\@firstoftwo{#1}{#2} expands to #1, skipping #2\n// TeX source: \\long\\def\\@firstoftwo#1#2{#1}\n\ndefineMacro(\"\\\\@firstoftwo\", function (context) {\n const args = context.consumeArgs(2);\n return {\n tokens: args[0],\n numArgs: 0\n };\n}); // LaTeX's \\@secondoftwo{#1}{#2} expands to #2, skipping #1\n// TeX source: \\long\\def\\@secondoftwo#1#2{#2}\n\ndefineMacro(\"\\\\@secondoftwo\", function (context) {\n const args = context.consumeArgs(2);\n return {\n tokens: args[1],\n numArgs: 0\n };\n}); // LaTeX's \\@ifnextchar{#1}{#2}{#3} looks ahead to the next (unexpanded)\n// symbol that isn't a space, consuming any spaces but not consuming the\n// first nonspace character. If that nonspace character matches #1, then\n// the macro expands to #2; otherwise, it expands to #3.\n\ndefineMacro(\"\\\\@ifnextchar\", function (context) {\n const args = context.consumeArgs(3); // symbol, if, else\n\n context.consumeSpaces();\n const nextToken = context.future();\n\n if (args[0].length === 1 && args[0][0].text === nextToken.text) {\n return {\n tokens: args[1],\n numArgs: 0\n };\n } else {\n return {\n tokens: args[2],\n numArgs: 0\n };\n }\n}); // LaTeX's \\@ifstar{#1}{#2} looks ahead to the next (unexpanded) symbol.\n// If it is `*`, then it consumes the symbol, and the macro expands to #1;\n// otherwise, the macro expands to #2 (without consuming the symbol).\n// TeX source: \\def\\@ifstar#1{\\@ifnextchar *{\\@firstoftwo{#1}}}\n\ndefineMacro(\"\\\\@ifstar\", \"\\\\@ifnextchar *{\\\\@firstoftwo{#1}}\"); // LaTeX's \\TextOrMath{#1}{#2} expands to #1 in text mode, #2 in math mode\n\ndefineMacro(\"\\\\TextOrMath\", function (context) {\n const args = context.consumeArgs(2);\n\n if (context.mode === 'text') {\n return {\n tokens: args[0],\n numArgs: 0\n };\n } else {\n return {\n tokens: args[1],\n numArgs: 0\n };\n }\n}); // Lookup table for parsing numbers in base 8 through 16\n\nconst digitToNumber = {\n \"0\": 0,\n \"1\": 1,\n \"2\": 2,\n \"3\": 3,\n \"4\": 4,\n \"5\": 5,\n \"6\": 6,\n \"7\": 7,\n \"8\": 8,\n \"9\": 9,\n \"a\": 10,\n \"A\": 10,\n \"b\": 11,\n \"B\": 11,\n \"c\": 12,\n \"C\": 12,\n \"d\": 13,\n \"D\": 13,\n \"e\": 14,\n \"E\": 14,\n \"f\": 15,\n \"F\": 15\n}; // TeX \\char makes a literal character (catcode 12) using the following forms:\n// (see The TeXBook, p. 43)\n// \\char123 -- decimal\n// \\char'123 -- octal\n// \\char\"123 -- hex\n// \\char`x -- character that can be written (i.e. isn't active)\n// \\char`\\x -- character that cannot be written (e.g. %)\n// These all refer to characters from the font, so we turn them into special\n// calls to a function \\@char dealt with in the Parser.\n\ndefineMacro(\"\\\\char\", function (context) {\n let token = context.popToken();\n let base;\n let number = '';\n\n if (token.text === \"'\") {\n base = 8;\n token = context.popToken();\n } else if (token.text === '\"') {\n base = 16;\n token = context.popToken();\n } else if (token.text === \"`\") {\n token = context.popToken();\n\n if (token.text[0] === \"\\\\\") {\n number = token.text.charCodeAt(1);\n } else if (token.text === \"EOF\") {\n throw new src_ParseError(\"\\\\char` missing argument\");\n } else {\n number = token.text.charCodeAt(0);\n }\n } else {\n base = 10;\n }\n\n if (base) {\n // Parse a number in the given base, starting with first `token`.\n number = digitToNumber[token.text];\n\n if (number == null || number >= base) {\n throw new src_ParseError(\"Invalid base-\" + base + \" digit \" + token.text);\n }\n\n let digit;\n\n while ((digit = digitToNumber[context.future().text]) != null && digit < base) {\n number *= base;\n number += digit;\n context.popToken();\n }\n }\n\n return \"\\\\@char{\" + number + \"}\";\n}); // \\newcommand{\\macro}[args]{definition}\n// \\renewcommand{\\macro}[args]{definition}\n// TODO: Optional arguments: \\newcommand{\\macro}[args][default]{definition}\n\nconst newcommand = (context, existsOK, nonexistsOK, skipIfExists) => {\n let arg = context.consumeArg().tokens;\n\n if (arg.length !== 1) {\n throw new src_ParseError(\"\\\\newcommand's first argument must be a macro name\");\n }\n\n const name = arg[0].text;\n const exists = context.isDefined(name);\n\n if (exists && !existsOK) {\n throw new src_ParseError(\"\\\\newcommand{\" + name + \"} attempting to redefine \" + (name + \"; use \\\\renewcommand\"));\n }\n\n if (!exists && !nonexistsOK) {\n throw new src_ParseError(\"\\\\renewcommand{\" + name + \"} when command \" + name + \" \" + \"does not yet exist; use \\\\newcommand\");\n }\n\n let numArgs = 0;\n arg = context.consumeArg().tokens;\n\n if (arg.length === 1 && arg[0].text === \"[\") {\n let argText = '';\n let token = context.expandNextToken();\n\n while (token.text !== \"]\" && token.text !== \"EOF\") {\n // TODO: Should properly expand arg, e.g., ignore {}s\n argText += token.text;\n token = context.expandNextToken();\n }\n\n if (!argText.match(/^\\s*[0-9]+\\s*$/)) {\n throw new src_ParseError(\"Invalid number of arguments: \" + argText);\n }\n\n numArgs = parseInt(argText);\n arg = context.consumeArg().tokens;\n }\n\n if (!(exists && skipIfExists)) {\n // Final arg is the expansion of the macro\n context.macros.set(name, {\n tokens: arg,\n numArgs\n });\n }\n\n return '';\n};\n\ndefineMacro(\"\\\\newcommand\", context => newcommand(context, false, true, false));\ndefineMacro(\"\\\\renewcommand\", context => newcommand(context, true, false, false));\ndefineMacro(\"\\\\providecommand\", context => newcommand(context, true, true, true)); // terminal (console) tools\n\ndefineMacro(\"\\\\message\", context => {\n const arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console\n\n console.log(arg.reverse().map(token => token.text).join(\"\"));\n return '';\n});\ndefineMacro(\"\\\\errmessage\", context => {\n const arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console\n\n console.error(arg.reverse().map(token => token.text).join(\"\"));\n return '';\n});\ndefineMacro(\"\\\\show\", context => {\n const tok = context.popToken();\n const name = tok.text; // eslint-disable-next-line no-console\n\n console.log(tok, context.macros.get(name), src_functions[name], src_symbols.math[name], src_symbols.text[name]);\n return '';\n}); //////////////////////////////////////////////////////////////////////\n// Grouping\n// \\let\\bgroup={ \\let\\egroup=}\n\ndefineMacro(\"\\\\bgroup\", \"{\");\ndefineMacro(\"\\\\egroup\", \"}\"); // Symbols from latex.ltx:\n// \\def~{\\nobreakspace{}}\n// \\def\\lq{`}\n// \\def\\rq{'}\n// \\def \\aa {\\r a}\n// \\def \\AA {\\r A}\n\ndefineMacro(\"~\", \"\\\\nobreakspace\");\ndefineMacro(\"\\\\lq\", \"`\");\ndefineMacro(\"\\\\rq\", \"'\");\ndefineMacro(\"\\\\aa\", \"\\\\r a\");\ndefineMacro(\"\\\\AA\", \"\\\\r A\"); // Copyright (C) and registered (R) symbols. Use raw symbol in MathML.\n// \\DeclareTextCommandDefault{\\textcopyright}{\\textcircled{c}}\n// \\DeclareTextCommandDefault{\\textregistered}{\\textcircled{%\n// \\check@mathfonts\\fontsize\\sf@size\\z@\\math@fontsfalse\\selectfont R}}\n// \\DeclareRobustCommand{\\copyright}{%\n// \\ifmmode{\\nfss@text{\\textcopyright}}\\else\\textcopyright\\fi}\n\ndefineMacro(\"\\\\textcopyright\", \"\\\\html@mathml{\\\\textcircled{c}}{\\\\char`©}\");\ndefineMacro(\"\\\\copyright\", \"\\\\TextOrMath{\\\\textcopyright}{\\\\text{\\\\textcopyright}}\");\ndefineMacro(\"\\\\textregistered\", \"\\\\html@mathml{\\\\textcircled{\\\\scriptsize R}}{\\\\char`®}\"); // Characters omitted from Unicode range 1D400–1D7FF\n\ndefineMacro(\"\\u212C\", \"\\\\mathscr{B}\"); // script\n\ndefineMacro(\"\\u2130\", \"\\\\mathscr{E}\");\ndefineMacro(\"\\u2131\", \"\\\\mathscr{F}\");\ndefineMacro(\"\\u210B\", \"\\\\mathscr{H}\");\ndefineMacro(\"\\u2110\", \"\\\\mathscr{I}\");\ndefineMacro(\"\\u2112\", \"\\\\mathscr{L}\");\ndefineMacro(\"\\u2133\", \"\\\\mathscr{M}\");\ndefineMacro(\"\\u211B\", \"\\\\mathscr{R}\");\ndefineMacro(\"\\u212D\", \"\\\\mathfrak{C}\"); // Fraktur\n\ndefineMacro(\"\\u210C\", \"\\\\mathfrak{H}\");\ndefineMacro(\"\\u2128\", \"\\\\mathfrak{Z}\"); // Define \\Bbbk with a macro that works in both HTML and MathML.\n\ndefineMacro(\"\\\\Bbbk\", \"\\\\Bbb{k}\"); // Unicode middle dot\n// The KaTeX fonts do not contain U+00B7. Instead, \\cdotp displays\n// the dot at U+22C5 and gives it punct spacing.\n\ndefineMacro(\"\\u00b7\", \"\\\\cdotp\"); // \\llap and \\rlap render their contents in text mode\n\ndefineMacro(\"\\\\llap\", \"\\\\mathllap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\rlap\", \"\\\\mathrlap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\clap\", \"\\\\mathclap{\\\\textrm{#1}}\"); // \\mathstrut from the TeXbook, p 360\n\ndefineMacro(\"\\\\mathstrut\", \"\\\\vphantom{(}\"); // \\underbar from TeXbook p 353\n\ndefineMacro(\"\\\\underbar\", \"\\\\underline{\\\\text{#1}}\"); // \\not is defined by base/fontmath.ltx via\n// \\DeclareMathSymbol{\\not}{\\mathrel}{symbols}{\"36}\n// It's thus treated like a \\mathrel, but defined by a symbol that has zero\n// width but extends to the right. We use \\rlap to get that spacing.\n// For MathML we write U+0338 here. buildMathML.js will then do the overlay.\n\ndefineMacro(\"\\\\not\", '\\\\html@mathml{\\\\mathrel{\\\\mathrlap\\\\@not}}{\\\\char\"338}'); // Negated symbols from base/fontmath.ltx:\n// \\def\\neq{\\not=} \\let\\ne=\\neq\n// \\DeclareRobustCommand\n// \\notin{\\mathrel{\\m@th\\mathpalette\\c@ncel\\in}}\n// \\def\\c@ncel#1#2{\\m@th\\ooalign{$\\hfil#1\\mkern1mu/\\hfil$\\crcr$#1#2$}}\n\ndefineMacro(\"\\\\neq\", \"\\\\html@mathml{\\\\mathrel{\\\\not=}}{\\\\mathrel{\\\\char`≠}}\");\ndefineMacro(\"\\\\ne\", \"\\\\neq\");\ndefineMacro(\"\\u2260\", \"\\\\neq\");\ndefineMacro(\"\\\\notin\", \"\\\\html@mathml{\\\\mathrel{{\\\\in}\\\\mathllap{/\\\\mskip1mu}}}\" + \"{\\\\mathrel{\\\\char`∉}}\");\ndefineMacro(\"\\u2209\", \"\\\\notin\"); // Unicode stacked relations\n\ndefineMacro(\"\\u2258\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\kern{-1em}\\\\raisebox{0.4em}{$\\\\scriptsize\\\\frown$}}\" + \"}{\\\\mathrel{\\\\char`\\u2258}}\");\ndefineMacro(\"\\u2259\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\wedge}{=}}{\\\\mathrel{\\\\char`\\u2258}}\");\ndefineMacro(\"\\u225A\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\vee}{=}}{\\\\mathrel{\\\\char`\\u225A}}\");\ndefineMacro(\"\\u225B\", \"\\\\html@mathml{\\\\stackrel{\\\\scriptsize\\\\star}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225B}}\");\ndefineMacro(\"\\u225D\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{def}}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225D}}\");\ndefineMacro(\"\\u225E\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{m}}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225E}}\");\ndefineMacro(\"\\u225F\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny?}{=}}{\\\\mathrel{\\\\char`\\u225F}}\"); // Misc Unicode\n\ndefineMacro(\"\\u27C2\", \"\\\\perp\");\ndefineMacro(\"\\u203C\", \"\\\\mathclose{!\\\\mkern-0.8mu!}\");\ndefineMacro(\"\\u220C\", \"\\\\notni\");\ndefineMacro(\"\\u231C\", \"\\\\ulcorner\");\ndefineMacro(\"\\u231D\", \"\\\\urcorner\");\ndefineMacro(\"\\u231E\", \"\\\\llcorner\");\ndefineMacro(\"\\u231F\", \"\\\\lrcorner\");\ndefineMacro(\"\\u00A9\", \"\\\\copyright\");\ndefineMacro(\"\\u00AE\", \"\\\\textregistered\");\ndefineMacro(\"\\uFE0F\", \"\\\\textregistered\"); // The KaTeX fonts have corners at codepoints that don't match Unicode.\n// For MathML purposes, use the Unicode code point.\n\ndefineMacro(\"\\\\ulcorner\", \"\\\\html@mathml{\\\\@ulcorner}{\\\\mathop{\\\\char\\\"231c}}\");\ndefineMacro(\"\\\\urcorner\", \"\\\\html@mathml{\\\\@urcorner}{\\\\mathop{\\\\char\\\"231d}}\");\ndefineMacro(\"\\\\llcorner\", \"\\\\html@mathml{\\\\@llcorner}{\\\\mathop{\\\\char\\\"231e}}\");\ndefineMacro(\"\\\\lrcorner\", \"\\\\html@mathml{\\\\@lrcorner}{\\\\mathop{\\\\char\\\"231f}}\"); //////////////////////////////////////////////////////////////////////\n// LaTeX_2ε\n// \\vdots{\\vbox{\\baselineskip4\\p@ \\lineskiplimit\\z@\n// \\kern6\\p@\\hbox{.}\\hbox{.}\\hbox{.}}}\n// We'll call \\varvdots, which gets a glyph from symbols.js.\n// The zero-width rule gets us an equivalent to the vertical 6pt kern.\n\ndefineMacro(\"\\\\vdots\", \"{\\\\varvdots\\\\rule{0pt}{15pt}}\");\ndefineMacro(\"\\u22ee\", \"\\\\vdots\"); //////////////////////////////////////////////////////////////////////\n// amsmath.sty\n// http://mirrors.concertpass.com/tex-archive/macros/latex/required/amsmath/amsmath.pdf\n// Italic Greek capital letters. AMS defines these with \\DeclareMathSymbol,\n// but they are equivalent to \\mathit{\\Letter}.\n\ndefineMacro(\"\\\\varGamma\", \"\\\\mathit{\\\\Gamma}\");\ndefineMacro(\"\\\\varDelta\", \"\\\\mathit{\\\\Delta}\");\ndefineMacro(\"\\\\varTheta\", \"\\\\mathit{\\\\Theta}\");\ndefineMacro(\"\\\\varLambda\", \"\\\\mathit{\\\\Lambda}\");\ndefineMacro(\"\\\\varXi\", \"\\\\mathit{\\\\Xi}\");\ndefineMacro(\"\\\\varPi\", \"\\\\mathit{\\\\Pi}\");\ndefineMacro(\"\\\\varSigma\", \"\\\\mathit{\\\\Sigma}\");\ndefineMacro(\"\\\\varUpsilon\", \"\\\\mathit{\\\\Upsilon}\");\ndefineMacro(\"\\\\varPhi\", \"\\\\mathit{\\\\Phi}\");\ndefineMacro(\"\\\\varPsi\", \"\\\\mathit{\\\\Psi}\");\ndefineMacro(\"\\\\varOmega\", \"\\\\mathit{\\\\Omega}\"); //\\newcommand{\\substack}[1]{\\subarray{c}#1\\endsubarray}\n\ndefineMacro(\"\\\\substack\", \"\\\\begin{subarray}{c}#1\\\\end{subarray}\"); // \\renewcommand{\\colon}{\\nobreak\\mskip2mu\\mathpunct{}\\nonscript\n// \\mkern-\\thinmuskip{:}\\mskip6muplus1mu\\relax}\n\ndefineMacro(\"\\\\colon\", \"\\\\nobreak\\\\mskip2mu\\\\mathpunct{}\" + \"\\\\mathchoice{\\\\mkern-3mu}{\\\\mkern-3mu}{}{}{:}\\\\mskip6mu\\\\relax\"); // \\newcommand{\\boxed}[1]{\\fbox{\\m@th$\\displaystyle#1$}}\n\ndefineMacro(\"\\\\boxed\", \"\\\\fbox{$\\\\displaystyle{#1}$}\"); // \\def\\iff{\\DOTSB\\;\\Longleftrightarrow\\;}\n// \\def\\implies{\\DOTSB\\;\\Longrightarrow\\;}\n// \\def\\impliedby{\\DOTSB\\;\\Longleftarrow\\;}\n\ndefineMacro(\"\\\\iff\", \"\\\\DOTSB\\\\;\\\\Longleftrightarrow\\\\;\");\ndefineMacro(\"\\\\implies\", \"\\\\DOTSB\\\\;\\\\Longrightarrow\\\\;\");\ndefineMacro(\"\\\\impliedby\", \"\\\\DOTSB\\\\;\\\\Longleftarrow\\\\;\"); // \\def\\dddot#1{{\\mathop{#1}\\limits^{\\vbox to-1.4\\ex@{\\kern-\\tw@\\ex@\n// \\hbox{\\normalfont ...}\\vss}}}}\n// We use \\overset which avoids the vertical shift of \\mathop.\n\ndefineMacro(\"\\\\dddot\", \"{\\\\overset{\\\\raisebox{-0.1ex}{\\\\normalsize ...}}{#1}}\");\ndefineMacro(\"\\\\ddddot\", \"{\\\\overset{\\\\raisebox{-0.1ex}{\\\\normalsize ....}}{#1}}\"); // AMSMath's automatic \\dots, based on \\mdots@@ macro.\n\nconst dotsByToken = {\n ',': '\\\\dotsc',\n '\\\\not': '\\\\dotsb',\n // \\keybin@ checks for the following:\n '+': '\\\\dotsb',\n '=': '\\\\dotsb',\n '<': '\\\\dotsb',\n '>': '\\\\dotsb',\n '-': '\\\\dotsb',\n '*': '\\\\dotsb',\n ':': '\\\\dotsb',\n // Symbols whose definition starts with \\DOTSB:\n '\\\\DOTSB': '\\\\dotsb',\n '\\\\coprod': '\\\\dotsb',\n '\\\\bigvee': '\\\\dotsb',\n '\\\\bigwedge': '\\\\dotsb',\n '\\\\biguplus': '\\\\dotsb',\n '\\\\bigcap': '\\\\dotsb',\n '\\\\bigcup': '\\\\dotsb',\n '\\\\prod': '\\\\dotsb',\n '\\\\sum': '\\\\dotsb',\n '\\\\bigotimes': '\\\\dotsb',\n '\\\\bigoplus': '\\\\dotsb',\n '\\\\bigodot': '\\\\dotsb',\n '\\\\bigsqcup': '\\\\dotsb',\n '\\\\And': '\\\\dotsb',\n '\\\\longrightarrow': '\\\\dotsb',\n '\\\\Longrightarrow': '\\\\dotsb',\n '\\\\longleftarrow': '\\\\dotsb',\n '\\\\Longleftarrow': '\\\\dotsb',\n '\\\\longleftrightarrow': '\\\\dotsb',\n '\\\\Longleftrightarrow': '\\\\dotsb',\n '\\\\mapsto': '\\\\dotsb',\n '\\\\longmapsto': '\\\\dotsb',\n '\\\\hookrightarrow': '\\\\dotsb',\n '\\\\doteq': '\\\\dotsb',\n // Symbols whose definition starts with \\mathbin:\n '\\\\mathbin': '\\\\dotsb',\n // Symbols whose definition starts with \\mathrel:\n '\\\\mathrel': '\\\\dotsb',\n '\\\\relbar': '\\\\dotsb',\n '\\\\Relbar': '\\\\dotsb',\n '\\\\xrightarrow': '\\\\dotsb',\n '\\\\xleftarrow': '\\\\dotsb',\n // Symbols whose definition starts with \\DOTSI:\n '\\\\DOTSI': '\\\\dotsi',\n '\\\\int': '\\\\dotsi',\n '\\\\oint': '\\\\dotsi',\n '\\\\iint': '\\\\dotsi',\n '\\\\iiint': '\\\\dotsi',\n '\\\\iiiint': '\\\\dotsi',\n '\\\\idotsint': '\\\\dotsi',\n // Symbols whose definition starts with \\DOTSX:\n '\\\\DOTSX': '\\\\dotsx'\n};\ndefineMacro(\"\\\\dots\", function (context) {\n // TODO: If used in text mode, should expand to \\textellipsis.\n // However, in KaTeX, \\textellipsis and \\ldots behave the same\n // (in text mode), and it's unlikely we'd see any of the math commands\n // that affect the behavior of \\dots when in text mode. So fine for now\n // (until we support \\ifmmode ... \\else ... \\fi).\n let thedots = '\\\\dotso';\n const next = context.expandAfterFuture().text;\n\n if (next in dotsByToken) {\n thedots = dotsByToken[next];\n } else if (next.slice(0, 4) === '\\\\not') {\n thedots = '\\\\dotsb';\n } else if (next in src_symbols.math) {\n if (utils.contains(['bin', 'rel'], src_symbols.math[next].group)) {\n thedots = '\\\\dotsb';\n }\n }\n\n return thedots;\n});\nconst spaceAfterDots = {\n // \\rightdelim@ checks for the following:\n ')': true,\n ']': true,\n '\\\\rbrack': true,\n '\\\\}': true,\n '\\\\rbrace': true,\n '\\\\rangle': true,\n '\\\\rceil': true,\n '\\\\rfloor': true,\n '\\\\rgroup': true,\n '\\\\rmoustache': true,\n '\\\\right': true,\n '\\\\bigr': true,\n '\\\\biggr': true,\n '\\\\Bigr': true,\n '\\\\Biggr': true,\n // \\extra@ also tests for the following:\n '$': true,\n // \\extrap@ checks for the following:\n ';': true,\n '.': true,\n ',': true\n};\ndefineMacro(\"\\\\dotso\", function (context) {\n const next = context.future().text;\n\n if (next in spaceAfterDots) {\n return \"\\\\ldots\\\\,\";\n } else {\n return \"\\\\ldots\";\n }\n});\ndefineMacro(\"\\\\dotsc\", function (context) {\n const next = context.future().text; // \\dotsc uses \\extra@ but not \\extrap@, instead specially checking for\n // ';' and '.', but doesn't check for ','.\n\n if (next in spaceAfterDots && next !== ',') {\n return \"\\\\ldots\\\\,\";\n } else {\n return \"\\\\ldots\";\n }\n});\ndefineMacro(\"\\\\cdots\", function (context) {\n const next = context.future().text;\n\n if (next in spaceAfterDots) {\n return \"\\\\@cdots\\\\,\";\n } else {\n return \"\\\\@cdots\";\n }\n});\ndefineMacro(\"\\\\dotsb\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsm\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsi\", \"\\\\!\\\\cdots\"); // amsmath doesn't actually define \\dotsx, but \\dots followed by a macro\n// starting with \\DOTSX implies \\dotso, and then \\extra@ detects this case\n// and forces the added `\\,`.\n\ndefineMacro(\"\\\\dotsx\", \"\\\\ldots\\\\,\"); // \\let\\DOTSI\\relax\n// \\let\\DOTSB\\relax\n// \\let\\DOTSX\\relax\n\ndefineMacro(\"\\\\DOTSI\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSB\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSX\", \"\\\\relax\"); // Spacing, based on amsmath.sty's override of LaTeX defaults\n// \\DeclareRobustCommand{\\tmspace}[3]{%\n// \\ifmmode\\mskip#1#2\\else\\kern#1#3\\fi\\relax}\n\ndefineMacro(\"\\\\tmspace\", \"\\\\TextOrMath{\\\\kern#1#3}{\\\\mskip#1#2}\\\\relax\"); // \\renewcommand{\\,}{\\tmspace+\\thinmuskip{.1667em}}\n// TODO: math mode should use \\thinmuskip\n\ndefineMacro(\"\\\\,\", \"\\\\tmspace+{3mu}{.1667em}\"); // \\let\\thinspace\\,\n\ndefineMacro(\"\\\\thinspace\", \"\\\\,\"); // \\def\\>{\\mskip\\medmuskip}\n// \\renewcommand{\\:}{\\tmspace+\\medmuskip{.2222em}}\n// TODO: \\> and math mode of \\: should use \\medmuskip = 4mu plus 2mu minus 4mu\n\ndefineMacro(\"\\\\>\", \"\\\\mskip{4mu}\");\ndefineMacro(\"\\\\:\", \"\\\\tmspace+{4mu}{.2222em}\"); // \\let\\medspace\\:\n\ndefineMacro(\"\\\\medspace\", \"\\\\:\"); // \\renewcommand{\\;}{\\tmspace+\\thickmuskip{.2777em}}\n// TODO: math mode should use \\thickmuskip = 5mu plus 5mu\n\ndefineMacro(\"\\\\;\", \"\\\\tmspace+{5mu}{.2777em}\"); // \\let\\thickspace\\;\n\ndefineMacro(\"\\\\thickspace\", \"\\\\;\"); // \\renewcommand{\\!}{\\tmspace-\\thinmuskip{.1667em}}\n// TODO: math mode should use \\thinmuskip\n\ndefineMacro(\"\\\\!\", \"\\\\tmspace-{3mu}{.1667em}\"); // \\let\\negthinspace\\!\n\ndefineMacro(\"\\\\negthinspace\", \"\\\\!\"); // \\newcommand{\\negmedspace}{\\tmspace-\\medmuskip{.2222em}}\n// TODO: math mode should use \\medmuskip\n\ndefineMacro(\"\\\\negmedspace\", \"\\\\tmspace-{4mu}{.2222em}\"); // \\newcommand{\\negthickspace}{\\tmspace-\\thickmuskip{.2777em}}\n// TODO: math mode should use \\thickmuskip\n\ndefineMacro(\"\\\\negthickspace\", \"\\\\tmspace-{5mu}{.277em}\"); // \\def\\enspace{\\kern.5em }\n\ndefineMacro(\"\\\\enspace\", \"\\\\kern.5em \"); // \\def\\enskip{\\hskip.5em\\relax}\n\ndefineMacro(\"\\\\enskip\", \"\\\\hskip.5em\\\\relax\"); // \\def\\quad{\\hskip1em\\relax}\n\ndefineMacro(\"\\\\quad\", \"\\\\hskip1em\\\\relax\"); // \\def\\qquad{\\hskip2em\\relax}\n\ndefineMacro(\"\\\\qquad\", \"\\\\hskip2em\\\\relax\"); // \\tag@in@display form of \\tag\n\ndefineMacro(\"\\\\tag\", \"\\\\@ifstar\\\\tag@literal\\\\tag@paren\");\ndefineMacro(\"\\\\tag@paren\", \"\\\\tag@literal{({#1})}\");\ndefineMacro(\"\\\\tag@literal\", context => {\n if (context.macros.get(\"\\\\df@tag\")) {\n throw new src_ParseError(\"Multiple \\\\tag\");\n }\n\n return \"\\\\gdef\\\\df@tag{\\\\text{#1}}\";\n}); // \\renewcommand{\\bmod}{\\nonscript\\mskip-\\medmuskip\\mkern5mu\\mathbin\n// {\\operator@font mod}\\penalty900\n// \\mkern5mu\\nonscript\\mskip-\\medmuskip}\n// \\newcommand{\\pod}[1]{\\allowbreak\n// \\if@display\\mkern18mu\\else\\mkern8mu\\fi(#1)}\n// \\renewcommand{\\pmod}[1]{\\pod{{\\operator@font mod}\\mkern6mu#1}}\n// \\newcommand{\\mod}[1]{\\allowbreak\\if@display\\mkern18mu\n// \\else\\mkern12mu\\fi{\\operator@font mod}\\,\\,#1}\n// TODO: math mode should use \\medmuskip = 4mu plus 2mu minus 4mu\n\ndefineMacro(\"\\\\bmod\", \"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\" + \"\\\\mathbin{\\\\rm mod}\" + \"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\");\ndefineMacro(\"\\\\pod\", \"\\\\allowbreak\" + \"\\\\mathchoice{\\\\mkern18mu}{\\\\mkern8mu}{\\\\mkern8mu}{\\\\mkern8mu}(#1)\");\ndefineMacro(\"\\\\pmod\", \"\\\\pod{{\\\\rm mod}\\\\mkern6mu#1}\");\ndefineMacro(\"\\\\mod\", \"\\\\allowbreak\" + \"\\\\mathchoice{\\\\mkern18mu}{\\\\mkern12mu}{\\\\mkern12mu}{\\\\mkern12mu}\" + \"{\\\\rm mod}\\\\,\\\\,#1\"); //////////////////////////////////////////////////////////////////////\n// LaTeX source2e\n// \\expandafter\\let\\expandafter\\@normalcr\n// \\csname\\expandafter\\@gobble\\string\\\\ \\endcsname\n// \\DeclareRobustCommand\\newline{\\@normalcr\\relax}\n\ndefineMacro(\"\\\\newline\", \"\\\\\\\\\\\\relax\"); // \\def\\TeX{T\\kern-.1667em\\lower.5ex\\hbox{E}\\kern-.125emX\\@}\n// TODO: Doesn't normally work in math mode because \\@ fails. KaTeX doesn't\n// support \\@ yet, so that's omitted, and we add \\text so that the result\n// doesn't look funny in math mode.\n\ndefineMacro(\"\\\\TeX\", \"\\\\textrm{\\\\html@mathml{\" + \"T\\\\kern-.1667em\\\\raisebox{-.5ex}{E}\\\\kern-.125emX\" + \"}{TeX}}\"); // \\DeclareRobustCommand{\\LaTeX}{L\\kern-.36em%\n// {\\sbox\\z@ T%\n// \\vbox to\\ht\\z@{\\hbox{\\check@mathfonts\n// \\fontsize\\sf@size\\z@\n// \\math@fontsfalse\\selectfont\n// A}%\n// \\vss}%\n// }%\n// \\kern-.15em%\n// \\TeX}\n// This code aligns the top of the A with the T (from the perspective of TeX's\n// boxes, though visually the A appears to extend above slightly).\n// We compute the corresponding \\raisebox when A is rendered in \\normalsize\n// \\scriptstyle, which has a scale factor of 0.7 (see Options.js).\n\nconst latexRaiseA = makeEm(fontMetricsData['Main-Regular'][\"T\".charCodeAt(0)][1] - 0.7 * fontMetricsData['Main-Regular'][\"A\".charCodeAt(0)][1]);\ndefineMacro(\"\\\\LaTeX\", \"\\\\textrm{\\\\html@mathml{\" + (\"L\\\\kern-.36em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptstyle A}\") + \"\\\\kern-.15em\\\\TeX}{LaTeX}}\"); // New KaTeX logo based on tweaking LaTeX logo\n\ndefineMacro(\"\\\\KaTeX\", \"\\\\textrm{\\\\html@mathml{\" + (\"K\\\\kern-.17em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptstyle A}\") + \"\\\\kern-.15em\\\\TeX}{KaTeX}}\"); // \\DeclareRobustCommand\\hspace{\\@ifstar\\@hspacer\\@hspace}\n// \\def\\@hspace#1{\\hskip #1\\relax}\n// \\def\\@hspacer#1{\\vrule \\@width\\z@\\nobreak\n// \\hskip #1\\hskip \\z@skip}\n\ndefineMacro(\"\\\\hspace\", \"\\\\@ifstar\\\\@hspacer\\\\@hspace\");\ndefineMacro(\"\\\\@hspace\", \"\\\\hskip #1\\\\relax\");\ndefineMacro(\"\\\\@hspacer\", \"\\\\rule{0pt}{0pt}\\\\hskip #1\\\\relax\"); //////////////////////////////////////////////////////////////////////\n// mathtools.sty\n//\\providecommand\\ordinarycolon{:}\n\ndefineMacro(\"\\\\ordinarycolon\", \":\"); //\\def\\vcentcolon{\\mathrel{\\mathop\\ordinarycolon}}\n//TODO(edemaine): Not yet centered. Fix via \\raisebox or #726\n\ndefineMacro(\"\\\\vcentcolon\", \"\\\\mathrel{\\\\mathop\\\\ordinarycolon}\"); // \\providecommand*\\dblcolon{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}\n\ndefineMacro(\"\\\\dblcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-.9mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2237}}\"); // \\providecommand*\\coloneqq{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}\n\ndefineMacro(\"\\\\coloneqq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}=}}\" + \"{\\\\mathop{\\\\char\\\"2254}}\"); // ≔\n// \\providecommand*\\Coloneqq{\\dblcolon\\mathrel{\\mkern-1.2mu}=}\n\ndefineMacro(\"\\\\Coloneqq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}=}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"3d}}\"); // \\providecommand*\\coloneq{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\n\ndefineMacro(\"\\\\coloneq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"2212}}\"); // \\providecommand*\\Coloneq{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\n\ndefineMacro(\"\\\\Coloneq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"2212}}\"); // \\providecommand*\\eqqcolon{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}\n\ndefineMacro(\"\\\\eqqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2255}}\"); // ≕\n// \\providecommand*\\Eqqcolon{=\\mathrel{\\mkern-1.2mu}\\dblcolon}\n\ndefineMacro(\"\\\\Eqqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}\" + \"{\\\\mathop{\\\\char\\\"3d\\\\char\\\"2237}}\"); // \\providecommand*\\eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}\n\ndefineMacro(\"\\\\eqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2239}}\"); // \\providecommand*\\Eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}\n\ndefineMacro(\"\\\\Eqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}\" + \"{\\\\mathop{\\\\char\\\"2212\\\\char\\\"2237}}\"); // \\providecommand*\\colonapprox{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}\n\ndefineMacro(\"\\\\colonapprox\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"2248}}\"); // \\providecommand*\\Colonapprox{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}\n\ndefineMacro(\"\\\\Colonapprox\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"2248}}\"); // \\providecommand*\\colonsim{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}\n\ndefineMacro(\"\\\\colonsim\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"223c}}\"); // \\providecommand*\\Colonsim{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}\n\ndefineMacro(\"\\\\Colonsim\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"223c}}\"); // Some Unicode characters are implemented with macros to mathtools functions.\n\ndefineMacro(\"\\u2237\", \"\\\\dblcolon\"); // ::\n\ndefineMacro(\"\\u2239\", \"\\\\eqcolon\"); // -:\n\ndefineMacro(\"\\u2254\", \"\\\\coloneqq\"); // :=\n\ndefineMacro(\"\\u2255\", \"\\\\eqqcolon\"); // =:\n\ndefineMacro(\"\\u2A74\", \"\\\\Coloneqq\"); // ::=\n//////////////////////////////////////////////////////////////////////\n// colonequals.sty\n// Alternate names for mathtools's macros:\n\ndefineMacro(\"\\\\ratio\", \"\\\\vcentcolon\");\ndefineMacro(\"\\\\coloncolon\", \"\\\\dblcolon\");\ndefineMacro(\"\\\\colonequals\", \"\\\\coloneqq\");\ndefineMacro(\"\\\\coloncolonequals\", \"\\\\Coloneqq\");\ndefineMacro(\"\\\\equalscolon\", \"\\\\eqqcolon\");\ndefineMacro(\"\\\\equalscoloncolon\", \"\\\\Eqqcolon\");\ndefineMacro(\"\\\\colonminus\", \"\\\\coloneq\");\ndefineMacro(\"\\\\coloncolonminus\", \"\\\\Coloneq\");\ndefineMacro(\"\\\\minuscolon\", \"\\\\eqcolon\");\ndefineMacro(\"\\\\minuscoloncolon\", \"\\\\Eqcolon\"); // \\colonapprox name is same in mathtools and colonequals.\n\ndefineMacro(\"\\\\coloncolonapprox\", \"\\\\Colonapprox\"); // \\colonsim name is same in mathtools and colonequals.\n\ndefineMacro(\"\\\\coloncolonsim\", \"\\\\Colonsim\"); // Additional macros, implemented by analogy with mathtools definitions:\n\ndefineMacro(\"\\\\simcolon\", \"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\");\ndefineMacro(\"\\\\simcoloncolon\", \"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\");\ndefineMacro(\"\\\\approxcolon\", \"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\");\ndefineMacro(\"\\\\approxcoloncolon\", \"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\"); // Present in newtxmath, pxfonts and txfonts\n\ndefineMacro(\"\\\\notni\", \"\\\\html@mathml{\\\\not\\\\ni}{\\\\mathrel{\\\\char`\\u220C}}\");\ndefineMacro(\"\\\\limsup\", \"\\\\DOTSB\\\\operatorname*{lim\\\\,sup}\");\ndefineMacro(\"\\\\liminf\", \"\\\\DOTSB\\\\operatorname*{lim\\\\,inf}\"); //////////////////////////////////////////////////////////////////////\n// From amsopn.sty\n\ndefineMacro(\"\\\\injlim\", \"\\\\DOTSB\\\\operatorname*{inj\\\\,lim}\");\ndefineMacro(\"\\\\projlim\", \"\\\\DOTSB\\\\operatorname*{proj\\\\,lim}\");\ndefineMacro(\"\\\\varlimsup\", \"\\\\DOTSB\\\\operatorname*{\\\\overline{lim}}\");\ndefineMacro(\"\\\\varliminf\", \"\\\\DOTSB\\\\operatorname*{\\\\underline{lim}}\");\ndefineMacro(\"\\\\varinjlim\", \"\\\\DOTSB\\\\operatorname*{\\\\underrightarrow{lim}}\");\ndefineMacro(\"\\\\varprojlim\", \"\\\\DOTSB\\\\operatorname*{\\\\underleftarrow{lim}}\"); //////////////////////////////////////////////////////////////////////\n// MathML alternates for KaTeX glyphs in the Unicode private area\n\ndefineMacro(\"\\\\gvertneqq\", \"\\\\html@mathml{\\\\@gvertneqq}{\\u2269}\");\ndefineMacro(\"\\\\lvertneqq\", \"\\\\html@mathml{\\\\@lvertneqq}{\\u2268}\");\ndefineMacro(\"\\\\ngeqq\", \"\\\\html@mathml{\\\\@ngeqq}{\\u2271}\");\ndefineMacro(\"\\\\ngeqslant\", \"\\\\html@mathml{\\\\@ngeqslant}{\\u2271}\");\ndefineMacro(\"\\\\nleqq\", \"\\\\html@mathml{\\\\@nleqq}{\\u2270}\");\ndefineMacro(\"\\\\nleqslant\", \"\\\\html@mathml{\\\\@nleqslant}{\\u2270}\");\ndefineMacro(\"\\\\nshortmid\", \"\\\\html@mathml{\\\\@nshortmid}{∤}\");\ndefineMacro(\"\\\\nshortparallel\", \"\\\\html@mathml{\\\\@nshortparallel}{∦}\");\ndefineMacro(\"\\\\nsubseteqq\", \"\\\\html@mathml{\\\\@nsubseteqq}{\\u2288}\");\ndefineMacro(\"\\\\nsupseteqq\", \"\\\\html@mathml{\\\\@nsupseteqq}{\\u2289}\");\ndefineMacro(\"\\\\varsubsetneq\", \"\\\\html@mathml{\\\\@varsubsetneq}{⊊}\");\ndefineMacro(\"\\\\varsubsetneqq\", \"\\\\html@mathml{\\\\@varsubsetneqq}{⫋}\");\ndefineMacro(\"\\\\varsupsetneq\", \"\\\\html@mathml{\\\\@varsupsetneq}{⊋}\");\ndefineMacro(\"\\\\varsupsetneqq\", \"\\\\html@mathml{\\\\@varsupsetneqq}{⫌}\");\ndefineMacro(\"\\\\imath\", \"\\\\html@mathml{\\\\@imath}{\\u0131}\");\ndefineMacro(\"\\\\jmath\", \"\\\\html@mathml{\\\\@jmath}{\\u0237}\"); //////////////////////////////////////////////////////////////////////\n// stmaryrd and semantic\n// The stmaryrd and semantic packages render the next four items by calling a\n// glyph. Those glyphs do not exist in the KaTeX fonts. Hence the macros.\n\ndefineMacro(\"\\\\llbracket\", \"\\\\html@mathml{\" + \"\\\\mathopen{[\\\\mkern-3.2mu[}}\" + \"{\\\\mathopen{\\\\char`\\u27e6}}\");\ndefineMacro(\"\\\\rrbracket\", \"\\\\html@mathml{\" + \"\\\\mathclose{]\\\\mkern-3.2mu]}}\" + \"{\\\\mathclose{\\\\char`\\u27e7}}\");\ndefineMacro(\"\\u27e6\", \"\\\\llbracket\"); // blackboard bold [\n\ndefineMacro(\"\\u27e7\", \"\\\\rrbracket\"); // blackboard bold ]\n\ndefineMacro(\"\\\\lBrace\", \"\\\\html@mathml{\" + \"\\\\mathopen{\\\\{\\\\mkern-3.2mu[}}\" + \"{\\\\mathopen{\\\\char`\\u2983}}\");\ndefineMacro(\"\\\\rBrace\", \"\\\\html@mathml{\" + \"\\\\mathclose{]\\\\mkern-3.2mu\\\\}}}\" + \"{\\\\mathclose{\\\\char`\\u2984}}\");\ndefineMacro(\"\\u2983\", \"\\\\lBrace\"); // blackboard bold {\n\ndefineMacro(\"\\u2984\", \"\\\\rBrace\"); // blackboard bold }\n// TODO: Create variable sized versions of the last two items. I believe that\n// will require new font glyphs.\n// The stmaryrd function `\\minuso` provides a \"Plimsoll\" symbol that\n// superimposes the characters \\circ and \\mathminus. Used in chemistry.\n\ndefineMacro(\"\\\\minuso\", \"\\\\mathbin{\\\\html@mathml{\" + \"{\\\\mathrlap{\\\\mathchoice{\\\\kern{0.145em}}{\\\\kern{0.145em}}\" + \"{\\\\kern{0.1015em}}{\\\\kern{0.0725em}}\\\\circ}{-}}}\" + \"{\\\\char`⦵}}\");\ndefineMacro(\"⦵\", \"\\\\minuso\"); //////////////////////////////////////////////////////////////////////\n// texvc.sty\n// The texvc package contains macros available in mediawiki pages.\n// We omit the functions deprecated at\n// https://en.wikipedia.org/wiki/Help:Displaying_a_formula#Deprecated_syntax\n// We also omit texvc's \\O, which conflicts with \\text{\\O}\n\ndefineMacro(\"\\\\darr\", \"\\\\downarrow\");\ndefineMacro(\"\\\\dArr\", \"\\\\Downarrow\");\ndefineMacro(\"\\\\Darr\", \"\\\\Downarrow\");\ndefineMacro(\"\\\\lang\", \"\\\\langle\");\ndefineMacro(\"\\\\rang\", \"\\\\rangle\");\ndefineMacro(\"\\\\uarr\", \"\\\\uparrow\");\ndefineMacro(\"\\\\uArr\", \"\\\\Uparrow\");\ndefineMacro(\"\\\\Uarr\", \"\\\\Uparrow\");\ndefineMacro(\"\\\\N\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\\\R\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Z\", \"\\\\mathbb{Z}\");\ndefineMacro(\"\\\\alef\", \"\\\\aleph\");\ndefineMacro(\"\\\\alefsym\", \"\\\\aleph\");\ndefineMacro(\"\\\\Alpha\", \"\\\\mathrm{A}\");\ndefineMacro(\"\\\\Beta\", \"\\\\mathrm{B}\");\ndefineMacro(\"\\\\bull\", \"\\\\bullet\");\ndefineMacro(\"\\\\Chi\", \"\\\\mathrm{X}\");\ndefineMacro(\"\\\\clubs\", \"\\\\clubsuit\");\ndefineMacro(\"\\\\cnums\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\\\Complex\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\\\Dagger\", \"\\\\ddagger\");\ndefineMacro(\"\\\\diamonds\", \"\\\\diamondsuit\");\ndefineMacro(\"\\\\empty\", \"\\\\emptyset\");\ndefineMacro(\"\\\\Epsilon\", \"\\\\mathrm{E}\");\ndefineMacro(\"\\\\Eta\", \"\\\\mathrm{H}\");\ndefineMacro(\"\\\\exist\", \"\\\\exists\");\ndefineMacro(\"\\\\harr\", \"\\\\leftrightarrow\");\ndefineMacro(\"\\\\hArr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Harr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\hearts\", \"\\\\heartsuit\");\ndefineMacro(\"\\\\image\", \"\\\\Im\");\ndefineMacro(\"\\\\infin\", \"\\\\infty\");\ndefineMacro(\"\\\\Iota\", \"\\\\mathrm{I}\");\ndefineMacro(\"\\\\isin\", \"\\\\in\");\ndefineMacro(\"\\\\Kappa\", \"\\\\mathrm{K}\");\ndefineMacro(\"\\\\larr\", \"\\\\leftarrow\");\ndefineMacro(\"\\\\lArr\", \"\\\\Leftarrow\");\ndefineMacro(\"\\\\Larr\", \"\\\\Leftarrow\");\ndefineMacro(\"\\\\lrarr\", \"\\\\leftrightarrow\");\ndefineMacro(\"\\\\lrArr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Lrarr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Mu\", \"\\\\mathrm{M}\");\ndefineMacro(\"\\\\natnums\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\\\Nu\", \"\\\\mathrm{N}\");\ndefineMacro(\"\\\\Omicron\", \"\\\\mathrm{O}\");\ndefineMacro(\"\\\\plusmn\", \"\\\\pm\");\ndefineMacro(\"\\\\rarr\", \"\\\\rightarrow\");\ndefineMacro(\"\\\\rArr\", \"\\\\Rightarrow\");\ndefineMacro(\"\\\\Rarr\", \"\\\\Rightarrow\");\ndefineMacro(\"\\\\real\", \"\\\\Re\");\ndefineMacro(\"\\\\reals\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Reals\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Rho\", \"\\\\mathrm{P}\");\ndefineMacro(\"\\\\sdot\", \"\\\\cdot\");\ndefineMacro(\"\\\\sect\", \"\\\\S\");\ndefineMacro(\"\\\\spades\", \"\\\\spadesuit\");\ndefineMacro(\"\\\\sub\", \"\\\\subset\");\ndefineMacro(\"\\\\sube\", \"\\\\subseteq\");\ndefineMacro(\"\\\\supe\", \"\\\\supseteq\");\ndefineMacro(\"\\\\Tau\", \"\\\\mathrm{T}\");\ndefineMacro(\"\\\\thetasym\", \"\\\\vartheta\"); // TODO: defineMacro(\"\\\\varcoppa\", \"\\\\\\mbox{\\\\coppa}\");\n\ndefineMacro(\"\\\\weierp\", \"\\\\wp\");\ndefineMacro(\"\\\\Zeta\", \"\\\\mathrm{Z}\"); //////////////////////////////////////////////////////////////////////\n// statmath.sty\n// https://ctan.math.illinois.edu/macros/latex/contrib/statmath/statmath.pdf\n\ndefineMacro(\"\\\\argmin\", \"\\\\DOTSB\\\\operatorname*{arg\\\\,min}\");\ndefineMacro(\"\\\\argmax\", \"\\\\DOTSB\\\\operatorname*{arg\\\\,max}\");\ndefineMacro(\"\\\\plim\", \"\\\\DOTSB\\\\mathop{\\\\operatorname{plim}}\\\\limits\"); //////////////////////////////////////////////////////////////////////\n// braket.sty\n// http://ctan.math.washington.edu/tex-archive/macros/latex/contrib/braket/braket.pdf\n\ndefineMacro(\"\\\\bra\", \"\\\\mathinner{\\\\langle{#1}|}\");\ndefineMacro(\"\\\\ket\", \"\\\\mathinner{|{#1}\\\\rangle}\");\ndefineMacro(\"\\\\braket\", \"\\\\mathinner{\\\\langle{#1}\\\\rangle}\");\ndefineMacro(\"\\\\Bra\", \"\\\\left\\\\langle#1\\\\right|\");\ndefineMacro(\"\\\\Ket\", \"\\\\left|#1\\\\right\\\\rangle\");\n\nconst braketHelper = one => context => {\n const left = context.consumeArg().tokens;\n const middle = context.consumeArg().tokens;\n const middleDouble = context.consumeArg().tokens;\n const right = context.consumeArg().tokens;\n const oldMiddle = context.macros.get(\"|\");\n const oldMiddleDouble = context.macros.get(\"\\\\|\");\n context.macros.beginGroup();\n\n const midMacro = double => context => {\n if (one) {\n // Only modify the first instance of | or \\|\n context.macros.set(\"|\", oldMiddle);\n\n if (middleDouble.length) {\n context.macros.set(\"\\\\|\", oldMiddleDouble);\n }\n }\n\n let doubled = double;\n\n if (!double && middleDouble.length) {\n // Mimic \\@ifnextchar\n const nextToken = context.future();\n\n if (nextToken.text === \"|\") {\n context.popToken();\n doubled = true;\n }\n }\n\n return {\n tokens: doubled ? middleDouble : middle,\n numArgs: 0\n };\n };\n\n context.macros.set(\"|\", midMacro(false));\n\n if (middleDouble.length) {\n context.macros.set(\"\\\\|\", midMacro(true));\n }\n\n const arg = context.consumeArg().tokens;\n const expanded = context.expandTokens([...right, ...arg, ...left // reversed\n ]);\n context.macros.endGroup();\n return {\n tokens: expanded.reverse(),\n numArgs: 0\n };\n};\n\ndefineMacro(\"\\\\bra@ket\", braketHelper(false));\ndefineMacro(\"\\\\bra@set\", braketHelper(true));\ndefineMacro(\"\\\\Braket\", \"\\\\bra@ket{\\\\left\\\\langle}\" + \"{\\\\,\\\\middle\\\\vert\\\\,}{\\\\,\\\\middle\\\\vert\\\\,}{\\\\right\\\\rangle}\");\ndefineMacro(\"\\\\Set\", \"\\\\bra@set{\\\\left\\\\{\\\\:}\" + \"{\\\\;\\\\middle\\\\vert\\\\;}{\\\\;\\\\middle\\\\Vert\\\\;}{\\\\:\\\\right\\\\}}\");\ndefineMacro(\"\\\\set\", \"\\\\bra@set{\\\\{\\\\,}{\\\\mid}{}{\\\\,\\\\}}\"); // has no support for special || or \\|\n//////////////////////////////////////////////////////////////////////\n// actuarialangle.dtx\n\ndefineMacro(\"\\\\angln\", \"{\\\\angl n}\"); // Custom Khan Academy colors, should be moved to an optional package\n\ndefineMacro(\"\\\\blue\", \"\\\\textcolor{##6495ed}{#1}\");\ndefineMacro(\"\\\\orange\", \"\\\\textcolor{##ffa500}{#1}\");\ndefineMacro(\"\\\\pink\", \"\\\\textcolor{##ff00af}{#1}\");\ndefineMacro(\"\\\\red\", \"\\\\textcolor{##df0030}{#1}\");\ndefineMacro(\"\\\\green\", \"\\\\textcolor{##28ae7b}{#1}\");\ndefineMacro(\"\\\\gray\", \"\\\\textcolor{gray}{#1}\");\ndefineMacro(\"\\\\purple\", \"\\\\textcolor{##9d38bd}{#1}\");\ndefineMacro(\"\\\\blueA\", \"\\\\textcolor{##ccfaff}{#1}\");\ndefineMacro(\"\\\\blueB\", \"\\\\textcolor{##80f6ff}{#1}\");\ndefineMacro(\"\\\\blueC\", \"\\\\textcolor{##63d9ea}{#1}\");\ndefineMacro(\"\\\\blueD\", \"\\\\textcolor{##11accd}{#1}\");\ndefineMacro(\"\\\\blueE\", \"\\\\textcolor{##0c7f99}{#1}\");\ndefineMacro(\"\\\\tealA\", \"\\\\textcolor{##94fff5}{#1}\");\ndefineMacro(\"\\\\tealB\", \"\\\\textcolor{##26edd5}{#1}\");\ndefineMacro(\"\\\\tealC\", \"\\\\textcolor{##01d1c1}{#1}\");\ndefineMacro(\"\\\\tealD\", \"\\\\textcolor{##01a995}{#1}\");\ndefineMacro(\"\\\\tealE\", \"\\\\textcolor{##208170}{#1}\");\ndefineMacro(\"\\\\greenA\", \"\\\\textcolor{##b6ffb0}{#1}\");\ndefineMacro(\"\\\\greenB\", \"\\\\textcolor{##8af281}{#1}\");\ndefineMacro(\"\\\\greenC\", \"\\\\textcolor{##74cf70}{#1}\");\ndefineMacro(\"\\\\greenD\", \"\\\\textcolor{##1fab54}{#1}\");\ndefineMacro(\"\\\\greenE\", \"\\\\textcolor{##0d923f}{#1}\");\ndefineMacro(\"\\\\goldA\", \"\\\\textcolor{##ffd0a9}{#1}\");\ndefineMacro(\"\\\\goldB\", \"\\\\textcolor{##ffbb71}{#1}\");\ndefineMacro(\"\\\\goldC\", \"\\\\textcolor{##ff9c39}{#1}\");\ndefineMacro(\"\\\\goldD\", \"\\\\textcolor{##e07d10}{#1}\");\ndefineMacro(\"\\\\goldE\", \"\\\\textcolor{##a75a05}{#1}\");\ndefineMacro(\"\\\\redA\", \"\\\\textcolor{##fca9a9}{#1}\");\ndefineMacro(\"\\\\redB\", \"\\\\textcolor{##ff8482}{#1}\");\ndefineMacro(\"\\\\redC\", \"\\\\textcolor{##f9685d}{#1}\");\ndefineMacro(\"\\\\redD\", \"\\\\textcolor{##e84d39}{#1}\");\ndefineMacro(\"\\\\redE\", \"\\\\textcolor{##bc2612}{#1}\");\ndefineMacro(\"\\\\maroonA\", \"\\\\textcolor{##ffbde0}{#1}\");\ndefineMacro(\"\\\\maroonB\", \"\\\\textcolor{##ff92c6}{#1}\");\ndefineMacro(\"\\\\maroonC\", \"\\\\textcolor{##ed5fa6}{#1}\");\ndefineMacro(\"\\\\maroonD\", \"\\\\textcolor{##ca337c}{#1}\");\ndefineMacro(\"\\\\maroonE\", \"\\\\textcolor{##9e034e}{#1}\");\ndefineMacro(\"\\\\purpleA\", \"\\\\textcolor{##ddd7ff}{#1}\");\ndefineMacro(\"\\\\purpleB\", \"\\\\textcolor{##c6b9fc}{#1}\");\ndefineMacro(\"\\\\purpleC\", \"\\\\textcolor{##aa87ff}{#1}\");\ndefineMacro(\"\\\\purpleD\", \"\\\\textcolor{##7854ab}{#1}\");\ndefineMacro(\"\\\\purpleE\", \"\\\\textcolor{##543b78}{#1}\");\ndefineMacro(\"\\\\mintA\", \"\\\\textcolor{##f5f9e8}{#1}\");\ndefineMacro(\"\\\\mintB\", \"\\\\textcolor{##edf2df}{#1}\");\ndefineMacro(\"\\\\mintC\", \"\\\\textcolor{##e0e5cc}{#1}\");\ndefineMacro(\"\\\\grayA\", \"\\\\textcolor{##f6f7f7}{#1}\");\ndefineMacro(\"\\\\grayB\", \"\\\\textcolor{##f0f1f2}{#1}\");\ndefineMacro(\"\\\\grayC\", \"\\\\textcolor{##e3e5e6}{#1}\");\ndefineMacro(\"\\\\grayD\", \"\\\\textcolor{##d6d8da}{#1}\");\ndefineMacro(\"\\\\grayE\", \"\\\\textcolor{##babec2}{#1}\");\ndefineMacro(\"\\\\grayF\", \"\\\\textcolor{##888d93}{#1}\");\ndefineMacro(\"\\\\grayG\", \"\\\\textcolor{##626569}{#1}\");\ndefineMacro(\"\\\\grayH\", \"\\\\textcolor{##3b3e40}{#1}\");\ndefineMacro(\"\\\\grayI\", \"\\\\textcolor{##21242c}{#1}\");\ndefineMacro(\"\\\\kaBlue\", \"\\\\textcolor{##314453}{#1}\");\ndefineMacro(\"\\\\kaGreen\", \"\\\\textcolor{##71B307}{#1}\");\n;// CONCATENATED MODULE: ./src/MacroExpander.js\n/**\n * This file contains the “gullet” where macros are expanded\n * until only non-macro tokens remain.\n */\n\n\n\n\n\n\n\n// List of commands that act like macros but aren't defined as a macro,\n// function, or symbol. Used in `isDefined`.\nconst implicitCommands = {\n \"^\": true,\n // Parser.js\n \"_\": true,\n // Parser.js\n \"\\\\limits\": true,\n // Parser.js\n \"\\\\nolimits\": true // Parser.js\n\n};\nclass MacroExpander {\n constructor(input, settings, mode) {\n this.settings = void 0;\n this.expansionCount = void 0;\n this.lexer = void 0;\n this.macros = void 0;\n this.stack = void 0;\n this.mode = void 0;\n this.settings = settings;\n this.expansionCount = 0;\n this.feed(input); // Make new global namespace\n\n this.macros = new Namespace(src_macros, settings.macros);\n this.mode = mode;\n this.stack = []; // contains tokens in REVERSE order\n }\n /**\n * Feed a new input string to the same MacroExpander\n * (with existing macros etc.).\n */\n\n\n feed(input) {\n this.lexer = new Lexer(input, this.settings);\n }\n /**\n * Switches between \"text\" and \"math\" modes.\n */\n\n\n switchMode(newMode) {\n this.mode = newMode;\n }\n /**\n * Start a new group nesting within all namespaces.\n */\n\n\n beginGroup() {\n this.macros.beginGroup();\n }\n /**\n * End current group nesting within all namespaces.\n */\n\n\n endGroup() {\n this.macros.endGroup();\n }\n /**\n * Ends all currently nested groups (if any), restoring values before the\n * groups began. Useful in case of an error in the middle of parsing.\n */\n\n\n endGroups() {\n this.macros.endGroups();\n }\n /**\n * Returns the topmost token on the stack, without expanding it.\n * Similar in behavior to TeX's `\\futurelet`.\n */\n\n\n future() {\n if (this.stack.length === 0) {\n this.pushToken(this.lexer.lex());\n }\n\n return this.stack[this.stack.length - 1];\n }\n /**\n * Remove and return the next unexpanded token.\n */\n\n\n popToken() {\n this.future(); // ensure non-empty stack\n\n return this.stack.pop();\n }\n /**\n * Add a given token to the token stack. In particular, this get be used\n * to put back a token returned from one of the other methods.\n */\n\n\n pushToken(token) {\n this.stack.push(token);\n }\n /**\n * Append an array of tokens to the token stack.\n */\n\n\n pushTokens(tokens) {\n this.stack.push(...tokens);\n }\n /**\n * Find an macro argument without expanding tokens and append the array of\n * tokens to the token stack. Uses Token as a container for the result.\n */\n\n\n scanArgument(isOptional) {\n let start;\n let end;\n let tokens;\n\n if (isOptional) {\n this.consumeSpaces(); // \\@ifnextchar gobbles any space following it\n\n if (this.future().text !== \"[\") {\n return null;\n }\n\n start = this.popToken(); // don't include [ in tokens\n\n ({\n tokens,\n end\n } = this.consumeArg([\"]\"]));\n } else {\n ({\n tokens,\n start,\n end\n } = this.consumeArg());\n } // indicate the end of an argument\n\n\n this.pushToken(new Token(\"EOF\", end.loc));\n this.pushTokens(tokens);\n return start.range(end, \"\");\n }\n /**\n * Consume all following space tokens, without expansion.\n */\n\n\n consumeSpaces() {\n for (;;) {\n const token = this.future();\n\n if (token.text === \" \") {\n this.stack.pop();\n } else {\n break;\n }\n }\n }\n /**\n * Consume an argument from the token stream, and return the resulting array\n * of tokens and start/end token.\n */\n\n\n consumeArg(delims) {\n // The argument for a delimited parameter is the shortest (possibly\n // empty) sequence of tokens with properly nested {...} groups that is\n // followed ... by this particular list of non-parameter tokens.\n // The argument for an undelimited parameter is the next nonblank\n // token, unless that token is ‘{’, when the argument will be the\n // entire {...} group that follows.\n const tokens = [];\n const isDelimited = delims && delims.length > 0;\n\n if (!isDelimited) {\n // Ignore spaces between arguments. As the TeXbook says:\n // \"After you have said ‘\\def\\row#1#2{...}’, you are allowed to\n // put spaces between the arguments (e.g., ‘\\row x n’), because\n // TeX doesn’t use single spaces as undelimited arguments.\"\n this.consumeSpaces();\n }\n\n const start = this.future();\n let tok;\n let depth = 0;\n let match = 0;\n\n do {\n tok = this.popToken();\n tokens.push(tok);\n\n if (tok.text === \"{\") {\n ++depth;\n } else if (tok.text === \"}\") {\n --depth;\n\n if (depth === -1) {\n throw new src_ParseError(\"Extra }\", tok);\n }\n } else if (tok.text === \"EOF\") {\n throw new src_ParseError(\"Unexpected end of input in a macro argument\" + \", expected '\" + (delims && isDelimited ? delims[match] : \"}\") + \"'\", tok);\n }\n\n if (delims && isDelimited) {\n if ((depth === 0 || depth === 1 && delims[match] === \"{\") && tok.text === delims[match]) {\n ++match;\n\n if (match === delims.length) {\n // don't include delims in tokens\n tokens.splice(-match, match);\n break;\n }\n } else {\n match = 0;\n }\n }\n } while (depth !== 0 || isDelimited); // If the argument found ... has the form ‘{}’,\n // ... the outermost braces enclosing the argument are removed\n\n\n if (start.text === \"{\" && tokens[tokens.length - 1].text === \"}\") {\n tokens.pop();\n tokens.shift();\n }\n\n tokens.reverse(); // to fit in with stack order\n\n return {\n tokens,\n start,\n end: tok\n };\n }\n /**\n * Consume the specified number of (delimited) arguments from the token\n * stream and return the resulting array of arguments.\n */\n\n\n consumeArgs(numArgs, delimiters) {\n if (delimiters) {\n if (delimiters.length !== numArgs + 1) {\n throw new src_ParseError(\"The length of delimiters doesn't match the number of args!\");\n }\n\n const delims = delimiters[0];\n\n for (let i = 0; i < delims.length; i++) {\n const tok = this.popToken();\n\n if (delims[i] !== tok.text) {\n throw new src_ParseError(\"Use of the macro doesn't match its definition\", tok);\n }\n }\n }\n\n const args = [];\n\n for (let i = 0; i < numArgs; i++) {\n args.push(this.consumeArg(delimiters && delimiters[i + 1]).tokens);\n }\n\n return args;\n }\n /**\n * Increment `expansionCount` by the specified amount.\n * Throw an error if it exceeds `maxExpand`.\n */\n\n\n countExpansion(amount) {\n this.expansionCount += amount;\n\n if (this.expansionCount > this.settings.maxExpand) {\n throw new src_ParseError(\"Too many expansions: infinite loop or \" + \"need to increase maxExpand setting\");\n }\n }\n /**\n * Expand the next token only once if possible.\n *\n * If the token is expanded, the resulting tokens will be pushed onto\n * the stack in reverse order, and the number of such tokens will be\n * returned. This number might be zero or positive.\n *\n * If not, the return value is `false`, and the next token remains at the\n * top of the stack.\n *\n * In either case, the next token will be on the top of the stack,\n * or the stack will be empty (in case of empty expansion\n * and no other tokens).\n *\n * Used to implement `expandAfterFuture` and `expandNextToken`.\n *\n * If expandableOnly, only expandable tokens are expanded and\n * an undefined control sequence results in an error.\n */\n\n\n expandOnce(expandableOnly) {\n const topToken = this.popToken();\n const name = topToken.text;\n const expansion = !topToken.noexpand ? this._getExpansion(name) : null;\n\n if (expansion == null || expandableOnly && expansion.unexpandable) {\n if (expandableOnly && expansion == null && name[0] === \"\\\\\" && !this.isDefined(name)) {\n throw new src_ParseError(\"Undefined control sequence: \" + name);\n }\n\n this.pushToken(topToken);\n return false;\n }\n\n this.countExpansion(1);\n let tokens = expansion.tokens;\n const args = this.consumeArgs(expansion.numArgs, expansion.delimiters);\n\n if (expansion.numArgs) {\n // paste arguments in place of the placeholders\n tokens = tokens.slice(); // make a shallow copy\n\n for (let i = tokens.length - 1; i >= 0; --i) {\n let tok = tokens[i];\n\n if (tok.text === \"#\") {\n if (i === 0) {\n throw new src_ParseError(\"Incomplete placeholder at end of macro body\", tok);\n }\n\n tok = tokens[--i]; // next token on stack\n\n if (tok.text === \"#\") {\n // ## → #\n tokens.splice(i + 1, 1); // drop first #\n } else if (/^[1-9]$/.test(tok.text)) {\n // replace the placeholder with the indicated argument\n tokens.splice(i, 2, ...args[+tok.text - 1]);\n } else {\n throw new src_ParseError(\"Not a valid argument number\", tok);\n }\n }\n }\n } // Concatenate expansion onto top of stack.\n\n\n this.pushTokens(tokens);\n return tokens.length;\n }\n /**\n * Expand the next token only once (if possible), and return the resulting\n * top token on the stack (without removing anything from the stack).\n * Similar in behavior to TeX's `\\expandafter\\futurelet`.\n * Equivalent to expandOnce() followed by future().\n */\n\n\n expandAfterFuture() {\n this.expandOnce();\n return this.future();\n }\n /**\n * Recursively expand first token, then return first non-expandable token.\n */\n\n\n expandNextToken() {\n for (;;) {\n if (this.expandOnce() === false) {\n // fully expanded\n const token = this.stack.pop(); // the token after \\noexpand is interpreted as if its meaning\n // were ‘\\relax’\n\n if (token.treatAsRelax) {\n token.text = \"\\\\relax\";\n }\n\n return token;\n }\n } // Flow unable to figure out that this pathway is impossible.\n // https://github.com/facebook/flow/issues/4808\n\n\n throw new Error(); // eslint-disable-line no-unreachable\n }\n /**\n * Fully expand the given macro name and return the resulting list of\n * tokens, or return `undefined` if no such macro is defined.\n */\n\n\n expandMacro(name) {\n return this.macros.has(name) ? this.expandTokens([new Token(name)]) : undefined;\n }\n /**\n * Fully expand the given token stream and return the resulting list of\n * tokens. Note that the input tokens are in reverse order, but the\n * output tokens are in forward order.\n */\n\n\n expandTokens(tokens) {\n const output = [];\n const oldStackLength = this.stack.length;\n this.pushTokens(tokens);\n\n while (this.stack.length > oldStackLength) {\n // Expand only expandable tokens\n if (this.expandOnce(true) === false) {\n // fully expanded\n const token = this.stack.pop();\n\n if (token.treatAsRelax) {\n // the expansion of \\noexpand is the token itself\n token.noexpand = false;\n token.treatAsRelax = false;\n }\n\n output.push(token);\n }\n } // Count all of these tokens as additional expansions, to prevent\n // exponential blowup from linearly many \\edef's.\n\n\n this.countExpansion(output.length);\n return output;\n }\n /**\n * Fully expand the given macro name and return the result as a string,\n * or return `undefined` if no such macro is defined.\n */\n\n\n expandMacroAsText(name) {\n const tokens = this.expandMacro(name);\n\n if (tokens) {\n return tokens.map(token => token.text).join(\"\");\n } else {\n return tokens;\n }\n }\n /**\n * Returns the expanded macro as a reversed array of tokens and a macro\n * argument count. Or returns `null` if no such macro.\n */\n\n\n _getExpansion(name) {\n const definition = this.macros.get(name);\n\n if (definition == null) {\n // mainly checking for undefined here\n return definition;\n } // If a single character has an associated catcode other than 13\n // (active character), then don't expand it.\n\n\n if (name.length === 1) {\n const catcode = this.lexer.catcodes[name];\n\n if (catcode != null && catcode !== 13) {\n return;\n }\n }\n\n const expansion = typeof definition === \"function\" ? definition(this) : definition;\n\n if (typeof expansion === \"string\") {\n let numArgs = 0;\n\n if (expansion.indexOf(\"#\") !== -1) {\n const stripped = expansion.replace(/##/g, \"\");\n\n while (stripped.indexOf(\"#\" + (numArgs + 1)) !== -1) {\n ++numArgs;\n }\n }\n\n const bodyLexer = new Lexer(expansion, this.settings);\n const tokens = [];\n let tok = bodyLexer.lex();\n\n while (tok.text !== \"EOF\") {\n tokens.push(tok);\n tok = bodyLexer.lex();\n }\n\n tokens.reverse(); // to fit in with stack using push and pop\n\n const expanded = {\n tokens,\n numArgs\n };\n return expanded;\n }\n\n return expansion;\n }\n /**\n * Determine whether a command is currently \"defined\" (has some\n * functionality), meaning that it's a macro (in the current group),\n * a function, a symbol, or one of the special commands listed in\n * `implicitCommands`.\n */\n\n\n isDefined(name) {\n return this.macros.has(name) || src_functions.hasOwnProperty(name) || src_symbols.math.hasOwnProperty(name) || src_symbols.text.hasOwnProperty(name) || implicitCommands.hasOwnProperty(name);\n }\n /**\n * Determine whether a command is expandable.\n */\n\n\n isExpandable(name) {\n const macro = this.macros.get(name);\n return macro != null ? typeof macro === \"string\" || typeof macro === \"function\" || !macro.unexpandable : src_functions.hasOwnProperty(name) && !src_functions[name].primitive;\n }\n\n}\n;// CONCATENATED MODULE: ./src/unicodeSupOrSub.js\n// Helpers for Parser.js handling of Unicode (sub|super)script characters.\nconst unicodeSubRegEx = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/;\nconst uSubsAndSups = Object.freeze({\n '₊': '+',\n '₋': '-',\n '₌': '=',\n '₍': '(',\n '₎': ')',\n '₀': '0',\n '₁': '1',\n '₂': '2',\n '₃': '3',\n '₄': '4',\n '₅': '5',\n '₆': '6',\n '₇': '7',\n '₈': '8',\n '₉': '9',\n '\\u2090': 'a',\n '\\u2091': 'e',\n '\\u2095': 'h',\n '\\u1D62': 'i',\n '\\u2C7C': 'j',\n '\\u2096': 'k',\n '\\u2097': 'l',\n '\\u2098': 'm',\n '\\u2099': 'n',\n '\\u2092': 'o',\n '\\u209A': 'p',\n '\\u1D63': 'r',\n '\\u209B': 's',\n '\\u209C': 't',\n '\\u1D64': 'u',\n '\\u1D65': 'v',\n '\\u2093': 'x',\n '\\u1D66': 'β',\n '\\u1D67': 'γ',\n '\\u1D68': 'ρ',\n '\\u1D69': '\\u03d5',\n '\\u1D6A': 'χ',\n '⁺': '+',\n '⁻': '-',\n '⁼': '=',\n '⁽': '(',\n '⁾': ')',\n '⁰': '0',\n '¹': '1',\n '²': '2',\n '³': '3',\n '⁴': '4',\n '⁵': '5',\n '⁶': '6',\n '⁷': '7',\n '⁸': '8',\n '⁹': '9',\n '\\u1D2C': 'A',\n '\\u1D2E': 'B',\n '\\u1D30': 'D',\n '\\u1D31': 'E',\n '\\u1D33': 'G',\n '\\u1D34': 'H',\n '\\u1D35': 'I',\n '\\u1D36': 'J',\n '\\u1D37': 'K',\n '\\u1D38': 'L',\n '\\u1D39': 'M',\n '\\u1D3A': 'N',\n '\\u1D3C': 'O',\n '\\u1D3E': 'P',\n '\\u1D3F': 'R',\n '\\u1D40': 'T',\n '\\u1D41': 'U',\n '\\u2C7D': 'V',\n '\\u1D42': 'W',\n '\\u1D43': 'a',\n '\\u1D47': 'b',\n '\\u1D9C': 'c',\n '\\u1D48': 'd',\n '\\u1D49': 'e',\n '\\u1DA0': 'f',\n '\\u1D4D': 'g',\n '\\u02B0': 'h',\n '\\u2071': 'i',\n '\\u02B2': 'j',\n '\\u1D4F': 'k',\n '\\u02E1': 'l',\n '\\u1D50': 'm',\n '\\u207F': 'n',\n '\\u1D52': 'o',\n '\\u1D56': 'p',\n '\\u02B3': 'r',\n '\\u02E2': 's',\n '\\u1D57': 't',\n '\\u1D58': 'u',\n '\\u1D5B': 'v',\n '\\u02B7': 'w',\n '\\u02E3': 'x',\n '\\u02B8': 'y',\n '\\u1DBB': 'z',\n '\\u1D5D': 'β',\n '\\u1D5E': 'γ',\n '\\u1D5F': 'δ',\n '\\u1D60': '\\u03d5',\n '\\u1D61': 'χ',\n '\\u1DBF': 'θ'\n});\n;// CONCATENATED MODULE: ./src/Parser.js\n/* eslint no-constant-condition:0 */\n\n\n\n\n\n\n\n\n\n\n // Pre-evaluate both modules as unicodeSymbols require String.normalize()\n\nconst unicodeAccents = {\n \"́\": {\n \"text\": \"\\\\'\",\n \"math\": \"\\\\acute\"\n },\n \"̀\": {\n \"text\": \"\\\\`\",\n \"math\": \"\\\\grave\"\n },\n \"̈\": {\n \"text\": \"\\\\\\\"\",\n \"math\": \"\\\\ddot\"\n },\n \"̃\": {\n \"text\": \"\\\\~\",\n \"math\": \"\\\\tilde\"\n },\n \"̄\": {\n \"text\": \"\\\\=\",\n \"math\": \"\\\\bar\"\n },\n \"̆\": {\n \"text\": \"\\\\u\",\n \"math\": \"\\\\breve\"\n },\n \"̌\": {\n \"text\": \"\\\\v\",\n \"math\": \"\\\\check\"\n },\n \"̂\": {\n \"text\": \"\\\\^\",\n \"math\": \"\\\\hat\"\n },\n \"̇\": {\n \"text\": \"\\\\.\",\n \"math\": \"\\\\dot\"\n },\n \"̊\": {\n \"text\": \"\\\\r\",\n \"math\": \"\\\\mathring\"\n },\n \"̋\": {\n \"text\": \"\\\\H\"\n },\n \"̧\": {\n \"text\": \"\\\\c\"\n }\n};\nconst unicodeSymbols = {\n \"á\": \"á\",\n \"à\": \"à\",\n \"ä\": \"ä\",\n \"ǟ\": \"ǟ\",\n \"ã\": \"ã\",\n \"ā\": \"ā\",\n \"ă\": \"ă\",\n \"ắ\": \"ắ\",\n \"ằ\": \"ằ\",\n \"ẵ\": \"ẵ\",\n \"ǎ\": \"ǎ\",\n \"â\": \"â\",\n \"ấ\": \"ấ\",\n \"ầ\": \"ầ\",\n \"ẫ\": \"ẫ\",\n \"ȧ\": \"ȧ\",\n \"ǡ\": \"ǡ\",\n \"å\": \"å\",\n \"ǻ\": \"ǻ\",\n \"ḃ\": \"ḃ\",\n \"ć\": \"ć\",\n \"ḉ\": \"ḉ\",\n \"č\": \"č\",\n \"ĉ\": \"ĉ\",\n \"ċ\": \"ċ\",\n \"ç\": \"ç\",\n \"ď\": \"ď\",\n \"ḋ\": \"ḋ\",\n \"ḑ\": \"ḑ\",\n \"é\": \"é\",\n \"è\": \"è\",\n \"ë\": \"ë\",\n \"ẽ\": \"ẽ\",\n \"ē\": \"ē\",\n \"ḗ\": \"ḗ\",\n \"ḕ\": \"ḕ\",\n \"ĕ\": \"ĕ\",\n \"ḝ\": \"ḝ\",\n \"ě\": \"ě\",\n \"ê\": \"ê\",\n \"ế\": \"ế\",\n \"ề\": \"ề\",\n \"ễ\": \"ễ\",\n \"ė\": \"ė\",\n \"ȩ\": \"ȩ\",\n \"ḟ\": \"ḟ\",\n \"ǵ\": \"ǵ\",\n \"ḡ\": \"ḡ\",\n \"ğ\": \"ğ\",\n \"ǧ\": \"ǧ\",\n \"ĝ\": \"ĝ\",\n \"ġ\": \"ġ\",\n \"ģ\": \"ģ\",\n \"ḧ\": \"ḧ\",\n \"ȟ\": \"ȟ\",\n \"ĥ\": \"ĥ\",\n \"ḣ\": \"ḣ\",\n \"ḩ\": \"ḩ\",\n \"í\": \"í\",\n \"ì\": \"ì\",\n \"ï\": \"ï\",\n \"ḯ\": \"ḯ\",\n \"ĩ\": \"ĩ\",\n \"ī\": \"ī\",\n \"ĭ\": \"ĭ\",\n \"ǐ\": \"ǐ\",\n \"î\": \"î\",\n \"ǰ\": \"ǰ\",\n \"ĵ\": \"ĵ\",\n \"ḱ\": \"ḱ\",\n \"ǩ\": \"ǩ\",\n \"ķ\": \"ķ\",\n \"ĺ\": \"ĺ\",\n \"ľ\": \"ľ\",\n \"ļ\": \"ļ\",\n \"ḿ\": \"ḿ\",\n \"ṁ\": \"ṁ\",\n \"ń\": \"ń\",\n \"ǹ\": \"ǹ\",\n \"ñ\": \"ñ\",\n \"ň\": \"ň\",\n \"ṅ\": \"ṅ\",\n \"ņ\": \"ņ\",\n \"ó\": \"ó\",\n \"ò\": \"ò\",\n \"ö\": \"ö\",\n \"ȫ\": \"ȫ\",\n \"õ\": \"õ\",\n \"ṍ\": \"ṍ\",\n \"ṏ\": \"ṏ\",\n \"ȭ\": \"ȭ\",\n \"ō\": \"ō\",\n \"ṓ\": \"ṓ\",\n \"ṑ\": \"ṑ\",\n \"ŏ\": \"ŏ\",\n \"ǒ\": \"ǒ\",\n \"ô\": \"ô\",\n \"ố\": \"ố\",\n \"ồ\": \"ồ\",\n \"ỗ\": \"ỗ\",\n \"ȯ\": \"ȯ\",\n \"ȱ\": \"ȱ\",\n \"ő\": \"ő\",\n \"ṕ\": \"ṕ\",\n \"ṗ\": \"ṗ\",\n \"ŕ\": \"ŕ\",\n \"ř\": \"ř\",\n \"ṙ\": \"ṙ\",\n \"ŗ\": \"ŗ\",\n \"ś\": \"ś\",\n \"ṥ\": \"ṥ\",\n \"š\": \"š\",\n \"ṧ\": \"ṧ\",\n \"ŝ\": \"ŝ\",\n \"ṡ\": \"ṡ\",\n \"ş\": \"ş\",\n \"ẗ\": \"ẗ\",\n \"ť\": \"ť\",\n \"ṫ\": \"ṫ\",\n \"ţ\": \"ţ\",\n \"ú\": \"ú\",\n \"ù\": \"ù\",\n \"ü\": \"ü\",\n \"ǘ\": \"ǘ\",\n \"ǜ\": \"ǜ\",\n \"ǖ\": \"ǖ\",\n \"ǚ\": \"ǚ\",\n \"ũ\": \"ũ\",\n \"ṹ\": \"ṹ\",\n \"ū\": \"ū\",\n \"ṻ\": \"ṻ\",\n \"ŭ\": \"ŭ\",\n \"ǔ\": \"ǔ\",\n \"û\": \"û\",\n \"ů\": \"ů\",\n \"ű\": \"ű\",\n \"ṽ\": \"ṽ\",\n \"ẃ\": \"ẃ\",\n \"ẁ\": \"ẁ\",\n \"ẅ\": \"ẅ\",\n \"ŵ\": \"ŵ\",\n \"ẇ\": \"ẇ\",\n \"ẘ\": \"ẘ\",\n \"ẍ\": \"ẍ\",\n \"ẋ\": \"ẋ\",\n \"ý\": \"ý\",\n \"ỳ\": \"ỳ\",\n \"ÿ\": \"ÿ\",\n \"ỹ\": \"ỹ\",\n \"ȳ\": \"ȳ\",\n \"ŷ\": \"ŷ\",\n \"ẏ\": \"ẏ\",\n \"ẙ\": \"ẙ\",\n \"ź\": \"ź\",\n \"ž\": \"ž\",\n \"ẑ\": \"ẑ\",\n \"ż\": \"ż\",\n \"Á\": \"Á\",\n \"À\": \"À\",\n \"Ä\": \"Ä\",\n \"Ǟ\": \"Ǟ\",\n \"Ã\": \"Ã\",\n \"Ā\": \"Ā\",\n \"Ă\": \"Ă\",\n \"Ắ\": \"Ắ\",\n \"Ằ\": \"Ằ\",\n \"Ẵ\": \"Ẵ\",\n \"Ǎ\": \"Ǎ\",\n \"Â\": \"Â\",\n \"Ấ\": \"Ấ\",\n \"Ầ\": \"Ầ\",\n \"Ẫ\": \"Ẫ\",\n \"Ȧ\": \"Ȧ\",\n \"Ǡ\": \"Ǡ\",\n \"Å\": \"Å\",\n \"Ǻ\": \"Ǻ\",\n \"Ḃ\": \"Ḃ\",\n \"Ć\": \"Ć\",\n \"Ḉ\": \"Ḉ\",\n \"Č\": \"Č\",\n \"Ĉ\": \"Ĉ\",\n \"Ċ\": \"Ċ\",\n \"Ç\": \"Ç\",\n \"Ď\": \"Ď\",\n \"Ḋ\": \"Ḋ\",\n \"Ḑ\": \"Ḑ\",\n \"É\": \"É\",\n \"È\": \"È\",\n \"Ë\": \"Ë\",\n \"Ẽ\": \"Ẽ\",\n \"Ē\": \"Ē\",\n \"Ḗ\": \"Ḗ\",\n \"Ḕ\": \"Ḕ\",\n \"Ĕ\": \"Ĕ\",\n \"Ḝ\": \"Ḝ\",\n \"Ě\": \"Ě\",\n \"Ê\": \"Ê\",\n \"Ế\": \"Ế\",\n \"Ề\": \"Ề\",\n \"Ễ\": \"Ễ\",\n \"Ė\": \"Ė\",\n \"Ȩ\": \"Ȩ\",\n \"Ḟ\": \"Ḟ\",\n \"Ǵ\": \"Ǵ\",\n \"Ḡ\": \"Ḡ\",\n \"Ğ\": \"Ğ\",\n \"Ǧ\": \"Ǧ\",\n \"Ĝ\": \"Ĝ\",\n \"Ġ\": \"Ġ\",\n \"Ģ\": \"Ģ\",\n \"Ḧ\": \"Ḧ\",\n \"Ȟ\": \"Ȟ\",\n \"Ĥ\": \"Ĥ\",\n \"Ḣ\": \"Ḣ\",\n \"Ḩ\": \"Ḩ\",\n \"Í\": \"Í\",\n \"Ì\": \"Ì\",\n \"Ï\": \"Ï\",\n \"Ḯ\": \"Ḯ\",\n \"Ĩ\": \"Ĩ\",\n \"Ī\": \"Ī\",\n \"Ĭ\": \"Ĭ\",\n \"Ǐ\": \"Ǐ\",\n \"Î\": \"Î\",\n \"İ\": \"İ\",\n \"Ĵ\": \"Ĵ\",\n \"Ḱ\": \"Ḱ\",\n \"Ǩ\": \"Ǩ\",\n \"Ķ\": \"Ķ\",\n \"Ĺ\": \"Ĺ\",\n \"Ľ\": \"Ľ\",\n \"Ļ\": \"Ļ\",\n \"Ḿ\": \"Ḿ\",\n \"Ṁ\": \"Ṁ\",\n \"Ń\": \"Ń\",\n \"Ǹ\": \"Ǹ\",\n \"Ñ\": \"Ñ\",\n \"Ň\": \"Ň\",\n \"Ṅ\": \"Ṅ\",\n \"Ņ\": \"Ņ\",\n \"Ó\": \"Ó\",\n \"Ò\": \"Ò\",\n \"Ö\": \"Ö\",\n \"Ȫ\": \"Ȫ\",\n \"Õ\": \"Õ\",\n \"Ṍ\": \"Ṍ\",\n \"Ṏ\": \"Ṏ\",\n \"Ȭ\": \"Ȭ\",\n \"Ō\": \"Ō\",\n \"Ṓ\": \"Ṓ\",\n \"Ṑ\": \"Ṑ\",\n \"Ŏ\": \"Ŏ\",\n \"Ǒ\": \"Ǒ\",\n \"Ô\": \"Ô\",\n \"Ố\": \"Ố\",\n \"Ồ\": \"Ồ\",\n \"Ỗ\": \"Ỗ\",\n \"Ȯ\": \"Ȯ\",\n \"Ȱ\": \"Ȱ\",\n \"Ő\": \"Ő\",\n \"Ṕ\": \"Ṕ\",\n \"Ṗ\": \"Ṗ\",\n \"Ŕ\": \"Ŕ\",\n \"Ř\": \"Ř\",\n \"Ṙ\": \"Ṙ\",\n \"Ŗ\": \"Ŗ\",\n \"Ś\": \"Ś\",\n \"Ṥ\": \"Ṥ\",\n \"Š\": \"Š\",\n \"Ṧ\": \"Ṧ\",\n \"Ŝ\": \"Ŝ\",\n \"Ṡ\": \"Ṡ\",\n \"Ş\": \"Ş\",\n \"Ť\": \"Ť\",\n \"Ṫ\": \"Ṫ\",\n \"Ţ\": \"Ţ\",\n \"Ú\": \"Ú\",\n \"Ù\": \"Ù\",\n \"Ü\": \"Ü\",\n \"Ǘ\": \"Ǘ\",\n \"Ǜ\": \"Ǜ\",\n \"Ǖ\": \"Ǖ\",\n \"Ǚ\": \"Ǚ\",\n \"Ũ\": \"Ũ\",\n \"Ṹ\": \"Ṹ\",\n \"Ū\": \"Ū\",\n \"Ṻ\": \"Ṻ\",\n \"Ŭ\": \"Ŭ\",\n \"Ǔ\": \"Ǔ\",\n \"Û\": \"Û\",\n \"Ů\": \"Ů\",\n \"Ű\": \"Ű\",\n \"Ṽ\": \"Ṽ\",\n \"Ẃ\": \"Ẃ\",\n \"Ẁ\": \"Ẁ\",\n \"Ẅ\": \"Ẅ\",\n \"Ŵ\": \"Ŵ\",\n \"Ẇ\": \"Ẇ\",\n \"Ẍ\": \"Ẍ\",\n \"Ẋ\": \"Ẋ\",\n \"Ý\": \"Ý\",\n \"Ỳ\": \"Ỳ\",\n \"Ÿ\": \"Ÿ\",\n \"Ỹ\": \"Ỹ\",\n \"Ȳ\": \"Ȳ\",\n \"Ŷ\": \"Ŷ\",\n \"Ẏ\": \"Ẏ\",\n \"Ź\": \"Ź\",\n \"Ž\": \"Ž\",\n \"Ẑ\": \"Ẑ\",\n \"Ż\": \"Ż\",\n \"ά\": \"ά\",\n \"ὰ\": \"ὰ\",\n \"ᾱ\": \"ᾱ\",\n \"ᾰ\": \"ᾰ\",\n \"έ\": \"έ\",\n \"ὲ\": \"ὲ\",\n \"ή\": \"ή\",\n \"ὴ\": \"ὴ\",\n \"ί\": \"ί\",\n \"ὶ\": \"ὶ\",\n \"ϊ\": \"ϊ\",\n \"ΐ\": \"ΐ\",\n \"ῒ\": \"ῒ\",\n \"ῑ\": \"ῑ\",\n \"ῐ\": \"ῐ\",\n \"ό\": \"ό\",\n \"ὸ\": \"ὸ\",\n \"ύ\": \"ύ\",\n \"ὺ\": \"ὺ\",\n \"ϋ\": \"ϋ\",\n \"ΰ\": \"ΰ\",\n \"ῢ\": \"ῢ\",\n \"ῡ\": \"ῡ\",\n \"ῠ\": \"ῠ\",\n \"ώ\": \"ώ\",\n \"ὼ\": \"ὼ\",\n \"Ύ\": \"Ύ\",\n \"Ὺ\": \"Ὺ\",\n \"Ϋ\": \"Ϋ\",\n \"Ῡ\": \"Ῡ\",\n \"Ῠ\": \"Ῠ\",\n \"Ώ\": \"Ώ\",\n \"Ὼ\": \"Ὼ\"\n};\n\n/**\n * This file contains the parser used to parse out a TeX expression from the\n * input. Since TeX isn't context-free, standard parsers don't work particularly\n * well.\n *\n * The strategy of this parser is as such:\n *\n * The main functions (the `.parse...` ones) take a position in the current\n * parse string to parse tokens from. The lexer (found in Lexer.js, stored at\n * this.gullet.lexer) also supports pulling out tokens at arbitrary places. When\n * individual tokens are needed at a position, the lexer is called to pull out a\n * token, which is then used.\n *\n * The parser has a property called \"mode\" indicating the mode that\n * the parser is currently in. Currently it has to be one of \"math\" or\n * \"text\", which denotes whether the current environment is a math-y\n * one or a text-y one (e.g. inside \\text). Currently, this serves to\n * limit the functions which can be used in text mode.\n *\n * The main functions then return an object which contains the useful data that\n * was parsed at its given point, and a new position at the end of the parsed\n * data. The main functions can call each other and continue the parsing by\n * using the returned position as a new starting point.\n *\n * There are also extra `.handle...` functions, which pull out some reused\n * functionality into self-contained functions.\n *\n * The functions return ParseNodes.\n */\nclass Parser {\n constructor(input, settings) {\n this.mode = void 0;\n this.gullet = void 0;\n this.settings = void 0;\n this.leftrightDepth = void 0;\n this.nextToken = void 0;\n // Start in math mode\n this.mode = \"math\"; // Create a new macro expander (gullet) and (indirectly via that) also a\n // new lexer (mouth) for this parser (stomach, in the language of TeX)\n\n this.gullet = new MacroExpander(input, settings, this.mode); // Store the settings for use in parsing\n\n this.settings = settings; // Count leftright depth (for \\middle errors)\n\n this.leftrightDepth = 0;\n }\n /**\n * Checks a result to make sure it has the right type, and throws an\n * appropriate error otherwise.\n */\n\n\n expect(text, consume) {\n if (consume === void 0) {\n consume = true;\n }\n\n if (this.fetch().text !== text) {\n throw new src_ParseError(\"Expected '\" + text + \"', got '\" + this.fetch().text + \"'\", this.fetch());\n }\n\n if (consume) {\n this.consume();\n }\n }\n /**\n * Discards the current lookahead token, considering it consumed.\n */\n\n\n consume() {\n this.nextToken = null;\n }\n /**\n * Return the current lookahead token, or if there isn't one (at the\n * beginning, or if the previous lookahead token was consume()d),\n * fetch the next token as the new lookahead token and return it.\n */\n\n\n fetch() {\n if (this.nextToken == null) {\n this.nextToken = this.gullet.expandNextToken();\n }\n\n return this.nextToken;\n }\n /**\n * Switches between \"text\" and \"math\" modes.\n */\n\n\n switchMode(newMode) {\n this.mode = newMode;\n this.gullet.switchMode(newMode);\n }\n /**\n * Main parsing function, which parses an entire input.\n */\n\n\n parse() {\n if (!this.settings.globalGroup) {\n // Create a group namespace for the math expression.\n // (LaTeX creates a new group for every $...$, $$...$$, \\[...\\].)\n this.gullet.beginGroup();\n } // Use old \\color behavior (same as LaTeX's \\textcolor) if requested.\n // We do this within the group for the math expression, so it doesn't\n // pollute settings.macros.\n\n\n if (this.settings.colorIsTextColor) {\n this.gullet.macros.set(\"\\\\color\", \"\\\\textcolor\");\n }\n\n try {\n // Try to parse the input\n const parse = this.parseExpression(false); // If we succeeded, make sure there's an EOF at the end\n\n this.expect(\"EOF\"); // End the group namespace for the expression\n\n if (!this.settings.globalGroup) {\n this.gullet.endGroup();\n }\n\n return parse; // Close any leftover groups in case of a parse error.\n } finally {\n this.gullet.endGroups();\n }\n }\n /**\n * Fully parse a separate sequence of tokens as a separate job.\n * Tokens should be specified in reverse order, as in a MacroDefinition.\n */\n\n\n subparse(tokens) {\n // Save the next token from the current job.\n const oldToken = this.nextToken;\n this.consume(); // Run the new job, terminating it with an excess '}'\n\n this.gullet.pushToken(new Token(\"}\"));\n this.gullet.pushTokens(tokens);\n const parse = this.parseExpression(false);\n this.expect(\"}\"); // Restore the next token from the current job.\n\n this.nextToken = oldToken;\n return parse;\n }\n\n /**\n * Parses an \"expression\", which is a list of atoms.\n *\n * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This\n * happens when functions have higher precedence han infix\n * nodes in implicit parses.\n *\n * `breakOnTokenText`: The text of the token that the expression should end\n * with, or `null` if something else should end the\n * expression.\n */\n parseExpression(breakOnInfix, breakOnTokenText) {\n const body = []; // Keep adding atoms to the body until we can't parse any more atoms (either\n // we reached the end, a }, or a \\right)\n\n while (true) {\n // Ignore spaces in math mode\n if (this.mode === \"math\") {\n this.consumeSpaces();\n }\n\n const lex = this.fetch();\n\n if (Parser.endOfExpression.indexOf(lex.text) !== -1) {\n break;\n }\n\n if (breakOnTokenText && lex.text === breakOnTokenText) {\n break;\n }\n\n if (breakOnInfix && src_functions[lex.text] && src_functions[lex.text].infix) {\n break;\n }\n\n const atom = this.parseAtom(breakOnTokenText);\n\n if (!atom) {\n break;\n } else if (atom.type === \"internal\") {\n continue;\n }\n\n body.push(atom);\n }\n\n if (this.mode === \"text\") {\n this.formLigatures(body);\n }\n\n return this.handleInfixNodes(body);\n }\n /**\n * Rewrites infix operators such as \\over with corresponding commands such\n * as \\frac.\n *\n * There can only be one infix operator per group. If there's more than one\n * then the expression is ambiguous. This can be resolved by adding {}.\n */\n\n\n handleInfixNodes(body) {\n let overIndex = -1;\n let funcName;\n\n for (let i = 0; i < body.length; i++) {\n if (body[i].type === \"infix\") {\n if (overIndex !== -1) {\n throw new src_ParseError(\"only one infix operator per group\", body[i].token);\n }\n\n overIndex = i;\n funcName = body[i].replaceWith;\n }\n }\n\n if (overIndex !== -1 && funcName) {\n let numerNode;\n let denomNode;\n const numerBody = body.slice(0, overIndex);\n const denomBody = body.slice(overIndex + 1);\n\n if (numerBody.length === 1 && numerBody[0].type === \"ordgroup\") {\n numerNode = numerBody[0];\n } else {\n numerNode = {\n type: \"ordgroup\",\n mode: this.mode,\n body: numerBody\n };\n }\n\n if (denomBody.length === 1 && denomBody[0].type === \"ordgroup\") {\n denomNode = denomBody[0];\n } else {\n denomNode = {\n type: \"ordgroup\",\n mode: this.mode,\n body: denomBody\n };\n }\n\n let node;\n\n if (funcName === \"\\\\\\\\abovefrac\") {\n node = this.callFunction(funcName, [numerNode, body[overIndex], denomNode], []);\n } else {\n node = this.callFunction(funcName, [numerNode, denomNode], []);\n }\n\n return [node];\n } else {\n return body;\n }\n }\n /**\n * Handle a subscript or superscript with nice errors.\n */\n\n\n handleSupSubscript(name // For error reporting.\n ) {\n const symbolToken = this.fetch();\n const symbol = symbolToken.text;\n this.consume();\n this.consumeSpaces(); // ignore spaces before sup/subscript argument\n\n const group = this.parseGroup(name);\n\n if (!group) {\n throw new src_ParseError(\"Expected group after '\" + symbol + \"'\", symbolToken);\n }\n\n return group;\n }\n /**\n * Converts the textual input of an unsupported command into a text node\n * contained within a color node whose color is determined by errorColor\n */\n\n\n formatUnsupportedCmd(text) {\n const textordArray = [];\n\n for (let i = 0; i < text.length; i++) {\n textordArray.push({\n type: \"textord\",\n mode: \"text\",\n text: text[i]\n });\n }\n\n const textNode = {\n type: \"text\",\n mode: this.mode,\n body: textordArray\n };\n const colorNode = {\n type: \"color\",\n mode: this.mode,\n color: this.settings.errorColor,\n body: [textNode]\n };\n return colorNode;\n }\n /**\n * Parses a group with optional super/subscripts.\n */\n\n\n parseAtom(breakOnTokenText) {\n // The body of an atom is an implicit group, so that things like\n // \\left(x\\right)^2 work correctly.\n const base = this.parseGroup(\"atom\", breakOnTokenText); // In text mode, we don't have superscripts or subscripts\n\n if (this.mode === \"text\") {\n return base;\n } // Note that base may be empty (i.e. null) at this point.\n\n\n let superscript;\n let subscript;\n\n while (true) {\n // Guaranteed in math mode, so eat any spaces first.\n this.consumeSpaces(); // Lex the first token\n\n const lex = this.fetch();\n\n if (lex.text === \"\\\\limits\" || lex.text === \"\\\\nolimits\") {\n // We got a limit control\n if (base && base.type === \"op\") {\n const limits = lex.text === \"\\\\limits\";\n base.limits = limits;\n base.alwaysHandleSupSub = true;\n } else if (base && base.type === \"operatorname\") {\n if (base.alwaysHandleSupSub) {\n base.limits = lex.text === \"\\\\limits\";\n }\n } else {\n throw new src_ParseError(\"Limit controls must follow a math operator\", lex);\n }\n\n this.consume();\n } else if (lex.text === \"^\") {\n // We got a superscript start\n if (superscript) {\n throw new src_ParseError(\"Double superscript\", lex);\n }\n\n superscript = this.handleSupSubscript(\"superscript\");\n } else if (lex.text === \"_\") {\n // We got a subscript start\n if (subscript) {\n throw new src_ParseError(\"Double subscript\", lex);\n }\n\n subscript = this.handleSupSubscript(\"subscript\");\n } else if (lex.text === \"'\") {\n // We got a prime\n if (superscript) {\n throw new src_ParseError(\"Double superscript\", lex);\n }\n\n const prime = {\n type: \"textord\",\n mode: this.mode,\n text: \"\\\\prime\"\n }; // Many primes can be grouped together, so we handle this here\n\n const primes = [prime];\n this.consume(); // Keep lexing tokens until we get something that's not a prime\n\n while (this.fetch().text === \"'\") {\n // For each one, add another prime to the list\n primes.push(prime);\n this.consume();\n } // If there's a superscript following the primes, combine that\n // superscript in with the primes.\n\n\n if (this.fetch().text === \"^\") {\n primes.push(this.handleSupSubscript(\"superscript\"));\n } // Put everything into an ordgroup as the superscript\n\n\n superscript = {\n type: \"ordgroup\",\n mode: this.mode,\n body: primes\n };\n } else if (uSubsAndSups[lex.text]) {\n // A Unicode subscript or superscript character.\n // We treat these similarly to the unicode-math package.\n // So we render a string of Unicode (sub|super)scripts the\n // same as a (sub|super)script of regular characters.\n const isSub = unicodeSubRegEx.test(lex.text);\n const subsupTokens = [];\n subsupTokens.push(new Token(uSubsAndSups[lex.text]));\n this.consume(); // Continue fetching tokens to fill out the string.\n\n while (true) {\n const token = this.fetch().text;\n\n if (!uSubsAndSups[token]) {\n break;\n }\n\n if (unicodeSubRegEx.test(token) !== isSub) {\n break;\n }\n\n subsupTokens.unshift(new Token(uSubsAndSups[token]));\n this.consume();\n } // Now create a (sub|super)script.\n\n\n const body = this.subparse(subsupTokens);\n\n if (isSub) {\n subscript = {\n type: \"ordgroup\",\n mode: \"math\",\n body\n };\n } else {\n superscript = {\n type: \"ordgroup\",\n mode: \"math\",\n body\n };\n }\n } else {\n // If it wasn't ^, _, or ', stop parsing super/subscripts\n break;\n }\n } // Base must be set if superscript or subscript are set per logic above,\n // but need to check here for type check to pass.\n\n\n if (superscript || subscript) {\n // If we got either a superscript or subscript, create a supsub\n return {\n type: \"supsub\",\n mode: this.mode,\n base: base,\n sup: superscript,\n sub: subscript\n };\n } else {\n // Otherwise return the original body\n return base;\n }\n }\n /**\n * Parses an entire function, including its base and all of its arguments.\n */\n\n\n parseFunction(breakOnTokenText, name // For determining its context\n ) {\n const token = this.fetch();\n const func = token.text;\n const funcData = src_functions[func];\n\n if (!funcData) {\n return null;\n }\n\n this.consume(); // consume command token\n\n if (name && name !== \"atom\" && !funcData.allowedInArgument) {\n throw new src_ParseError(\"Got function '\" + func + \"' with no arguments\" + (name ? \" as \" + name : \"\"), token);\n } else if (this.mode === \"text\" && !funcData.allowedInText) {\n throw new src_ParseError(\"Can't use function '\" + func + \"' in text mode\", token);\n } else if (this.mode === \"math\" && funcData.allowedInMath === false) {\n throw new src_ParseError(\"Can't use function '\" + func + \"' in math mode\", token);\n }\n\n const {\n args,\n optArgs\n } = this.parseArguments(func, funcData);\n return this.callFunction(func, args, optArgs, token, breakOnTokenText);\n }\n /**\n * Call a function handler with a suitable context and arguments.\n */\n\n\n callFunction(name, args, optArgs, token, breakOnTokenText) {\n const context = {\n funcName: name,\n parser: this,\n token,\n breakOnTokenText\n };\n const func = src_functions[name];\n\n if (func && func.handler) {\n return func.handler(context, args, optArgs);\n } else {\n throw new src_ParseError(\"No function handler for \" + name);\n }\n }\n /**\n * Parses the arguments of a function or environment\n */\n\n\n parseArguments(func, // Should look like \"\\name\" or \"\\begin{name}\".\n funcData) {\n const totalArgs = funcData.numArgs + funcData.numOptionalArgs;\n\n if (totalArgs === 0) {\n return {\n args: [],\n optArgs: []\n };\n }\n\n const args = [];\n const optArgs = [];\n\n for (let i = 0; i < totalArgs; i++) {\n let argType = funcData.argTypes && funcData.argTypes[i];\n const isOptional = i < funcData.numOptionalArgs;\n\n if (funcData.primitive && argType == null || // \\sqrt expands into primitive if optional argument doesn't exist\n funcData.type === \"sqrt\" && i === 1 && optArgs[0] == null) {\n argType = \"primitive\";\n }\n\n const arg = this.parseGroupOfType(\"argument to '\" + func + \"'\", argType, isOptional);\n\n if (isOptional) {\n optArgs.push(arg);\n } else if (arg != null) {\n args.push(arg);\n } else {\n // should be unreachable\n throw new src_ParseError(\"Null argument, please report this as a bug\");\n }\n }\n\n return {\n args,\n optArgs\n };\n }\n /**\n * Parses a group when the mode is changing.\n */\n\n\n parseGroupOfType(name, type, optional) {\n switch (type) {\n case \"color\":\n return this.parseColorGroup(optional);\n\n case \"size\":\n return this.parseSizeGroup(optional);\n\n case \"url\":\n return this.parseUrlGroup(optional);\n\n case \"math\":\n case \"text\":\n return this.parseArgumentGroup(optional, type);\n\n case \"hbox\":\n {\n // hbox argument type wraps the argument in the equivalent of\n // \\hbox, which is like \\text but switching to \\textstyle size.\n const group = this.parseArgumentGroup(optional, \"text\");\n return group != null ? {\n type: \"styling\",\n mode: group.mode,\n body: [group],\n style: \"text\" // simulate \\textstyle\n\n } : null;\n }\n\n case \"raw\":\n {\n const token = this.parseStringGroup(\"raw\", optional);\n return token != null ? {\n type: \"raw\",\n mode: \"text\",\n string: token.text\n } : null;\n }\n\n case \"primitive\":\n {\n if (optional) {\n throw new src_ParseError(\"A primitive argument cannot be optional\");\n }\n\n const group = this.parseGroup(name);\n\n if (group == null) {\n throw new src_ParseError(\"Expected group as \" + name, this.fetch());\n }\n\n return group;\n }\n\n case \"original\":\n case null:\n case undefined:\n return this.parseArgumentGroup(optional);\n\n default:\n throw new src_ParseError(\"Unknown group type as \" + name, this.fetch());\n }\n }\n /**\n * Discard any space tokens, fetching the next non-space token.\n */\n\n\n consumeSpaces() {\n while (this.fetch().text === \" \") {\n this.consume();\n }\n }\n /**\n * Parses a group, essentially returning the string formed by the\n * brace-enclosed tokens plus some position information.\n */\n\n\n parseStringGroup(modeName, // Used to describe the mode in error messages.\n optional) {\n const argToken = this.gullet.scanArgument(optional);\n\n if (argToken == null) {\n return null;\n }\n\n let str = \"\";\n let nextToken;\n\n while ((nextToken = this.fetch()).text !== \"EOF\") {\n str += nextToken.text;\n this.consume();\n }\n\n this.consume(); // consume the end of the argument\n\n argToken.text = str;\n return argToken;\n }\n /**\n * Parses a regex-delimited group: the largest sequence of tokens\n * whose concatenated strings match `regex`. Returns the string\n * formed by the tokens plus some position information.\n */\n\n\n parseRegexGroup(regex, modeName // Used to describe the mode in error messages.\n ) {\n const firstToken = this.fetch();\n let lastToken = firstToken;\n let str = \"\";\n let nextToken;\n\n while ((nextToken = this.fetch()).text !== \"EOF\" && regex.test(str + nextToken.text)) {\n lastToken = nextToken;\n str += lastToken.text;\n this.consume();\n }\n\n if (str === \"\") {\n throw new src_ParseError(\"Invalid \" + modeName + \": '\" + firstToken.text + \"'\", firstToken);\n }\n\n return firstToken.range(lastToken, str);\n }\n /**\n * Parses a color description.\n */\n\n\n parseColorGroup(optional) {\n const res = this.parseStringGroup(\"color\", optional);\n\n if (res == null) {\n return null;\n }\n\n const match = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(res.text);\n\n if (!match) {\n throw new src_ParseError(\"Invalid color: '\" + res.text + \"'\", res);\n }\n\n let color = match[0];\n\n if (/^[0-9a-f]{6}$/i.test(color)) {\n // We allow a 6-digit HTML color spec without a leading \"#\".\n // This follows the xcolor package's HTML color model.\n // Predefined color names are all missed by this RegEx pattern.\n color = \"#\" + color;\n }\n\n return {\n type: \"color-token\",\n mode: this.mode,\n color\n };\n }\n /**\n * Parses a size specification, consisting of magnitude and unit.\n */\n\n\n parseSizeGroup(optional) {\n let res;\n let isBlank = false; // don't expand before parseStringGroup\n\n this.gullet.consumeSpaces();\n\n if (!optional && this.gullet.future().text !== \"{\") {\n res = this.parseRegexGroup(/^[-+]? *(?:$|\\d+|\\d+\\.\\d*|\\.\\d*) *[a-z]{0,2} *$/, \"size\");\n } else {\n res = this.parseStringGroup(\"size\", optional);\n }\n\n if (!res) {\n return null;\n }\n\n if (!optional && res.text.length === 0) {\n // Because we've tested for what is !optional, this block won't\n // affect \\kern, \\hspace, etc. It will capture the mandatory arguments\n // to \\genfrac and \\above.\n res.text = \"0pt\"; // Enable \\above{}\n\n isBlank = true; // This is here specifically for \\genfrac\n }\n\n const match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(res.text);\n\n if (!match) {\n throw new src_ParseError(\"Invalid size: '\" + res.text + \"'\", res);\n }\n\n const data = {\n number: +(match[1] + match[2]),\n // sign + magnitude, cast to number\n unit: match[3]\n };\n\n if (!validUnit(data)) {\n throw new src_ParseError(\"Invalid unit: '\" + data.unit + \"'\", res);\n }\n\n return {\n type: \"size\",\n mode: this.mode,\n value: data,\n isBlank\n };\n }\n /**\n * Parses an URL, checking escaped letters and allowed protocols,\n * and setting the catcode of % as an active character (as in \\hyperref).\n */\n\n\n parseUrlGroup(optional) {\n this.gullet.lexer.setCatcode(\"%\", 13); // active character\n\n this.gullet.lexer.setCatcode(\"~\", 12); // other character\n\n const res = this.parseStringGroup(\"url\", optional);\n this.gullet.lexer.setCatcode(\"%\", 14); // comment character\n\n this.gullet.lexer.setCatcode(\"~\", 13); // active character\n\n if (res == null) {\n return null;\n } // hyperref package allows backslashes alone in href, but doesn't\n // generate valid links in such cases; we interpret this as\n // \"undefined\" behaviour, and keep them as-is. Some browser will\n // replace backslashes with forward slashes.\n\n\n const url = res.text.replace(/\\\\([#$%&~_^{}])/g, '$1');\n return {\n type: \"url\",\n mode: this.mode,\n url\n };\n }\n /**\n * Parses an argument with the mode specified.\n */\n\n\n parseArgumentGroup(optional, mode) {\n const argToken = this.gullet.scanArgument(optional);\n\n if (argToken == null) {\n return null;\n }\n\n const outerMode = this.mode;\n\n if (mode) {\n // Switch to specified mode\n this.switchMode(mode);\n }\n\n this.gullet.beginGroup();\n const expression = this.parseExpression(false, \"EOF\"); // TODO: find an alternative way to denote the end\n\n this.expect(\"EOF\"); // expect the end of the argument\n\n this.gullet.endGroup();\n const result = {\n type: \"ordgroup\",\n mode: this.mode,\n loc: argToken.loc,\n body: expression\n };\n\n if (mode) {\n // Switch mode back\n this.switchMode(outerMode);\n }\n\n return result;\n }\n /**\n * Parses an ordinary group, which is either a single nucleus (like \"x\")\n * or an expression in braces (like \"{x+y}\") or an implicit group, a group\n * that starts at the current position, and ends right before a higher explicit\n * group ends, or at EOF.\n */\n\n\n parseGroup(name, // For error reporting.\n breakOnTokenText) {\n const firstToken = this.fetch();\n const text = firstToken.text;\n let result; // Try to parse an open brace or \\begingroup\n\n if (text === \"{\" || text === \"\\\\begingroup\") {\n this.consume();\n const groupEnd = text === \"{\" ? \"}\" : \"\\\\endgroup\";\n this.gullet.beginGroup(); // If we get a brace, parse an expression\n\n const expression = this.parseExpression(false, groupEnd);\n const lastToken = this.fetch();\n this.expect(groupEnd); // Check that we got a matching closing brace\n\n this.gullet.endGroup();\n result = {\n type: \"ordgroup\",\n mode: this.mode,\n loc: SourceLocation.range(firstToken, lastToken),\n body: expression,\n // A group formed by \\begingroup...\\endgroup is a semi-simple group\n // which doesn't affect spacing in math mode, i.e., is transparent.\n // https://tex.stackexchange.com/questions/1930/when-should-one-\n // use-begingroup-instead-of-bgroup\n semisimple: text === \"\\\\begingroup\" || undefined\n };\n } else {\n // If there exists a function with this name, parse the function.\n // Otherwise, just return a nucleus\n result = this.parseFunction(breakOnTokenText, name) || this.parseSymbol();\n\n if (result == null && text[0] === \"\\\\\" && !implicitCommands.hasOwnProperty(text)) {\n if (this.settings.throwOnError) {\n throw new src_ParseError(\"Undefined control sequence: \" + text, firstToken);\n }\n\n result = this.formatUnsupportedCmd(text);\n this.consume();\n }\n }\n\n return result;\n }\n /**\n * Form ligature-like combinations of characters for text mode.\n * This includes inputs like \"--\", \"---\", \"``\" and \"''\".\n * The result will simply replace multiple textord nodes with a single\n * character in each value by a single textord node having multiple\n * characters in its value. The representation is still ASCII source.\n * The group will be modified in place.\n */\n\n\n formLigatures(group) {\n let n = group.length - 1;\n\n for (let i = 0; i < n; ++i) {\n const a = group[i]; // $FlowFixMe: Not every node type has a `text` property.\n\n const v = a.text;\n\n if (v === \"-\" && group[i + 1].text === \"-\") {\n if (i + 1 < n && group[i + 2].text === \"-\") {\n group.splice(i, 3, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 2]),\n text: \"---\"\n });\n n -= 2;\n } else {\n group.splice(i, 2, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 1]),\n text: \"--\"\n });\n n -= 1;\n }\n }\n\n if ((v === \"'\" || v === \"`\") && group[i + 1].text === v) {\n group.splice(i, 2, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 1]),\n text: v + v\n });\n n -= 1;\n }\n }\n }\n /**\n * Parse a single symbol out of the string. Here, we handle single character\n * symbols and special functions like \\verb.\n */\n\n\n parseSymbol() {\n const nucleus = this.fetch();\n let text = nucleus.text;\n\n if (/^\\\\verb[^a-zA-Z]/.test(text)) {\n this.consume();\n let arg = text.slice(5);\n const star = arg.charAt(0) === \"*\";\n\n if (star) {\n arg = arg.slice(1);\n } // Lexer's tokenRegex is constructed to always have matching\n // first/last characters.\n\n\n if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) {\n throw new src_ParseError(\"\\\\verb assertion failed --\\n please report what input caused this bug\");\n }\n\n arg = arg.slice(1, -1); // remove first and last char\n\n return {\n type: \"verb\",\n mode: \"text\",\n body: arg,\n star\n };\n } // At this point, we should have a symbol, possibly with accents.\n // First expand any accented base symbol according to unicodeSymbols.\n\n\n if (unicodeSymbols.hasOwnProperty(text[0]) && !src_symbols[this.mode][text[0]]) {\n // This behavior is not strict (XeTeX-compatible) in math mode.\n if (this.settings.strict && this.mode === \"math\") {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Accented Unicode text character \\\"\" + text[0] + \"\\\" used in \" + \"math mode\", nucleus);\n }\n\n text = unicodeSymbols[text[0]] + text.slice(1);\n } // Strip off any combining characters\n\n\n const match = combiningDiacriticalMarksEndRegex.exec(text);\n\n if (match) {\n text = text.substring(0, match.index);\n\n if (text === 'i') {\n text = '\\u0131'; // dotless i, in math and text mode\n } else if (text === 'j') {\n text = '\\u0237'; // dotless j, in math and text mode\n }\n } // Recognize base symbol\n\n\n let symbol;\n\n if (src_symbols[this.mode][text]) {\n if (this.settings.strict && this.mode === 'math' && extraLatin.indexOf(text) >= 0) {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Latin-1/Unicode text character \\\"\" + text[0] + \"\\\" used in \" + \"math mode\", nucleus);\n }\n\n const group = src_symbols[this.mode][text].group;\n const loc = SourceLocation.range(nucleus);\n let s;\n\n if (ATOMS.hasOwnProperty(group)) {\n // $FlowFixMe\n const family = group;\n s = {\n type: \"atom\",\n mode: this.mode,\n family,\n loc,\n text\n };\n } else {\n // $FlowFixMe\n s = {\n type: group,\n mode: this.mode,\n loc,\n text\n };\n } // $FlowFixMe\n\n\n symbol = s;\n } else if (text.charCodeAt(0) >= 0x80) {\n // no symbol for e.g. ^\n if (this.settings.strict) {\n if (!supportedCodepoint(text.charCodeAt(0))) {\n this.settings.reportNonstrict(\"unknownSymbol\", \"Unrecognized Unicode character \\\"\" + text[0] + \"\\\"\" + (\" (\" + text.charCodeAt(0) + \")\"), nucleus);\n } else if (this.mode === \"math\") {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Unicode text character \\\"\" + text[0] + \"\\\" used in math mode\", nucleus);\n }\n } // All nonmathematical Unicode characters are rendered as if they\n // are in text mode (wrapped in \\text) because that's what it\n // takes to render them in LaTeX. Setting `mode: this.mode` is\n // another natural choice (the user requested math mode), but\n // this makes it more difficult for getCharacterMetrics() to\n // distinguish Unicode characters without metrics and those for\n // which we want to simulate the letter M.\n\n\n symbol = {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(nucleus),\n text\n };\n } else {\n return null; // EOF, ^, _, {, }, etc.\n }\n\n this.consume(); // Transform combining characters into accents\n\n if (match) {\n for (let i = 0; i < match[0].length; i++) {\n const accent = match[0][i];\n\n if (!unicodeAccents[accent]) {\n throw new src_ParseError(\"Unknown accent ' \" + accent + \"'\", nucleus);\n }\n\n const command = unicodeAccents[accent][this.mode] || unicodeAccents[accent].text;\n\n if (!command) {\n throw new src_ParseError(\"Accent \" + accent + \" unsupported in \" + this.mode + \" mode\", nucleus);\n }\n\n symbol = {\n type: \"accent\",\n mode: this.mode,\n loc: SourceLocation.range(nucleus),\n label: command,\n isStretchy: false,\n isShifty: true,\n // $FlowFixMe\n base: symbol\n };\n }\n } // $FlowFixMe\n\n\n return symbol;\n }\n\n}\nParser.endOfExpression = [\"}\", \"\\\\endgroup\", \"\\\\end\", \"\\\\right\", \"&\"];\n;// CONCATENATED MODULE: ./src/parseTree.js\n/**\n * Provides a single function for parsing an expression using a Parser\n * TODO(emily): Remove this\n */\n\n\n\n\n/**\n * Parses an expression using a Parser, then returns the parsed result.\n */\nconst parseTree = function (toParse, settings) {\n if (!(typeof toParse === 'string' || toParse instanceof String)) {\n throw new TypeError('KaTeX can only parse string typed expression');\n }\n\n const parser = new Parser(toParse, settings); // Blank out any \\df@tag to avoid spurious \"Duplicate \\tag\" errors\n\n delete parser.gullet.macros.current[\"\\\\df@tag\"];\n let tree = parser.parse(); // Prevent a color definition from persisting between calls to katex.render().\n\n delete parser.gullet.macros.current[\"\\\\current@color\"];\n delete parser.gullet.macros.current[\"\\\\color\"]; // If the input used \\tag, it will set the \\df@tag macro to the tag.\n // In this case, we separately parse the tag and wrap the tree.\n\n if (parser.gullet.macros.get(\"\\\\df@tag\")) {\n if (!settings.displayMode) {\n throw new src_ParseError(\"\\\\tag works only in display equations\");\n }\n\n tree = [{\n type: \"tag\",\n mode: \"text\",\n body: tree,\n tag: parser.subparse([new Token(\"\\\\df@tag\")])\n }];\n }\n\n return tree;\n};\n\n/* harmony default export */ var src_parseTree = (parseTree);\n;// CONCATENATED MODULE: ./katex.js\n/* eslint no-console:0 */\n\n/**\n * This is the main entry point for KaTeX. Here, we expose functions for\n * rendering expressions either to DOM nodes or to markup strings.\n *\n * We also expose the ParseError class to check if errors thrown from KaTeX are\n * errors in the expression, or errors in javascript handling.\n */\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Parse and build an expression, and place that expression in the DOM node\n * given.\n */\nlet render = function (expression, baseNode, options) {\n baseNode.textContent = \"\";\n const node = renderToDomTree(expression, options).toNode();\n baseNode.appendChild(node);\n}; // KaTeX's styles don't work properly in quirks mode. Print out an error, and\n// disable rendering.\n\n\nif (typeof document !== \"undefined\") {\n if (document.compatMode !== \"CSS1Compat\") {\n typeof console !== \"undefined\" && console.warn(\"Warning: KaTeX doesn't work in quirks mode. Make sure your \" + \"website has a suitable doctype.\");\n\n render = function () {\n throw new src_ParseError(\"KaTeX doesn't work in quirks mode.\");\n };\n }\n}\n/**\n * Parse and build an expression, and return the markup for that.\n */\n\n\nconst renderToString = function (expression, options) {\n const markup = renderToDomTree(expression, options).toMarkup();\n return markup;\n};\n/**\n * Parse an expression and return the parse tree.\n */\n\n\nconst generateParseTree = function (expression, options) {\n const settings = new Settings(options);\n return src_parseTree(expression, settings);\n};\n/**\n * If the given error is a KaTeX ParseError and options.throwOnError is false,\n * renders the invalid LaTeX as a span with hover title giving the KaTeX\n * error message. Otherwise, simply throws the error.\n */\n\n\nconst renderError = function (error, expression, options) {\n if (options.throwOnError || !(error instanceof src_ParseError)) {\n throw error;\n }\n\n const node = buildCommon.makeSpan([\"katex-error\"], [new SymbolNode(expression)]);\n node.setAttribute(\"title\", error.toString());\n node.setAttribute(\"style\", \"color:\" + options.errorColor);\n return node;\n};\n/**\n * Generates and returns the katex build tree. This is used for advanced\n * use cases (like rendering to custom output).\n */\n\n\nconst renderToDomTree = function (expression, options) {\n const settings = new Settings(options);\n\n try {\n const tree = src_parseTree(expression, settings);\n return buildTree(tree, expression, settings);\n } catch (error) {\n return renderError(error, expression, settings);\n }\n};\n/**\n * Generates and returns the katex build tree, with just HTML (no MathML).\n * This is used for advanced use cases (like rendering to custom output).\n */\n\n\nconst renderToHTMLTree = function (expression, options) {\n const settings = new Settings(options);\n\n try {\n const tree = src_parseTree(expression, settings);\n return buildHTMLTree(tree, expression, settings);\n } catch (error) {\n return renderError(error, expression, settings);\n }\n};\n\nconst version = \"0.16.21\";\nconst __domTree = {\n Span: Span,\n Anchor: Anchor,\n SymbolNode: SymbolNode,\n SvgNode: SvgNode,\n PathNode: PathNode,\n LineNode: LineNode\n}; // ESM exports\n\n // CJS exports and ESM default export\n\n/* harmony default export */ var katex = ({\n /**\n * Current KaTeX version\n */\n version,\n\n /**\n * Renders the given LaTeX into an HTML+MathML combination, and adds\n * it as a child to the specified DOM node.\n */\n render,\n\n /**\n * Renders the given LaTeX into an HTML+MathML combination string,\n * for sending to the client.\n */\n renderToString,\n\n /**\n * KaTeX error, usually during parsing.\n */\n ParseError: src_ParseError,\n\n /**\n * The schema of Settings\n */\n SETTINGS_SCHEMA: SETTINGS_SCHEMA,\n\n /**\n * Parses the given LaTeX into KaTeX's internal parse tree structure,\n * without rendering to HTML or MathML.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __parse: generateParseTree,\n\n /**\n * Renders the given LaTeX into an HTML+MathML internal DOM tree\n * representation, without flattening that representation to a string.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __renderToDomTree: renderToDomTree,\n\n /**\n * Renders the given LaTeX into an HTML internal DOM tree representation,\n * without MathML and without flattening that representation to a string.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __renderToHTMLTree: renderToHTMLTree,\n\n /**\n * extends internal font metrics object with a new object\n * each key in the new object represents a font name\n */\n __setFontMetrics: setFontMetrics,\n\n /**\n * adds a new symbol to builtin symbols table\n */\n __defineSymbol: defineSymbol,\n\n /**\n * adds a new function to builtin function list,\n * which directly produce parse tree elements\n * and have their own html/mathml builders\n */\n __defineFunction: defineFunction,\n\n /**\n * adds a new macro to builtin macro list\n */\n __defineMacro: defineMacro,\n\n /**\n * Expose the dom tree node types, which can be useful for type checking nodes.\n *\n * NOTE: These methods are not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __domTree\n});\n;// CONCATENATED MODULE: ./katex.webpack.js\n/**\n * This is the webpack entry point for KaTeX. As ECMAScript, flow[1] and jest[2]\n * doesn't support CSS modules natively, a separate entry point is used and\n * it is not flowtyped.\n *\n * [1] https://gist.github.com/lambdahands/d19e0da96285b749f0ef\n * [2] https://facebook.github.io/jest/docs/en/webpack.html\n */\n\n\n/* harmony default export */ var katex_webpack = (katex);\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./packages/@logrocket/console/src/index.js\":\n/*!**************************************************!*\\\n !*** ./packages/@logrocket/console/src/index.js ***!\n \\**************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _registerConsole = _interopRequireDefault(__webpack_require__(/*! ./registerConsole */ \"./packages/@logrocket/console/src/registerConsole.js\"));\nvar _default = _registerConsole.default;\nexports[\"default\"] = _default;\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/console/src/registerConsole.js\":\n/*!************************************************************!*\\\n !*** ./packages/@logrocket/console/src/registerConsole.js ***!\n \\************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = registerConsole;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\"));\nvar _enhanceFunc = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/enhanceFunc */ \"./packages/@logrocket/utils/src/enhanceFunc.ts\"));\nvar _exceptions = __webpack_require__(/*! @logrocket/exceptions */ \"./packages/@logrocket/exceptions/src/index.js\");\n// eslint-disable-line no-restricted-imports\n\nfunction registerConsole(logger) {\n var unsubFunctions = [];\n var methods = ['log', 'warn', 'info', 'error', 'debug'];\n methods.forEach(function (method) {\n unsubFunctions.push((0, _enhanceFunc.default)(console, method, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n logger.addEvent('lr.core.LogEvent', function () {\n var consoleOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isEnabled = consoleOptions.isEnabled;\n if ((0, _typeof2.default)(isEnabled) === 'object' && isEnabled[method] === false || isEnabled === false) {\n return null;\n }\n if (method === 'error' && consoleOptions.shouldAggregateConsoleErrors) {\n _exceptions.Capture.captureMessage(logger, args[0], args, {}, true);\n }\n return {\n logLevel: method.toUpperCase(),\n args: args\n };\n });\n }));\n });\n return function () {\n unsubFunctions.forEach(function (unsubFunction) {\n return unsubFunction();\n });\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/exceptions/src/Capture.js\":\n/*!*******************************************************!*\\\n !*** ./packages/@logrocket/exceptions/src/Capture.js ***!\n \\*******************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.captureMessage = captureMessage;\nexports.captureException = captureException;\nvar _scrubException = __webpack_require__(/*! @logrocket/utils/src/scrubException */ \"./packages/@logrocket/utils/src/scrubException.ts\");\nvar _TraceKit = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/TraceKit */ \"./packages/@logrocket/utils/src/TraceKit.js\"));\nvar _stackTraceFromError = _interopRequireDefault(__webpack_require__(/*! ./stackTraceFromError */ \"./packages/@logrocket/exceptions/src/stackTraceFromError.js\"));\n// eslint-disable-line no-restricted-imports\n// eslint-disable-line no-restricted-imports\n\nfunction captureMessage(logger, message, messageArgs) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var isConsole = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var data = {\n exceptionType: isConsole ? 'CONSOLE' : 'MESSAGE',\n message: message,\n messageArgs: messageArgs,\n browserHref: window.location ? window.location.href : ''\n };\n (0, _scrubException.scrubException)(data, options);\n logger.addEvent('lr.core.Exception', function () {\n return data;\n });\n}\nfunction captureException(logger, exception) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var preppedTrace = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var exceptionType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'WINDOW';\n var trace = preppedTrace || _TraceKit.default.computeStackTrace(exception);\n var data = {\n exceptionType: exceptionType,\n errorType: trace.name,\n message: trace.message,\n browserHref: window.location ? window.location.href : ''\n };\n (0, _scrubException.scrubException)(data, options);\n var addEventOptions = {\n _stackTrace: (0, _stackTraceFromError.default)(trace)\n };\n logger.addEvent('lr.core.Exception', function () {\n return data;\n }, addEventOptions);\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/exceptions/src/index.js\":\n/*!*****************************************************!*\\\n !*** ./packages/@logrocket/exceptions/src/index.js ***!\n \\*****************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"registerExceptions\", ({\n enumerable: true,\n get: function get() {\n return _registerExceptions.default;\n }\n}));\nexports.Capture = void 0;\nvar _registerExceptions = _interopRequireDefault(__webpack_require__(/*! ./registerExceptions */ \"./packages/@logrocket/exceptions/src/registerExceptions.js\"));\nvar Capture = _interopRequireWildcard(__webpack_require__(/*! ./Capture */ \"./packages/@logrocket/exceptions/src/Capture.js\"));\nexports.Capture = Capture;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/exceptions/src/raven/raven.js\":\n/*!***********************************************************!*\\\n !*** ./packages/@logrocket/exceptions/src/raven/raven.js ***!\n \\***********************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\nvar _TraceKit = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/TraceKit */ \"./packages/@logrocket/utils/src/TraceKit.js\"));\n/* eslint-disable */\n\n/*\nSome contents of this file were originaly from raven-js, BSD-2 Clause\n\nCopyright (c) 2018 Sentry (https://sentry.io) and individual contributors.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nvar objectPrototype = Object.prototype;\nfunction isUndefined(what) {\n return what === void 0;\n}\nfunction isFunction(what) {\n return typeof what === 'function';\n}\nfunction each(obj, callback) {\n var i, j;\n if (isUndefined(obj.length)) {\n for (i in obj) {\n if (hasKey(obj, i)) {\n callback.call(null, i, obj[i]);\n }\n }\n } else {\n j = obj.length;\n if (j) {\n for (i = 0; i < j; i++) {\n callback.call(null, i, obj[i]);\n }\n }\n }\n}\n\n/**\n * hasKey, a better form of hasOwnProperty\n * Example: hasKey(MainHostObject, property) === true/false\n *\n * @param {Object} host object to check property\n * @param {string} key to check\n */\nfunction hasKey(object, key) {\n return objectPrototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Polyfill a method\n * @param obj object e.g. `document`\n * @param name method name present on object e.g. `addEventListener`\n * @param replacement replacement function\n * @param track {optional} record instrumentation to an array\n */\nfunction fill(obj, name, replacement, track) {\n var orig = obj[name];\n obj[name] = replacement(orig);\n if (track) {\n track.push([obj, name, orig]);\n }\n}\nvar _window = typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};\nvar _document = _window.document;\nvar Handler = /*#__PURE__*/function () {\n function Handler(_ref) {\n var captureException = _ref.captureException;\n (0, _classCallCheck2.default)(this, Handler);\n this._errorHandler = this._errorHandler.bind(this);\n this._ignoreOnError = 0;\n this._wrappedBuiltIns = [];\n this.captureException = captureException;\n _TraceKit.default.report.subscribe(this._errorHandler);\n this._instrumentTryCatch();\n }\n (0, _createClass2.default)(Handler, [{\n key: \"uninstall\",\n value: function uninstall() {\n _TraceKit.default.report.unsubscribe(this._errorHandler);\n\n // restore any wrapped builtins\n var builtin;\n while (this._wrappedBuiltIns.length) {\n builtin = this._wrappedBuiltIns.shift();\n var obj = builtin[0],\n name = builtin[1],\n orig = builtin[2];\n obj[name] = orig;\n }\n }\n }, {\n key: \"_errorHandler\",\n value: function _errorHandler(report) {\n if (!this._ignoreOnError) {\n this.captureException(report);\n }\n }\n }, {\n key: \"_ignoreNextOnError\",\n value: function _ignoreNextOnError() {\n var _this = this;\n this._ignoreOnError += 1;\n setTimeout(function () {\n // onerror should trigger before setTimeout\n _this._ignoreOnError -= 1;\n });\n }\n\n /*\n * Wrap code within a context so Handler can capture errors\n * reliably across domains that is executed immediately.\n *\n * @param {object} options A specific set of options for this context [optional]\n * @param {function} func The callback to be immediately executed within the context\n * @param {array} args An array of arguments to be called with the callback [optional]\n */\n }, {\n key: \"context\",\n value: function context(options, func, args) {\n if (isFunction(options)) {\n args = func || [];\n func = options;\n options = undefined;\n }\n return this.wrap(options, func).apply(this, args);\n }\n }, {\n key: \"wrap\",\n value:\n /*\n * Wrap code within a context and returns back a new function to be executed\n *\n * @param {object} options A specific set of options for this context [optional]\n * @param {function} func The function to be wrapped in a new context\n * @param {function} func A function to call before the try/catch wrapper [optional, private]\n * @return {function} The newly wrapped functions with a context\n */\n function wrap(options, func, _before) {\n var self = this;\n // 1 argument has been passed, and it's not a function\n // so just return it\n if (isUndefined(func) && !isFunction(options)) {\n return options;\n }\n\n // options is optional\n if (isFunction(options)) {\n func = options;\n options = undefined;\n }\n\n // At this point, we've passed along 2 arguments, and the second one\n // is not a function either, so we'll just return the second argument.\n if (!isFunction(func)) {\n return func;\n }\n\n // We don't wanna wrap it twice!\n try {\n if (func.__lr__) {\n return func;\n }\n\n // If this has already been wrapped in the past, return that\n if (func.__lr_wrapper__) {\n return func.__lr_wrapper__;\n }\n\n // If func is not extensible, return the function as-is to prevent TypeErrors\n // when trying to add new props & to assure immutable funcs aren't changed\n if (!Object.isExtensible(func)) {\n return func;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see lr-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return func;\n }\n function wrapped() {\n var args = [],\n i = arguments.length,\n deep = !options || options && options.deep !== false;\n if (_before && isFunction(_before)) {\n _before.apply(this, arguments);\n }\n\n // Recursively wrap all of a function's arguments that are\n // functions themselves.\n while (i--) {\n args[i] = deep ? self.wrap(options, arguments[i]) : arguments[i];\n }\n try {\n // Attempt to invoke user-land function. This is part of the LogRocket SDK.\n // If you're seeing this frame in a stack trace, it means that LogRocket caught\n // an unhandled error thrown by your application code, reported it, then bubbled\n // it up. This is expected behavior and is not a bug with LogRocket.\n return func.apply(this, args);\n } catch (e) {\n self._ignoreNextOnError();\n self.captureException(_TraceKit.default.computeStackTrace(e), options);\n throw e;\n }\n }\n\n // copy over properties of the old function\n for (var property in func) {\n if (hasKey(func, property)) {\n wrapped[property] = func[property];\n }\n }\n wrapped.prototype = func.prototype;\n func.__lr_wrapper__ = wrapped;\n // Signal that this function has been wrapped already\n // for both debugging and to prevent it to being wrapped twice\n wrapped.__lr__ = true;\n wrapped.__inner__ = func;\n return wrapped;\n }\n }, {\n key: \"_instrumentTryCatch\",\n value:\n /**\n * Install any queued plugins\n */\n function _instrumentTryCatch() {\n var self = this;\n var wrappedBuiltIns = self._wrappedBuiltIns;\n function wrapTimeFn(orig) {\n return function (fn, t) {\n // preserve arity\n // Make a copy of the arguments to prevent deoptimization\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n var originalCallback = args[0];\n if (isFunction(originalCallback)) {\n args[0] = self.wrap(originalCallback);\n }\n\n // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it\n // also supports only two arguments and doesn't care what this is, so we\n // can just call the original function directly.\n if (orig.apply) {\n return orig.apply(this, args);\n } else {\n return orig(args[0], args[1]);\n }\n };\n }\n function wrapEventTarget(global) {\n var proto = _window[global] && _window[global].prototype;\n if (proto && proto.hasOwnProperty && proto.hasOwnProperty('addEventListener')) {\n fill(proto, 'addEventListener', function (orig) {\n return function (evtName, fn, capture, secure) {\n // preserve arity\n try {\n if (fn && fn.handleEvent) {\n fn.handleEvent = self.wrap(fn.handleEvent);\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs`\n // so that we don't have more than one wrapper function\n var before;\n return orig.call(this, evtName, self.wrap(fn, undefined, before), capture, secure);\n };\n }, wrappedBuiltIns);\n fill(proto, 'removeEventListener', function (orig) {\n return function (evt, fn, capture, secure) {\n /**\n * There are 3 scenararios to consider when removing an event listener\n *\n * 1. 'addEventListener' was called when the LR SDK was uninitialized.\n * In this case, the event handler has not been wrapped, so this behaves \n * as a passthrough and just removes the original handler.\n *\n * 2. 'addEventListener' was called while the LR SDK was initialized, which means\n * our wrapped 'addEventListener' was called. In this case, the tracked event handler\n * is also wrapped, so we need to remove that wrapped version of the handler.\n *\n * 3. 'addEventListener' was called both before and after the LR SDK was initialized\n * for the same event handler. In this case, we have to remove both of them.\n * If we'd remove only the wrapped one, the initial handler would stick around forever.\n */\n try {\n var wrappedFn = fn === null || fn === void 0 ? void 0 : fn.__lr_wrapper__;\n if (wrappedFn) {\n orig.call(this, evt, wrappedFn, capture, secure);\n }\n } catch (e) {\n // ignore, accessing __lr_wrapper__ will throw in some Selenium environments\n }\n return orig.call(this, evt, fn, capture, secure);\n };\n },\n // undefined is provided here to skip tracking for uninstall.\n // Once our removeEventListener is installed, it can't be uninstalled.\n // We always need to support removing logrocket wrapped event handlers (event\n // handlers added when logrocket was installed) even after SDK shutdown.\n undefined);\n }\n }\n fill(_window, 'setTimeout', wrapTimeFn, wrappedBuiltIns);\n fill(_window, 'setInterval', wrapTimeFn, wrappedBuiltIns);\n if (_window.requestAnimationFrame) {\n fill(_window, 'requestAnimationFrame', function (orig) {\n return function (cb) {\n return orig(self.wrap(cb));\n };\n }, wrappedBuiltIns);\n }\n\n // event targets borrowed from bugsnag-js:\n // https://github.com/bugsnag/bugsnag-js/blob/master/src/bugsnag.js#L666\n var eventTargets = ['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'];\n for (var i = 0; i < eventTargets.length; i++) {\n wrapEventTarget(eventTargets[i]);\n }\n var $ = _window.jQuery || _window.$;\n if ($ && $.fn && $.fn.ready) {\n fill($.fn, 'ready', function (orig) {\n return function (fn) {\n return orig.call(this, self.wrap(fn));\n };\n }, wrappedBuiltIns);\n }\n }\n }]);\n return Handler;\n}();\nexports[\"default\"] = Handler;\n;\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/exceptions/src/registerExceptions.js\":\n/*!******************************************************************!*\\\n !*** ./packages/@logrocket/exceptions/src/registerExceptions.js ***!\n \\******************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = registerCore;\nvar _raven = _interopRequireDefault(__webpack_require__(/*! ./raven/raven */ \"./packages/@logrocket/exceptions/src/raven/raven.js\"));\nvar Capture = _interopRequireWildcard(__webpack_require__(/*! ./Capture */ \"./packages/@logrocket/exceptions/src/Capture.js\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction registerCore(logger) {\n var raven = new _raven.default({\n captureException: function captureException(errorReport) {\n Capture.captureException(logger, null, null, errorReport);\n }\n });\n var rejectionHandler = function rejectionHandler(evt) {\n // http://2ality.com/2016/04/unhandled-rejections.html\n if (evt.reason instanceof Error) {\n Capture.captureException(logger, evt.reason, null, null, 'UNHANDLED_REJECTION');\n } else {\n logger.addEvent('lr.core.Exception', function () {\n return {\n exceptionType: 'UNHANDLED_REJECTION',\n message: evt.reason || 'Unhandled Promise rejection'\n };\n });\n }\n };\n window.addEventListener('unhandledrejection', rejectionHandler);\n return function () {\n window.removeEventListener('unhandledrejection', rejectionHandler);\n raven.uninstall();\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/exceptions/src/stackTraceFromError.js\":\n/*!*******************************************************************!*\\\n !*** ./packages/@logrocket/exceptions/src/stackTraceFromError.js ***!\n \\*******************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = stackTraceFromError;\nfunction stackTraceFromError(errorReport) {\n function makeNotNull(val) {\n return val === null ? undefined : val;\n }\n return errorReport.stack ? errorReport.stack.map(function (frame) {\n return {\n lineNumber: makeNotNull(frame.line),\n columnNumber: makeNotNull(frame.column),\n fileName: makeNotNull(frame.url),\n functionName: makeNotNull(frame.func)\n };\n }) : undefined;\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/network/src/fetchIntercept.js\":\n/*!***********************************************************!*\\\n !*** ./packages/@logrocket/network/src/fetchIntercept.js ***!\n \\***********************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\"));\nvar _registerXHR = __webpack_require__(/*! ./registerXHR */ \"./packages/@logrocket/network/src/registerXHR.js\");\nvar interceptors = [];\nfunction makeInterceptor(fetch, fetchId) {\n var reversedInterceptors = interceptors.reduce(function (array, interceptor) {\n return [interceptor].concat(array);\n }, []);\n // if a browser supports fetch, it supports promise\n // eslint-disable-next-line compat/compat\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n var promise = Promise.resolve(args);\n\n // Register request interceptors\n reversedInterceptors.forEach(function (_ref) {\n var request = _ref.request,\n requestError = _ref.requestError;\n if (request || requestError) {\n promise = promise.then(function (args) {\n return request.apply(void 0, [fetchId].concat((0, _toConsumableArray2.default)(args)));\n }, function (args) {\n return requestError.apply(void 0, [fetchId].concat((0, _toConsumableArray2.default)(args)));\n });\n }\n });\n promise = promise.then(function (args) {\n (0, _registerXHR.setActive)(false);\n var res;\n var err;\n try {\n res = fetch.apply(void 0, (0, _toConsumableArray2.default)(args));\n } catch (_err) {\n err = _err;\n }\n (0, _registerXHR.setActive)(true);\n if (err) {\n throw err;\n }\n return res;\n });\n reversedInterceptors.forEach(function (_ref2) {\n var response = _ref2.response,\n responseError = _ref2.responseError;\n if (response || responseError) {\n promise = promise.then(function (res) {\n return response(fetchId, res);\n }, function (err) {\n return responseError && responseError(fetchId, err);\n });\n }\n });\n return promise;\n}\nfunction attach(env) {\n if (!env.fetch || !env.Promise) {\n // Make sure fetch is available in the given environment. If it's not, then\n // default to using XHR intercept.\n return;\n }\n var isPolyfill = env.fetch.polyfill;\n\n // eslint-disable-next-line no-param-reassign\n env.fetch = function (fetch) {\n var fetchId = 0;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return makeInterceptor.apply(void 0, [fetch, fetchId++].concat(args));\n };\n }(env.fetch);\n\n // Forward the polyfill properly from fetch (set by github/whatwg-fetch).\n if (isPolyfill) {\n // eslint-disable-next-line no-param-reassign\n env.fetch.polyfill = isPolyfill;\n }\n}\n\n// TODO: React Native\n// attach(global);\n\nvar didAttach = false;\nvar _default = {\n register: function register(interceptor) {\n if (!didAttach) {\n didAttach = true;\n attach(window);\n }\n interceptors.push(interceptor);\n return function () {\n var index = interceptors.indexOf(interceptor);\n if (index >= 0) {\n interceptors.splice(index, 1);\n }\n };\n },\n clear: function clear() {\n interceptors = [];\n }\n};\nexports[\"default\"] = _default;\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/network/src/index.js\":\n/*!**************************************************!*\\\n !*** ./packages/@logrocket/network/src/index.js ***!\n \\**************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = registerNetwork;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\"));\nvar _registerFetch = _interopRequireDefault(__webpack_require__(/*! ./registerFetch */ \"./packages/@logrocket/network/src/registerFetch.js\"));\nvar _registerIonic = __webpack_require__(/*! ./registerIonic */ \"./packages/@logrocket/network/src/registerIonic.ts\");\nvar _registerNetworkInformation = _interopRequireDefault(__webpack_require__(/*! ./registerNetworkInformation */ \"./packages/@logrocket/network/src/registerNetworkInformation.js\"));\nvar _registerXHR = _interopRequireDefault(__webpack_require__(/*! ./registerXHR */ \"./packages/@logrocket/network/src/registerXHR.js\"));\nvar _mapValues = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/mapValues */ \"./packages/@logrocket/utils/src/mapValues.js\"));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// eslint-disable-line no-restricted-imports\n\nfunction registerNetwork(logger) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n isReactNative: false,\n isDisabled: false\n };\n if ((config === null || config === void 0 ? void 0 : config.isDisabled) === true) {\n return function () {};\n }\n var isReactNative = config.isReactNative,\n shouldAugmentNPS = config.shouldAugmentNPS,\n shouldParseXHRBlob = config.shouldParseXHRBlob;\n var ignoredNetwork = {};\n\n // truncate if > 4MB in size\n var truncate = function truncate(data) {\n var limit = 1024 * 1000 * 4;\n var str = data;\n if ((0, _typeof2.default)(data) === 'object' && data != null) {\n var proto = Object.getPrototypeOf(data);\n if (proto === Object.prototype || proto === null) {\n // plain object - jsonify for the size check\n str = JSON.stringify(data);\n }\n }\n if (str && str.length && str.length > limit && typeof str === 'string') {\n var beginning = str.substring(0, 1000);\n return \"\".concat(beginning, \" ... LogRocket truncating to first 1000 characters.\\n Keep data under 4MB to prevent truncation. https://docs.logrocket.com/reference/network\");\n }\n return data;\n };\n var addRequest = function addRequest(reqId, request) {\n var method = request.method;\n logger.addEvent('lr.network.RequestEvent', function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$isEnabled = _ref.isEnabled,\n isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,\n _ref$requestSanitizer = _ref.requestSanitizer,\n requestSanitizer = _ref$requestSanitizer === void 0 ? function (f) {\n return f;\n } : _ref$requestSanitizer;\n if (!isEnabled) {\n return null;\n }\n var sanitized = null;\n try {\n // only try catch user defined functions\n sanitized = requestSanitizer(_objectSpread(_objectSpread({}, request), {}, {\n reqId: reqId\n }));\n } catch (err) {\n console.error(err);\n }\n if (sanitized) {\n var url = sanitized.url;\n if (typeof document !== 'undefined' && typeof document.createElement === 'function') {\n // Writing and then reading from an a tag turns a relative\n // url into an absolute one.\n var a = document.createElement('a');\n a.href = sanitized.url;\n url = a.href;\n }\n return {\n reqId: reqId,\n // default\n url: url,\n // sanitized\n headers: (0, _mapValues.default)(sanitized.headers, function (headerValue) {\n // sanitized\n return \"\".concat(headerValue);\n }),\n body: truncate(sanitized.body),\n // sanitized\n method: method,\n // default\n referrer: sanitized.referrer || undefined,\n // sanitized\n mode: sanitized.mode || undefined,\n // sanitized\n credentials: sanitized.credentials || undefined // sanitized\n };\n }\n\n ignoredNetwork[reqId] = true;\n return null;\n });\n };\n var addResponse = function addResponse(reqId, response) {\n var method = response.method,\n status = response.status;\n logger.addEvent('lr.network.ResponseEvent', function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$isEnabled = _ref2.isEnabled,\n isEnabled = _ref2$isEnabled === void 0 ? true : _ref2$isEnabled,\n _ref2$responseSanitiz = _ref2.responseSanitizer,\n responseSanitizer = _ref2$responseSanitiz === void 0 ? function (f) {\n return f;\n } : _ref2$responseSanitiz;\n if (!isEnabled) {\n return null;\n } else if (ignoredNetwork[reqId]) {\n delete ignoredNetwork[reqId];\n return null;\n }\n var sanitized = null;\n try {\n // only try catch user defined functions\n sanitized = responseSanitizer(_objectSpread(_objectSpread({}, response), {}, {\n reqId: reqId\n }));\n } catch (err) {\n console.error(err);\n // fall through to redacted log\n }\n\n if (sanitized) {\n return {\n reqId: reqId,\n // default\n status: sanitized.status,\n // sanitized\n headers: (0, _mapValues.default)(sanitized.headers, function (headerValue) {\n // sanitized\n return \"\".concat(headerValue);\n }),\n body: truncate(sanitized.body),\n // sanitized\n method: method // default\n };\n }\n\n return {\n reqId: reqId,\n // default\n status: status,\n // default\n headers: {},\n // redacted\n body: null,\n // redacted\n method: method // default\n };\n });\n };\n\n var isIgnored = function isIgnored(reqId) {\n return logger.isDisabled || ignoredNetwork[reqId] === true;\n };\n var unsubFetch = (0, _registerFetch.default)({\n addRequest: addRequest,\n addResponse: addResponse,\n isIgnored: isIgnored\n });\n var unsubXHR = (0, _registerXHR.default)({\n addRequest: addRequest,\n addResponse: addResponse,\n isIgnored: isIgnored,\n logger: logger,\n shouldAugmentNPS: shouldAugmentNPS,\n shouldParseXHRBlob: shouldParseXHRBlob\n });\n var unsubIonic = (0, _registerIonic.registerIonic)({\n addRequest: addRequest,\n addResponse: addResponse,\n isIgnored: isIgnored\n });\n var unsubNetworkInformation = isReactNative ? function () {} : (0, _registerNetworkInformation.default)(logger);\n return function () {\n unsubNetworkInformation();\n unsubFetch();\n unsubXHR();\n unsubIonic();\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/network/src/registerFetch.js\":\n/*!**********************************************************!*\\\n !*** ./packages/@logrocket/network/src/registerFetch.js ***!\n \\**********************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = registerFetch;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _mapValues = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/mapValues */ \"./packages/@logrocket/utils/src/mapValues.js\"));\nvar _fetchIntercept = _interopRequireDefault(__webpack_require__(/*! ./fetchIntercept */ \"./packages/@logrocket/network/src/fetchIntercept.js\"));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction makeObjectFromHeaders(headers) {\n // If using real fetch, we must stringify the Headers object.\n if (headers == null || typeof headers.forEach !== 'function') {\n return headers;\n }\n var result = {};\n headers.forEach(function (value, key) {\n if (result[key]) {\n result[key] = \"\".concat(result[key], \",\").concat(value);\n } else {\n result[key] = \"\".concat(value);\n }\n });\n return result;\n}\n\n// XHR specification is unclear of what types to allow in value so using toString method for now\nvar stringifyHeaders = function stringifyHeaders(headers) {\n return (0, _mapValues.default)(makeObjectFromHeaders(headers), function (value) {\n return \"\".concat(value);\n });\n};\nfunction pluckFetchFields() {\n var arg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n url: arg.url,\n headers: stringifyHeaders(arg.headers),\n method: arg.method && arg.method.toUpperCase(),\n referrer: arg.referrer || undefined,\n mode: arg.mode || undefined,\n credentials: arg.credentials || undefined\n };\n}\nfunction registerFetch(_ref) {\n var addRequest = _ref.addRequest,\n addResponse = _ref.addResponse,\n isIgnored = _ref.isIgnored;\n var LOGROCKET_FETCH_LABEL = 'fetch-';\n var fetchMethodMap = {};\n var unregister = _fetchIntercept.default.register({\n request: function request(fetchId) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n var p;\n if (typeof Request !== 'undefined' && args[0] instanceof Request) {\n var clonedText;\n\n // Request.clone() and Request.text() may throw in Safari (e.g., when\n // request body contains FormData)\n try {\n clonedText = args[0].clone().text();\n } catch (err) {\n // if a browser supports fetch, it supports promise\n // eslint-disable-next-line compat/compat\n clonedText = Promise.resolve(\"LogRocket fetch error: \".concat(err.message));\n }\n p = clonedText.then(function (body) {\n return _objectSpread(_objectSpread({}, pluckFetchFields(args[0])), {}, {\n body: body\n });\n }, function (err) {\n return _objectSpread(_objectSpread({}, pluckFetchFields(args[0])), {}, {\n body: \"LogRocket fetch error: \".concat(err.message)\n });\n });\n } else {\n // if a browser supports fetch, it supports promise\n // eslint-disable-next-line compat/compat\n p = Promise.resolve(_objectSpread(_objectSpread({}, pluckFetchFields(args[1])), {}, {\n url: \"\".concat(args[0]),\n body: (args[1] || {}).body\n }));\n }\n return p.then(function (req) {\n fetchMethodMap[fetchId] = req.method;\n addRequest(\"\".concat(LOGROCKET_FETCH_LABEL).concat(fetchId), req);\n return args;\n });\n },\n requestError: function requestError(fetchId, error) {\n // if a browser supports fetch, it supports promise\n // eslint-disable-next-line compat/compat\n return Promise.reject(error);\n },\n response: function response(fetchId, _response) {\n var responseClone;\n var responseTextPromise;\n if (isIgnored(\"\".concat(LOGROCKET_FETCH_LABEL).concat(fetchId))) {\n // Don't even try to read ignored requests\n return _response;\n }\n\n // event-streams are meant to remain open and be consumed over time by the sender. Attempting to capture the body\n // of these requests will cause us to \"stall\" here, and prevents the users of our SDK from using event-streams\n // unless they have explicitly ignored the request.\n if (_response.headers.get('content-type') === 'text/event-stream') {\n // eslint-disable-next-line compat/compat\n responseTextPromise = Promise.resolve('LogRocket skipped consuming an event-stream body.');\n } else {\n try {\n // TODO: enhance function on original response and future clones for:\n // text(), json(), blob(), formdata(), arraybuffer()\n responseClone = _response.clone();\n } catch (err) {\n // safari has a bug where cloning can fail\n var responseHash = {\n url: _response.url,\n status: _response.status,\n headers: stringifyHeaders(_response.headers),\n body: \"LogRocket fetch error: \".concat(err.message),\n method: fetchMethodMap[fetchId]\n };\n delete fetchMethodMap[fetchId];\n addResponse(\"\".concat(LOGROCKET_FETCH_LABEL).concat(fetchId), responseHash);\n return _response;\n }\n try {\n if (window.TextDecoder && responseClone.body) {\n // use a reader to manually read the response body rather than calling response.text()\n // response.text() was timing out for some responses, in some cases because Apollo sends\n // an abort signal or because the stream wasn't getting terminated cleanly\n // using a reader allows us to capture what we can from response bodies before the\n // response receives an abort signal\n var reader = responseClone.body.getReader();\n // response bodies always decode with UTF-8\n // https://developer.mozilla.org/en-US/docs/Web/API/Response/text\n var utf8Decoder = new window.TextDecoder('utf-8');\n var bodyContents = '';\n responseTextPromise = reader.read().then(function readResponseBody(_ref2) {\n var done = _ref2.done,\n value = _ref2.value;\n if (done) {\n return bodyContents;\n }\n var chunk = value ? utf8Decoder.decode(value, {\n stream: true\n }) : '';\n bodyContents += chunk;\n return reader.read().then(readResponseBody);\n });\n } else {\n // TextDecoder doesn't have support across all browsers that LR supports, so if there's\n // no TextDecoder, fall back to the old approach\n responseTextPromise = responseClone.text();\n }\n } catch (error) {\n // eslint-disable-next-line compat/compat\n responseTextPromise = Promise.resolve(\"LogRocket error reading body: \".concat(error.message));\n }\n }\n responseTextPromise.catch(function (error) {\n // don't drop request & log to console when the request is aborted,\n // as it may have already completed\n // https://github.com/LogRocket/logrocket/issues/34\n if (error.name === 'AbortError' && error instanceof DOMException) {\n return;\n }\n return \"LogRocket error reading body: \".concat(error.message);\n }).then(function (data) {\n var responseHash = {\n url: _response.url,\n status: _response.status,\n headers: stringifyHeaders(_response.headers),\n body: data,\n method: fetchMethodMap[fetchId]\n };\n delete fetchMethodMap[fetchId];\n addResponse(\"\".concat(LOGROCKET_FETCH_LABEL).concat(fetchId), responseHash);\n });\n return _response;\n },\n responseError: function responseError(fetchId, error) {\n var response = {\n url: undefined,\n status: 0,\n headers: {},\n body: \"\".concat(error)\n };\n addResponse(\"\".concat(LOGROCKET_FETCH_LABEL).concat(fetchId), response);\n // if a browser supports fetch, it supports promise\n // eslint-disable-next-line compat/compat\n return Promise.reject(error);\n }\n });\n return unregister;\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/network/src/registerIonic.ts\":\n/*!**********************************************************!*\\\n !*** ./packages/@logrocket/network/src/registerIonic.ts ***!\n \\**********************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.mergeHeaders = mergeHeaders;\nexports.serializeQueryParams = serializeQueryParams;\nexports.appendQueryParamsString = appendQueryParamsString;\nexports.processData = processData;\nexports.registerIonic = registerIonic;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\"));\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\"));\nvar _protectFunc = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/protectFunc */ \"./packages/@logrocket/utils/src/protectFunc.js\"));\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar VALID_HTTP_METHODS = new Set(['get', 'put', 'post', 'patch', 'head', 'delete', 'options', 'upload', 'download']);\nvar VALID_SERIALIZERS = new Set(['urlencoded', 'json', 'utf8']);\nvar UNSUPPORTED_SERIALIZERS = new Set(['raw', 'multipart']);\nvar LOGROCKET_IONIC_LABEL = 'ionic-';\nvar UNSUPPORTED_PLATFORMS = new Set(['desktop', 'mobileweb', 'pwa']);\nvar FORM_DATA = new Set(['FormData']);\nvar EMPTY_SET = new Set();\nvar STRING_SET = new Set(['string']);\nvar STRING_ARRAY_SET = new Set(['string', 'array']);\nvar ALLOWED_DATA_TYPES = {\n utf8: STRING_SET,\n urlencoded: new Set(['object']),\n json: new Set(['array', 'object']),\n raw: new Set(['Uint8Array', 'ArrayBuffer']),\n default: EMPTY_SET\n};\n\n// Used in intercepting Ionic pugin requests found here https://www.npmjs.com/package/@ionic-native/http\n// based on https://github.com/silkimen/cordova-plugin-advanced-http/blob/master/www/public-interface.js\n\nfunction checkForValidStringValue(list, value, fieldName) {\n if (typeof value !== 'string') {\n throw new Error(\"\".concat(fieldName, \" must be one of: \").concat((0, _toConsumableArray2.default)(list).join(', ')));\n }\n\n // eslint-disable-next-line no-param-reassign\n value = value.trim().toLowerCase();\n if (!list.has(value)) {\n throw new Error(\"\".concat(fieldName, \" must be one of: \").concat((0, _toConsumableArray2.default)(list).join(', ')));\n }\n return value;\n}\nfunction checkKeyValuePairObject(obj, allowedChildren, onInvalidValueMessage) {\n if ((0, _typeof2.default)(obj) !== 'object') {\n throw new Error(onInvalidValueMessage);\n }\n for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!allowedChildren.has((0, _typeof2.default)(obj[key]))) {\n throw new Error(onInvalidValueMessage);\n }\n }\n return obj;\n}\nfunction getMatchingHostHeaders(url, ionicHttp) {\n var _URL = new URL(url),\n host = _URL.host;\n return ionicHttp.getHeaders(host) || null;\n}\nfunction mergeHeaders(defaultHeaders, headers) {\n return _objectSpread(_objectSpread({}, defaultHeaders), headers);\n}\nfunction getMergedHeaders(url, requestHeaders, ionicHttp) {\n // get global headers via public method\n var globalHeaders = ionicHttp.getHeaders('*') || {};\n var hostHeaders = getMatchingHostHeaders(url, ionicHttp) || {};\n return mergeHeaders(mergeHeaders(globalHeaders, hostHeaders), requestHeaders);\n}\nfunction serializeValue(value, encode) {\n if (encode) {\n return encodeURIComponent(value);\n } else {\n return value;\n }\n}\nfunction serializeIdentifier(parentKey, key, encode) {\n if (!parentKey.length) {\n return encode ? encodeURIComponent(key) : key;\n }\n if (encode) {\n return \"\".concat(encodeURIComponent(parentKey), \"[\").concat(encodeURIComponent(key), \"]\");\n } else {\n return \"\".concat(parentKey, \"[\").concat(key, \"]\");\n }\n}\nfunction serializeArray(parentKey, array, encode) {\n var parts = [];\n var _iterator = _createForOfIteratorHelper(array),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var e = _step.value;\n if (Array.isArray(e)) {\n parts.push(serializeArray(\"\".concat(parentKey, \"[]\"), e, encode));\n continue;\n } else if ((0, _typeof2.default)(e) === 'object') {\n /* This replicates what appears to be a bug in the Ionic code in order to capture everything identically\n parts.push(serializeObject(`${parentKey}[]${array[i]}`, encode));\n https://github.com/silkimen/cordova-plugin-advanced-http/blob/master/www/url-util.js#L73\n */\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n parts.push(serializeObject(\"\".concat(parentKey, \"[]\").concat(e), encode, undefined));\n continue;\n }\n parts.push(\"\".concat(serializeIdentifier(parentKey, '', encode), \"=\").concat(serializeValue(e, encode)));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return parts.join('&');\n}\nfunction serializeObject(parentKey, object, encode) {\n var parts = [];\n for (var key in object) {\n if (!object.hasOwnProperty(key)) {\n continue;\n }\n var identifier = parentKey.length ? \"\".concat(parentKey, \"[\").concat(key, \"]\") : key;\n if (Array.isArray(object[key])) {\n parts.push(serializeArray(identifier, object[key], encode));\n continue;\n } else if ((0, _typeof2.default)(object[key]) === 'object' && object[key] !== null) {\n parts.push(serializeObject(identifier, object[key], encode));\n continue;\n }\n parts.push(\"\".concat(serializeIdentifier(parentKey, key, encode), \"=\").concat(serializeValue(object[key], encode)));\n }\n return parts.join('&');\n}\nfunction serializeQueryParams(params, encode) {\n return serializeObject('', params, encode);\n}\nfunction appendQueryParamsString(url, params) {\n if (!url.length || !params.length) {\n return url;\n }\n var _URL2 = new URL(url),\n host = _URL2.host,\n pathname = _URL2.pathname,\n search = _URL2.search,\n hash = _URL2.hash,\n protocol = _URL2.protocol;\n return \"\".concat(protocol, \"//\").concat(host).concat(pathname).concat(search.length ? \"\".concat(search, \"&\").concat(params) : \"?\".concat(params)).concat(hash);\n}\nfunction getAllowedDataTypes(dataSerializer) {\n return ALLOWED_DATA_TYPES[dataSerializer] || ALLOWED_DATA_TYPES.default;\n}\nfunction getAllowedInstanceTypes(dataSerializer) {\n return dataSerializer === 'multipart' ? FORM_DATA : EMPTY_SET;\n}\nfunction processData(data, dataSerializer) {\n var currentDataType = (0, _typeof2.default)(data);\n var allowedDataTypes = getAllowedDataTypes(dataSerializer);\n var allowedInstanceTypes = getAllowedInstanceTypes(dataSerializer);\n if (allowedInstanceTypes.size > 0) {\n var isCorrectInstanceType = false;\n allowedInstanceTypes.forEach(function (type) {\n if (__webpack_require__.g[type] && data instanceof __webpack_require__.g[type]) {\n isCorrectInstanceType = true;\n }\n });\n if (!isCorrectInstanceType) {\n throw new Error(\"INSTANCE_TYPE_MISMATCH_DATA \".concat((0, _toConsumableArray2.default)(allowedInstanceTypes).join(', ')));\n }\n }\n if (allowedInstanceTypes.size === 0 && !allowedDataTypes.has(currentDataType)) {\n throw new Error(\"TYPE_MISMATCH_DATA \".concat((0, _toConsumableArray2.default)(allowedDataTypes).join(', ')));\n }\n switch (dataSerializer) {\n case 'utf8':\n // already a string\n return data;\n default:\n // object of some sort (urlencoded or json)\n return JSON.stringify(data, undefined, 2);\n }\n}\nfunction handleMissingOptions(options, ionicHttp) {\n // eslint-disable-next-line no-param-reassign\n options = options || {};\n var serializer;\n var data = options.data;\n try {\n // need to check special case if data type is not handled by LR but otherwise valid\n serializer = checkForValidStringValue(VALID_SERIALIZERS, options.serializer || ionicHttp.getDataSerializer(), 'serializer / data payload type');\n } catch (_unused) {\n // if this fails it's of entirely invalid type, let it fail\n serializer = checkForValidStringValue(UNSUPPORTED_SERIALIZERS, options.serializer || ionicHttp.getDataSerializer(), 'serializer / data payload type');\n // is of a valid but unsupported to LR type, set data to empty\n data = {};\n }\n return {\n data: data,\n filePath: options.filePath,\n followRedirect: options.followRedirect,\n headers: checkKeyValuePairObject(options.headers || {}, STRING_SET, 'Invalid header type, must be string'),\n method: checkForValidStringValue(VALID_HTTP_METHODS, options.method || VALID_HTTP_METHODS[0], 'method'),\n name: options.name,\n params: checkKeyValuePairObject(options.params || {}, STRING_ARRAY_SET, 'Invalid param, must be of type string or array'),\n responseType: options.responseType,\n serializer: serializer,\n connectTimeout: options.connectTimeout,\n readTimeout: options.readTimeout,\n timeout: options.timeout\n };\n}\nvar ionicIdCounter = 0;\nfunction registerIonic(_ref) {\n var _cordova, _cordova$plugin, _window$ionic;\n var addRequest = _ref.addRequest,\n addResponse = _ref.addResponse,\n isIgnored = _ref.isIgnored;\n var ionicHttp = (_cordova = window.cordova) === null || _cordova === void 0 ? void 0 : (_cordova$plugin = _cordova.plugin) === null || _cordova$plugin === void 0 ? void 0 : _cordova$plugin.http;\n var ionicMap = {};\n var unsubscribedFromIonic = false;\n if (typeof ionicHttp === 'undefined') {\n // Plugin does not exist! Empty uninstall hook.\n return function () {};\n }\n var platforms = (_window$ionic = window.ionic) === null || _window$ionic === void 0 ? void 0 : _window$ionic.platforms;\n if (typeof platforms !== 'undefined' && typeof platforms.some === 'function' && platforms.some(function (e) {\n return UNSUPPORTED_PLATFORMS.has(e);\n })) {\n // We appear to be running in a web browser, do not hook and let XHR wrap instead.\n return function () {};\n }\n var originalSendRequest = ionicHttp.sendRequest;\n var handleResponse = (0, _protectFunc.default)(function (response, isSuccess, ionicReqId) {\n if (!isIgnored(\"\".concat(LOGROCKET_IONIC_LABEL).concat(ionicReqId))) {\n try {\n var responseHash = {\n url: response.url || '',\n status: response.status < 600 && response.status >= 100 ? response.status : 0,\n headers: response.headers || {},\n body: isSuccess ? response.data : response.error,\n method: ionicMap[ionicReqId].toUpperCase()\n };\n addResponse(\"\".concat(LOGROCKET_IONIC_LABEL).concat(ionicReqId), responseHash);\n } catch (err) {\n var _responseHash = {\n url: response.url || '',\n status: response.status < 600 && response.status >= 100 ? response.status : 0,\n headers: response.headers || {},\n body: \"LogRocket fetch error: \".concat(err.message),\n method: ionicMap[ionicReqId].toUpperCase()\n };\n addResponse(\"\".concat(LOGROCKET_IONIC_LABEL).concat(ionicReqId), _responseHash);\n }\n } // Otherwise, don't even try to read ignored / unsubscribed requests\n });\n\n ionicHttp.sendRequest = function (url, options, success, failure) {\n var currentId = ++ionicIdCounter;\n var ourSuccessHandler = function ourSuccessHandler(response) {\n if (!unsubscribedFromIonic) {\n handleResponse(response, true, currentId);\n delete ionicMap[currentId];\n }\n success(response);\n };\n var ourFailureHandler = function ourFailureHandler(response) {\n if (!unsubscribedFromIonic) {\n handleResponse(response, false, currentId);\n delete ionicMap[currentId];\n }\n failure(response);\n };\n if (!unsubscribedFromIonic) {\n try {\n // will throw just like identical ionic code if input is invalid\n var modifiedOptions = handleMissingOptions(options, ionicHttp);\n var modifiedUrl = appendQueryParamsString(url, serializeObject('', modifiedOptions.params, true));\n // need to minic behavior of Ionic API by adding global headers\n var mergedHeaders = getMergedHeaders(url, modifiedOptions.headers, ionicHttp);\n\n // ionic APIs default to get method\n var method = modifiedOptions.method || 'get';\n ionicMap[currentId] = method;\n var requestHash = {\n url: modifiedUrl,\n method: method.toUpperCase(),\n headers: mergedHeaders || {},\n // only applicable on post, put or patch methods\n body: processData(modifiedOptions.data || {}, modifiedOptions.serializer)\n };\n addRequest(\"\".concat(LOGROCKET_IONIC_LABEL).concat(currentId), requestHash);\n } catch (err) {\n var _requestHash = {\n url: url,\n method: (options.method || 'get').toUpperCase(),\n headers: {},\n body: \"LogRocket fetch error: \".concat(err.message)\n };\n addRequest(\"\".concat(LOGROCKET_IONIC_LABEL).concat(currentId), _requestHash);\n }\n }\n return originalSendRequest(url, options, ourSuccessHandler, ourFailureHandler);\n };\n return function () {\n unsubscribedFromIonic = true;\n ionicHttp.sendRequest = originalSendRequest;\n ionicMap = {};\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/network/src/registerNetworkInformation.js\":\n/*!***********************************************************************!*\\\n !*** ./packages/@logrocket/network/src/registerNetworkInformation.js ***!\n \\***********************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = registerNetworkInformation;\nvar EFFECTIVE_TYPE_VALS = {\n 'slow-2g': 'SLOW2G',\n '2g': 'TWOG',\n '3g': 'THREEG',\n '4g': 'FOURG'\n};\nfunction registerNetworkInformation(logger) {\n var lastStatus = undefined;\n function sendNetworkInformation() {\n var newStatus = {\n online: window.navigator.onLine,\n effectiveType: 'UNKOWN'\n };\n if (!window.navigator.onLine) {\n newStatus.effectiveType = 'NONE';\n } else if (window.navigator.connection && window.navigator.connection.effectiveType) {\n newStatus.effectiveType = EFFECTIVE_TYPE_VALS[window.navigator.connection.effectiveType] || 'UNKNOWN';\n }\n if (lastStatus && newStatus.online === lastStatus.online && newStatus.effectiveType === lastStatus.effectiveType) {\n return;\n }\n lastStatus = newStatus;\n logger.addEvent('lr.network.NetworkStatusEvent', function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$isEnabled = _ref.isEnabled,\n isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled;\n if (!isEnabled) {\n return null;\n }\n return newStatus;\n });\n }\n setTimeout(sendNetworkInformation);\n if (window.navigator.connection && typeof window.navigator.connection.addEventListener === 'function') {\n window.navigator.connection.addEventListener('change', sendNetworkInformation);\n }\n window.addEventListener('online', sendNetworkInformation);\n window.addEventListener('offline', sendNetworkInformation);\n return function () {\n window.removeEventListener('offline', sendNetworkInformation);\n window.removeEventListener('online', sendNetworkInformation);\n if (window.navigator.connection && typeof window.navigator.connection.removeEventListener === 'function') {\n window.navigator.connection.removeEventListener('change', sendNetworkInformation);\n }\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/network/src/registerXHR.js\":\n/*!********************************************************!*\\\n !*** ./packages/@logrocket/network/src/registerXHR.js ***!\n \\********************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setActive = setActive;\nexports[\"default\"] = registerXHR;\nvar _mapValues = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/mapValues */ \"./packages/@logrocket/utils/src/mapValues.js\"));\nvar _enhanceFunc = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/enhanceFunc */ \"./packages/@logrocket/utils/src/enhanceFunc.ts\"));\nvar _startsWith = _interopRequireDefault(__webpack_require__(/*! @logrocket/utils/src/startsWith */ \"./packages/@logrocket/utils/src/startsWith.js\"));\nvar _nps = __webpack_require__(/*! @logrocket/utils/src/constants/nps */ \"./packages/@logrocket/utils/src/constants/nps.js\");\n// eslint-disable-line no-restricted-imports\n// eslint-disable-line no-restricted-imports\n// eslint-disable-line no-restricted-imports\n\nvar isActive = true;\nfunction setActive(shouldBeActive) {\n isActive = shouldBeActive;\n}\nvar currentXHRId = 0;\nfunction registerXHR(_ref) {\n var addRequest = _ref.addRequest,\n addResponse = _ref.addResponse,\n isIgnored = _ref.isIgnored,\n logger = _ref.logger,\n _ref$shouldAugmentNPS = _ref.shouldAugmentNPS,\n shouldAugmentNPS = _ref$shouldAugmentNPS === void 0 ? true : _ref$shouldAugmentNPS,\n _ref$shouldParseXHRBl = _ref.shouldParseXHRBlob,\n shouldParseXHRBlob = _ref$shouldParseXHRBl === void 0 ? false : _ref$shouldParseXHRBl;\n var _XHR = XMLHttpRequest;\n var xhrMap = new WeakMap();\n var unsubscribedFromXhr = false;\n var LOGROCKET_XHR_LABEL = 'xhr-';\n window._lrXMLHttpRequest = XMLHttpRequest;\n\n // eslint-disable-next-line no-native-reassign\n XMLHttpRequest = function XMLHttpRequest(mozAnon, mozSystem) {\n var xhrObject = new _XHR(mozAnon, mozSystem);\n if (!isActive) {\n return xhrObject;\n }\n xhrMap.set(xhrObject, {\n xhrId: ++currentXHRId,\n headers: {}\n });\n var openOriginal = xhrObject.open;\n function openShim() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n try {\n var url = args[1];\n if (window.URL && typeof window.URL === 'function' && url.search(_nps.WOOTRIC_RESPONSES_REGEX) === 0) {\n var logrocketSessionURL = new window.URL(logger.recordingURL);\n logrocketSessionURL.searchParams.set('nps', 'wootric');\n var urlObj = new window.URL(url);\n var responseText = urlObj.searchParams.get('response[text]');\n var feedback = responseText ? \"\".concat(responseText, \"\\n\\n\") : '';\n urlObj.searchParams.set('response[text]', \"\".concat(feedback, \"<\").concat(logrocketSessionURL.href, \"|View LogRocket session>\"));\n args[1] = urlObj.href; // eslint-disable-line no-param-reassign\n }\n } catch (e) {/* do nothing */}\n return openOriginal.apply(this, args);\n }\n var sendOriginal = xhrObject.send;\n function sendShim() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n try {\n var currentXHR = xhrMap.get(xhrObject);\n if (window.URL && typeof window.URL === 'function' && currentXHR && currentXHR.url && currentXHR.url.search(_nps.DELIGHTED_RESPONSES_REGEX) === 0 && args.length && args[0].indexOf(_nps.DELIGHTED_FEEDBACK_PREFIX) !== -1) {\n var recordingURL = new window.URL(logger.recordingURL);\n recordingURL.searchParams.set('nps', 'delighted');\n var logrocketSessionURL = encodeURIComponent(recordingURL.href);\n var data = args[0].split('&').map(function (dataString) {\n if ((0, _startsWith.default)(dataString, _nps.DELIGHTED_FEEDBACK_PREFIX)) {\n var isEmpty = dataString === _nps.DELIGHTED_FEEDBACK_PREFIX;\n return \"\".concat(dataString).concat(isEmpty ? '' : '\\n\\n', \"<\").concat(logrocketSessionURL, \"|View LogRocket session>\");\n }\n return dataString;\n }).join('&');\n args[0] = data; // eslint-disable-line no-param-reassign\n }\n } catch (e) {/* do nothing */}\n return sendOriginal.apply(this, args);\n }\n if (shouldAugmentNPS) {\n xhrObject.open = openShim;\n xhrObject.send = sendShim;\n }\n\n // ..., 'open', (method, url, async, username, password) => {\n (0, _enhanceFunc.default)(xhrObject, 'open', function (method, url) {\n if (unsubscribedFromXhr) {\n return;\n }\n var currentXHR = xhrMap.get(xhrObject);\n currentXHR.method = method;\n currentXHR.url = url;\n });\n (0, _enhanceFunc.default)(xhrObject, 'send', function (data) {\n if (unsubscribedFromXhr) {\n return;\n }\n var currentXHR = xhrMap.get(xhrObject);\n if (!currentXHR) {\n return;\n }\n var request = {\n url: currentXHR.url,\n method: currentXHR.method && currentXHR.method.toUpperCase(),\n headers: (0, _mapValues.default)(currentXHR.headers || {}, function (headerValues) {\n return headerValues.join(', ');\n }),\n body: data\n };\n addRequest(\"\".concat(LOGROCKET_XHR_LABEL).concat(currentXHR.xhrId), request);\n });\n (0, _enhanceFunc.default)(xhrObject, 'setRequestHeader', function (header, value) {\n if (unsubscribedFromXhr) {\n return;\n }\n var currentXHR = xhrMap.get(xhrObject);\n if (!currentXHR) {\n return;\n }\n currentXHR.headers = currentXHR.headers || {};\n currentXHR.headers[header] = currentXHR.headers[header] || [];\n currentXHR.headers[header].push(value);\n });\n var xhrListeners = {\n readystatechange: function readystatechange() {\n if (unsubscribedFromXhr) {\n return;\n }\n if (xhrObject.readyState === 4) {\n var currentXHR = xhrMap.get(xhrObject);\n if (!currentXHR) {\n return;\n }\n\n // Do not read ignored requests at all.\n if (isIgnored(\"\".concat(LOGROCKET_XHR_LABEL).concat(currentXHR.xhrId))) {\n return;\n }\n var headerString = xhrObject.getAllResponseHeaders() || '';\n var headers = headerString.split(/[\\r\\n]+/).reduce(function (previous, current) {\n var next = previous;\n var headerParts = current.split(': ');\n if (headerParts.length > 0) {\n var key = headerParts.shift(); // first index of the array\n var value = headerParts.join(': '); // rest of the array repaired\n if (previous[key]) {\n next[key] += \", \".concat(value);\n } else {\n next[key] = value;\n }\n }\n return next;\n }, {});\n var body;\n\n // IE 11 sometimes throws when trying to access large responses\n try {\n switch (xhrObject.responseType) {\n case 'json':\n body = logger._shouldCloneResponse ? JSON.parse(JSON.stringify(xhrObject.response)) : xhrObject.response;\n break;\n case 'arraybuffer':\n case 'blob':\n {\n body = xhrObject.response;\n break;\n }\n case 'document':\n {\n body = xhrObject.responseXML;\n break;\n }\n case 'text':\n case '':\n {\n body = xhrObject.responseText;\n break;\n }\n default:\n {\n body = '';\n }\n }\n } catch (err) {\n body = 'LogRocket: Error accessing response.';\n }\n var response = {\n url: currentXHR.url,\n status: xhrObject.status,\n headers: headers,\n body: body,\n method: (currentXHR.method || '').toUpperCase()\n };\n if (shouldParseXHRBlob && response.body instanceof Blob) {\n var blobReader = new FileReader();\n blobReader.readAsText(response.body);\n blobReader.onload = function () {\n try {\n response.body = JSON.parse(blobReader.result);\n } catch (_unused) {} // eslint-disable-line no-empty\n addResponse(\"\".concat(LOGROCKET_XHR_LABEL).concat(currentXHR.xhrId), response);\n };\n } else {\n addResponse(\"\".concat(LOGROCKET_XHR_LABEL).concat(currentXHR.xhrId), response);\n }\n }\n }\n // // Unused Event Listeners\n // loadstart: () => {},\n // progress: () => {},\n // abort: () => {},\n // error: () => {},\n // load: () => {},\n // timeout: () => {},\n // loadend: () => {},\n };\n\n Object.keys(xhrListeners).forEach(function (key) {\n xhrObject.addEventListener(key, xhrListeners[key]);\n });\n return xhrObject;\n };\n\n // this allows \"instanceof XMLHttpRequest\" to work\n XMLHttpRequest.prototype = _XHR.prototype;\n\n // Persist the static variables.\n ['UNSENT', 'OPENED', 'HEADERS_RECEIVED', 'LOADING', 'DONE'].forEach(function (variable) {\n XMLHttpRequest[variable] = _XHR[variable];\n });\n return function () {\n unsubscribedFromXhr = true;\n // eslint-disable-next-line no-native-reassign\n XMLHttpRequest = _XHR;\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/now/src/index.js\":\n/*!**********************************************!*\\\n !*** ./packages/@logrocket/now/src/index.js ***!\n \\**********************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n/* eslint-disable compat/compat */\nvar dateNow = Date.now.bind(Date);\nvar loadTime = dateNow();\nvar _default = typeof performance !== 'undefined' && performance.now ? performance.now.bind(performance) : function () {\n return dateNow() - loadTime;\n};\nexports[\"default\"] = _default;\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/redux/src/createEnhancer.js\":\n/*!*********************************************************!*\\\n !*** ./packages/@logrocket/redux/src/createEnhancer.js ***!\n \\*********************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = createEnhancer;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _now = _interopRequireDefault(__webpack_require__(/*! @logrocket/now */ \"./packages/@logrocket/now/src/index.js\"));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar storeIdCounter = 0;\nfunction createEnhancer(logger) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$stateSanitizer = _ref.stateSanitizer,\n stateSanitizer = _ref$stateSanitizer === void 0 ? function (f) {\n return f;\n } : _ref$stateSanitizer,\n _ref$actionSanitizer = _ref.actionSanitizer,\n actionSanitizer = _ref$actionSanitizer === void 0 ? function (f) {\n return f;\n } : _ref$actionSanitizer;\n // an enhancer is a function that returns a Store\n return function (createStore) {\n return function (reducer, initialState, enhancer) {\n var store = createStore(reducer, initialState, enhancer);\n var originalDispatch = store.dispatch;\n var storeId = storeIdCounter++;\n logger.addEvent('lr.redux.InitialState', function () {\n var sanitizedState;\n try {\n // only try catch user defined functions\n sanitizedState = stateSanitizer(store.getState());\n } catch (err) {\n console.error(err.toString());\n }\n return {\n state: sanitizedState,\n storeId: storeId\n };\n });\n var dispatch = function dispatch(action) {\n var start = (0, _now.default)();\n var err;\n var res;\n try {\n res = originalDispatch(action);\n } catch (_err) {\n err = _err;\n } finally {\n var duration = (0, _now.default)() - start;\n logger.addEvent('lr.redux.ReduxAction', function () {\n var sanitizedState = null;\n var sanitizedAction = null;\n try {\n // only try catch user defined functions\n sanitizedState = stateSanitizer(store.getState());\n sanitizedAction = actionSanitizer(action);\n } catch (err) {\n console.error(err.toString());\n }\n if (sanitizedState && sanitizedAction) {\n return {\n storeId: storeId,\n action: sanitizedAction,\n duration: duration,\n stateDelta: sanitizedState\n };\n }\n return null;\n });\n }\n if (err) {\n throw err;\n }\n return res;\n };\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: dispatch\n });\n };\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/redux/src/createMiddleware.js\":\n/*!***********************************************************!*\\\n !*** ./packages/@logrocket/redux/src/createMiddleware.js ***!\n \\***********************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = createMiddleware;\nvar _now = _interopRequireDefault(__webpack_require__(/*! @logrocket/now */ \"./packages/@logrocket/now/src/index.js\"));\nvar storeIdCounter = 0;\nfunction createMiddleware(logger) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$stateSanitizer = _ref.stateSanitizer,\n stateSanitizer = _ref$stateSanitizer === void 0 ? function (f) {\n return f;\n } : _ref$stateSanitizer,\n _ref$actionSanitizer = _ref.actionSanitizer,\n actionSanitizer = _ref$actionSanitizer === void 0 ? function (f) {\n return f;\n } : _ref$actionSanitizer;\n return function (store) {\n var storeId = storeIdCounter++;\n logger.addEvent('lr.redux.InitialState', function () {\n var sanitizedState;\n try {\n // only try catch user defined functions\n sanitizedState = stateSanitizer(store.getState());\n } catch (err) {\n console.error(err.toString());\n }\n return {\n state: sanitizedState,\n storeId: storeId\n };\n });\n return function (next) {\n return function (action) {\n var start = (0, _now.default)();\n var err;\n var res;\n try {\n res = next(action);\n } catch (_err) {\n err = _err;\n } finally {\n var duration = (0, _now.default)() - start;\n logger.addEvent('lr.redux.ReduxAction', function () {\n var sanitizedState = null;\n var sanitizedAction = null;\n try {\n // only try catch user defined functions\n sanitizedState = stateSanitizer(store.getState());\n sanitizedAction = actionSanitizer(action);\n } catch (err) {\n console.error(err.toString());\n }\n if (sanitizedState && sanitizedAction) {\n return {\n storeId: storeId,\n action: sanitizedAction,\n duration: duration,\n stateDelta: sanitizedState\n };\n }\n return null;\n });\n }\n if (err) {\n throw err;\n }\n return res;\n };\n };\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/redux/src/index.js\":\n/*!************************************************!*\\\n !*** ./packages/@logrocket/redux/src/index.js ***!\n \\************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createEnhancer\", ({\n enumerable: true,\n get: function get() {\n return _createEnhancer.default;\n }\n}));\nObject.defineProperty(exports, \"createMiddleware\", ({\n enumerable: true,\n get: function get() {\n return _createMiddleware.default;\n }\n}));\nvar _createEnhancer = _interopRequireDefault(__webpack_require__(/*! ./createEnhancer */ \"./packages/@logrocket/redux/src/createEnhancer.js\"));\nvar _createMiddleware = _interopRequireDefault(__webpack_require__(/*! ./createMiddleware */ \"./packages/@logrocket/redux/src/createMiddleware.js\"));\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/TraceKit.js\":\n/*!***************************************************!*\\\n !*** ./packages/@logrocket/utils/src/TraceKit.js ***!\n \\***************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n/* eslint-disable */\n\n\n\n/*\n TraceKit - Cross browser stack traces - github.com/occ/TraceKit\n\n This was originally forked from github.com/occ/TraceKit, but has since been\n largely re-written and is now maintained as part of raven-js. Tests for\n this are in test/vendor.\n\n MIT license\n*/\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar TraceKit = {\n collectWindowErrors: true,\n debug: false\n};\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window = typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};\n\n// global reference to slice\nvar _slice = [].slice;\nvar UNKNOWN_FUNCTION = '?';\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:Uncaught (?:exception: )?)?((?:Eval|Internal|Range|Reference|Syntax|Type|URI)Error): ?(.*)$/;\nfunction getLocationHref() {\n if (typeof document === 'undefined' || typeof document.location === 'undefined') return '';\n return document.location.href;\n}\n\n/**\n * TraceKit.report: cross-browser processing of unhandled exceptions\n *\n * Syntax:\n * TraceKit.report.subscribe(function(stackInfo) { ... })\n * TraceKit.report.unsubscribe(function(stackInfo) { ... })\n * TraceKit.report(exception)\n * try { ...code... } catch(ex) { TraceKit.report(ex); }\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Requires TraceKit.computeStackTrace.\n *\n * Tries to catch all unhandled exceptions and report them to the\n * subscribed handlers. Please note that TraceKit.report will rethrow the\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\n * If the exception does not reach the top of the browser, you will only\n * get a stack trace from the point where TraceKit.report was called.\n *\n * Handlers receive a stackInfo object as described in the\n * TraceKit.computeStackTrace docs.\n */\nTraceKit.report = function reportModuleWrapper() {\n var handlers = [],\n lastArgs = null,\n lastException = null,\n lastExceptionStack = null;\n\n /**\n * Add a crash handler.\n * @param {Function} handler\n */\n function subscribe(handler) {\n installGlobalHandler();\n handlers.push(handler);\n }\n\n /**\n * Remove a crash handler.\n * @param {Function} handler\n */\n function unsubscribe(handler) {\n for (var i = handlers.length - 1; i >= 0; --i) {\n if (handlers[i] === handler) {\n handlers.splice(i, 1);\n }\n }\n }\n\n /**\n * Remove all crash handlers.\n */\n function unsubscribeAll() {\n uninstallGlobalHandler();\n handlers = [];\n }\n\n /**\n * Dispatch stack information to all handlers.\n * @param {Object.} stack\n */\n function notifyHandlers(stack, isWindowError) {\n var exception = null;\n if (isWindowError && !TraceKit.collectWindowErrors) {\n return;\n }\n for (var i in handlers) {\n if (handlers.hasOwnProperty(i)) {\n try {\n handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));\n } catch (inner) {\n exception = inner;\n }\n }\n }\n if (exception) {\n throw exception;\n }\n }\n var _oldOnerrorHandler, _onErrorHandlerInstalled;\n\n /**\n * Ensures all global unhandled exceptions are recorded.\n * Supported by Gecko and IE.\n * @param {string} message Error message.\n * @param {string} url URL of script that generated the exception.\n * @param {(number|string)} lineNo The line number at which the error\n * occurred.\n * @param {?(number|string)} colNo The column number at which the error\n * occurred.\n * @param {?Error} ex The actual Error object.\n */\n function traceKitWindowOnError(message, url, lineNo, colNo, ex) {\n var stack = null;\n if (lastExceptionStack) {\n TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message);\n processLastException();\n } else if (ex) {\n // New chrome and blink send along a real error object\n // Let's just report that like a normal error.\n // See: https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror\n stack = TraceKit.computeStackTrace(ex);\n notifyHandlers(stack, true);\n } else {\n var location = {\n 'url': url,\n 'line': lineNo,\n 'column': colNo\n };\n var name = undefined;\n var msg = message; // must be new var or will modify original `arguments`\n var groups;\n if ({}.toString.call(message) === '[object String]') {\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n msg = groups[2];\n }\n }\n location.func = UNKNOWN_FUNCTION;\n stack = {\n 'name': name,\n 'message': msg,\n 'url': getLocationHref(),\n 'stack': [location]\n };\n notifyHandlers(stack, true);\n }\n if (_oldOnerrorHandler) {\n return _oldOnerrorHandler.apply(this, arguments);\n }\n return false;\n }\n function installGlobalHandler() {\n if (_onErrorHandlerInstalled) {\n return;\n }\n _oldOnerrorHandler = _window.onerror;\n _window.onerror = traceKitWindowOnError;\n _onErrorHandlerInstalled = true;\n }\n function uninstallGlobalHandler() {\n if (!_onErrorHandlerInstalled) {\n return;\n }\n _window.onerror = _oldOnerrorHandler;\n _onErrorHandlerInstalled = false;\n _oldOnerrorHandler = undefined;\n }\n function processLastException() {\n var _lastExceptionStack = lastExceptionStack,\n _lastArgs = lastArgs;\n lastArgs = null;\n lastExceptionStack = null;\n lastException = null;\n notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));\n }\n\n /**\n * Reports an unhandled Error to TraceKit.\n * @param {Error} ex\n * @param {?boolean} rethrow If false, do not re-throw the exception.\n * Only used for window.onerror to not cause an infinite loop of\n * rethrowing.\n */\n function report(ex, rethrow) {\n var args = _slice.call(arguments, 1);\n if (lastExceptionStack) {\n if (lastException === ex) {\n return; // already caught by an inner catch block, ignore\n } else {\n processLastException();\n }\n }\n var stack = TraceKit.computeStackTrace(ex);\n lastExceptionStack = stack;\n lastException = ex;\n lastArgs = args;\n\n // If the stack trace is incomplete, wait for 2 seconds for\n // slow slow IE to see if onerror occurs or not before reporting\n // this exception; otherwise, we will end up with an incomplete\n // stack trace\n setTimeout(function () {\n if (lastException === ex) {\n processLastException();\n }\n }, stack.incomplete ? 2000 : 0);\n if (rethrow !== false) {\n throw ex; // re-throw to propagate to the top level (and cause window.onerror)\n }\n }\n\n report.subscribe = subscribe;\n report.unsubscribe = unsubscribe;\n report.uninstall = unsubscribeAll;\n return report;\n}();\n\n/**\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\n *\n * Syntax:\n * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\n * Returns:\n * s.name - exception name\n * s.message - exception message\n * s.stack[i].url - JavaScript or HTML file URL\n * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work)\n * s.stack[i].args - arguments passed to the function, if known\n * s.stack[i].line - line number, if known\n * s.stack[i].column - column number, if known\n *\n * Supports:\n * - Firefox: full stack trace with line numbers and unreliable column\n * number on top frame\n * - Opera 10: full stack trace with line and column numbers\n * - Opera 9-: full stack trace with line numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the topmost stacktrace element\n * only\n * - IE: no line numbers whatsoever\n *\n * Tries to guess names of anonymous functions by looking for assignments\n * in the source code. In IE and Safari, we have to guess source file names\n * by searching for function bodies inside all page scripts. This will not\n * work for scripts that are loaded cross-domain.\n * Here be dragons: some function names may be guessed incorrectly, and\n * duplicate functions may be mismatched.\n *\n * TraceKit.computeStackTrace should only be used for tracing purposes.\n * Logging of unhandled exceptions should be done with TraceKit.report,\n * which builds on top of TraceKit.computeStackTrace and provides better\n * IE support by utilizing the window.onerror event to retrieve information\n * about the top of the stack.\n *\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\n * so computeStackTrace instead walks its *own* chain of callers.\n * This means that:\n * * in Safari, some methods may be missing from the stack trace;\n * * in IE, the topmost function in the stack trace will always be the\n * caller of computeStackTrace.\n *\n * This is okay for tracing (because you are likely to be calling\n * computeStackTrace from the function you want to be the topmost element\n * of the stack trace anyway), but not okay for logging unhandled\n * exceptions (because your catch block will likely be far away from the\n * inner function that actually caused the exception).\n *\n */\nTraceKit.computeStackTrace = function computeStackTraceWrapper() {\n /**\n * Escapes special characters, except for whitespace, in a string to be\n * used inside a regular expression as a string literal.\n * @param {string} text The string.\n * @return {string} The escaped string literal.\n */\n function escapeRegExp(text) {\n return text.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#]/g, '\\\\$&');\n }\n\n /**\n * Escapes special characters in a string to be used inside a regular\n * expression as a string literal. Also ensures that HTML entities will\n * be matched the same as their literal friends.\n * @param {string} body The string.\n * @return {string} The escaped string.\n */\n function escapeCodeAsRegExpForMatchingInsideHTML(body) {\n return escapeRegExp(body).replace('<', '(?:<|<)').replace('>', '(?:>|>)').replace('&', '(?:&|&)').replace('\"', '(?:\"|")').replace(/\\s+/g, '\\\\s+');\n }\n\n // Contents of Exception in various browsers.\n //\n // SAFARI:\n // ex.message = Can't find variable: qq\n // ex.line = 59\n // ex.sourceId = 580238192\n // ex.sourceURL = http://...\n // ex.expressionBeginOffset = 96\n // ex.expressionCaretOffset = 98\n // ex.expressionEndOffset = 98\n // ex.name = ReferenceError\n //\n // FIREFOX:\n // ex.message = qq is not defined\n // ex.fileName = http://...\n // ex.lineNumber = 59\n // ex.columnNumber = 69\n // ex.stack = ...stack trace... (see the example below)\n // ex.name = ReferenceError\n //\n // CHROME:\n // ex.message = qq is not defined\n // ex.name = ReferenceError\n // ex.type = not_defined\n // ex.arguments = ['aa']\n // ex.stack = ...stack trace...\n //\n // INTERNET EXPLORER:\n // ex.message = ...\n // ex.name = ReferenceError\n //\n // OPERA:\n // ex.message = ...message... (see the example below)\n // ex.name = ReferenceError\n // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)\n // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\n\n /**\n * Computes stack trace information from the stack property.\n * Chrome and Gecko use this property.\n * @param {Error} ex\n * @return {?Object.} Stack trace information.\n */\n function computeStackTraceFromStackProp(ex) {\n if (typeof ex.stack === 'undefined' || !ex.stack) return;\n var chrome = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,\n gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|resource|\\[native).*?)(?::(\\d+))?(?::(\\d+))?\\s*$/i,\n winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,\n lines = ex.stack.split('\\n'),\n stack = [],\n parts,\n element,\n reference = /^(.*) is undefined$/.exec(ex.message);\n for (var i = 0, j = lines.length; i < j; ++i) {\n if (parts = chrome.exec(lines[i])) {\n var isNative = parts[2] && parts[2].indexOf('native') !== -1;\n element = {\n 'url': !isNative ? parts[2] : null,\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': isNative ? [parts[2]] : [],\n 'line': parts[3] ? +parts[3] : null,\n 'column': parts[4] ? +parts[4] : null\n };\n } else if (parts = winjs.exec(lines[i])) {\n element = {\n 'url': parts[2],\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': [],\n 'line': +parts[3],\n 'column': parts[4] ? +parts[4] : null\n };\n } else if (parts = gecko.exec(lines[i])) {\n element = {\n 'url': parts[3],\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': parts[2] ? parts[2].split(',') : [],\n 'line': parts[4] ? +parts[4] : null,\n 'column': parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n if (!stack[0].column && typeof ex.columnNumber !== 'undefined') {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n stack[0].column = ex.columnNumber + 1;\n }\n return {\n 'name': ex.name,\n 'message': ex.message,\n 'url': getLocationHref(),\n 'stack': stack\n };\n }\n\n /**\n * Adds information about the first frame to incomplete stack traces.\n * Safari and IE require this to get complete data on the first frame.\n * @param {Object.} stackInfo Stack trace information from\n * one of the compute* methods.\n * @param {string} url The URL of the script that caused an error.\n * @param {(number|string)} lineNo The line number of the script that\n * caused an error.\n * @param {string=} message The error generated by the browser, which\n * hopefully contains the name of the object that caused the error.\n * @return {boolean} Whether or not the stack information was\n * augmented.\n */\n function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) {\n var initial = {\n 'url': url,\n 'line': lineNo\n };\n if (initial.url && initial.line) {\n stackInfo.incomplete = false;\n if (!initial.func) {\n initial.func = UNKNOWN_FUNCTION;\n }\n if (stackInfo.stack.length > 0) {\n if (stackInfo.stack[0].url === initial.url) {\n if (stackInfo.stack[0].line === initial.line) {\n return false; // already in stack trace\n } else if (!stackInfo.stack[0].line && stackInfo.stack[0].func === initial.func) {\n stackInfo.stack[0].line = initial.line;\n return false;\n }\n }\n }\n stackInfo.stack.unshift(initial);\n stackInfo.partial = true;\n return true;\n } else {\n stackInfo.incomplete = true;\n }\n return false;\n }\n\n /**\n * Computes stack trace information by walking the arguments.caller\n * chain at the time the exception occurred. This will cause earlier\n * frames to be missed but is the only way to get any stack trace in\n * Safari and IE. The top frame is restored by\n * {@link augmentStackTraceWithInitialElement}.\n * @param {Error} ex\n * @return {?Object.} Stack trace information.\n */\n function computeStackTraceByWalkingCallerChain(ex, depth) {\n var functionName = /function\\s+([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?\\s*\\(/i,\n stack = [],\n funcs = {},\n recursion = false,\n parts,\n item,\n source;\n for (var curr = computeStackTraceByWalkingCallerChain.caller; curr && !recursion; curr = curr.caller) {\n if (curr === computeStackTrace || curr === TraceKit.report) {\n // console.log('skipping internal function');\n continue;\n }\n item = {\n 'url': null,\n 'func': UNKNOWN_FUNCTION,\n 'line': null,\n 'column': null\n };\n if (curr.name) {\n item.func = curr.name;\n } else if (parts = functionName.exec(curr.toString())) {\n item.func = parts[1];\n }\n if (typeof item.func === 'undefined') {\n try {\n item.func = parts.input.substring(0, parts.input.indexOf('{'));\n } catch (e) {}\n }\n if (funcs['' + curr]) {\n recursion = true;\n } else {\n funcs['' + curr] = true;\n }\n stack.push(item);\n }\n if (depth) {\n // console.log('depth is ' + depth);\n // console.log('stack is ' + stack.length);\n stack.splice(0, depth);\n }\n var result = {\n 'name': ex.name,\n 'message': ex.message,\n 'url': getLocationHref(),\n 'stack': stack\n };\n augmentStackTraceWithInitialElement(result, ex.sourceURL || ex.fileName, ex.line || ex.lineNumber, ex.message || ex.description);\n return result;\n }\n\n /**\n * Computes a stack trace for an exception.\n * @param {Error} ex\n * @param {(string|number)=} depth\n */\n function computeStackTrace(ex, depth) {\n var stack = null;\n depth = depth == null ? 0 : +depth;\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (TraceKit.debug) {\n throw e;\n }\n }\n try {\n stack = computeStackTraceByWalkingCallerChain(ex, depth + 1);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (TraceKit.debug) {\n throw e;\n }\n }\n return {\n 'name': ex.name,\n 'message': ex.message,\n 'url': getLocationHref()\n };\n }\n computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement;\n computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp;\n return computeStackTrace;\n}();\nvar _default = TraceKit;\nexports[\"default\"] = _default;\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/constants/nps.js\":\n/*!********************************************************!*\\\n !*** ./packages/@logrocket/utils/src/constants/nps.js ***!\n \\********************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DELIGHTED_FEEDBACK_PREFIX = exports.DELIGHTED_RESPONSES_REGEX = exports.WOOTRIC_RESPONSES_REGEX = void 0;\nvar WOOTRIC_RESPONSES_REGEX = /^https:\\/\\/production.wootric.com\\/responses/;\nexports.WOOTRIC_RESPONSES_REGEX = WOOTRIC_RESPONSES_REGEX;\nvar DELIGHTED_RESPONSES_REGEX = /^https:\\/\\/web.delighted.com\\/e\\/[a-zA-Z-]*\\/c/;\nexports.DELIGHTED_RESPONSES_REGEX = DELIGHTED_RESPONSES_REGEX;\nvar DELIGHTED_FEEDBACK_PREFIX = 'comment=';\nexports.DELIGHTED_FEEDBACK_PREFIX = DELIGHTED_FEEDBACK_PREFIX;\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/enhanceFunc.ts\":\n/*!******************************************************!*\\\n !*** ./packages/@logrocket/utils/src/enhanceFunc.ts ***!\n \\******************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = enhanceFunc;\nvar NO_OP_UNREGISTER = function NO_OP_UNREGISTER() {};\nfunction enhanceFunc(obj, method, handler) {\n var prop = Object.getOwnPropertyDescriptor(obj, method);\n if (!prop || prop.writable === false || typeof prop.value !== 'function') {\n return NO_OP_UNREGISTER;\n }\n var original = prop.value;\n function shim() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var res = original.apply(this, args);\n handler.apply(this, args);\n return res;\n }\n Object.defineProperty(obj, method, {\n value: shim,\n writable: true\n });\n return function () {\n Object.defineProperty(obj, method, prop);\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/logError.js\":\n/*!***************************************************!*\\\n !*** ./packages/@logrocket/utils/src/logError.js ***!\n \\***************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar canBind = typeof console !== 'undefined' && console.error && console.error.bind;\nvar logError = canBind ? console.error.bind(console) : function () {};\nvar _default = logError;\nexports[\"default\"] = _default;\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/mapValues.js\":\n/*!****************************************************!*\\\n !*** ./packages/@logrocket/utils/src/mapValues.js ***!\n \\****************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = mapValues;\nfunction mapValues(obj, f) {\n if (obj == null) {\n return {};\n }\n var res = {};\n Object.keys(obj).forEach(function (key) {\n res[key] = f(obj[key]);\n });\n return res;\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/protectFunc.js\":\n/*!******************************************************!*\\\n !*** ./packages/@logrocket/utils/src/protectFunc.js ***!\n \\******************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = protectFunc;\nvar _sendTelemetryData = _interopRequireDefault(__webpack_require__(/*! ./sendTelemetryData */ \"./packages/@logrocket/utils/src/sendTelemetryData.js\"));\nvar _logError = _interopRequireDefault(__webpack_require__(/*! ./logError */ \"./packages/@logrocket/utils/src/logError.js\"));\nfunction protectFunc(f) {\n var onFail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n return function () {\n var result;\n try {\n result = f.apply(void 0, arguments);\n } catch (err) {\n if (typeof window !== 'undefined' && window._lrdebug) {\n throw err;\n }\n var payload = onFail(err);\n (0, _logError.default)('LogRocket', err);\n (0, _sendTelemetryData.default)(err, payload);\n }\n return result;\n };\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/scrubException.ts\":\n/*!*********************************************************!*\\\n !*** ./packages/@logrocket/utils/src/scrubException.ts ***!\n \\*********************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.scrubException = scrubException;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\"));\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction isScalar(value) {\n return /boolean|number|string/.test((0, _typeof2.default)(value));\n}\nvar optionalScalars = [\n// Valid values for 'level' are 'fatal', 'error', 'warning', 'info',\n// and 'debug'. Defaults to 'error'.\n'level', 'logger'];\nvar optionalMaps = ['tags', 'extra'];\nfunction scrubException(data, options) {\n if (options) {\n var _iterator = _createForOfIteratorHelper(optionalScalars),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var field = _step.value;\n var value = options[field];\n if (isScalar(value)) {\n // eslint-disable-next-line no-param-reassign\n data[field] = value.toString();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var _iterator2 = _createForOfIteratorHelper(optionalMaps),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _field = _step2.value;\n var dirty = options[_field] || {};\n var scrubbed = {};\n for (var _i = 0, _Object$keys = Object.keys(dirty); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n var _value = dirty[key];\n if (isScalar(_value)) {\n scrubbed[key.toString()] = _value.toString();\n }\n }\n\n // eslint-disable-next-line no-param-reassign\n data[_field] = scrubbed;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/sendTelemetryData.js\":\n/*!************************************************************!*\\\n !*** ./packages/@logrocket/utils/src/sendTelemetryData.js ***!\n \\************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.sendTelemetry = sendTelemetry;\nexports[\"default\"] = sendErrorTelemetry;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _logError = _interopRequireDefault(__webpack_require__(/*! ./logError */ \"./packages/@logrocket/utils/src/logError.js\"));\nvar _TraceKit = _interopRequireDefault(__webpack_require__(/*! ./TraceKit */ \"./packages/@logrocket/utils/src/TraceKit.js\"));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// eslint-disable-next-line no-undef\nvar SCRIPT_VERSION = true ? \"1630cf537814c02d23e74c27795284f0a0881580\" : 0;\nfunction _sendToSentry(data) {\n var XHR = window._lrXMLHttpRequest || XMLHttpRequest;\n try {\n var req = new XHR();\n var message = data.message;\n var url = 'https://e.logrocket.com/api/3/store/?sentry_version=7&sentry_client=http%2F3.8.0&sentry_key=b64162b4187a4c5caae8a68a7e291793';\n req.open('POST', url);\n req.send(JSON.stringify(_objectSpread({\n message: message,\n logger: 'javascript',\n platform: 'javascript',\n request: {\n headers: {\n 'User-Agent': typeof navigator !== 'undefined' && navigator.userAgent\n },\n url: typeof location !== 'undefined' && location.href\n },\n release: SCRIPT_VERSION,\n environment: false || 'test'\n }, data)));\n } catch (err) {\n (0, _logError.default)('Failed to send', err);\n }\n}\nfunction sendTelemetry(message, more) {\n if (typeof window !== 'undefined' && window._lrdebug) {\n return void (0, _logError.default)(message);\n }\n if (more && more.extra && more.extra.appID && typeof more.extra.appID.indexOf === 'function' && more.extra.appID.indexOf('au2drp/') === 0 && Math.random() >= 0.25) {\n return;\n }\n _sendToSentry(_objectSpread({\n message: message\n }, more));\n}\nfunction sendErrorTelemetry(err, payload) {\n try {\n var message = err.message;\n var stringPayload;\n try {\n stringPayload = JSON.stringify(payload).slice(0, 1000);\n } catch (err) {\n try {\n stringPayload = \"Could not stringify payload: \".concat(Object.prototype.toString.call(payload));\n } catch (err) {/* nada */}\n }\n var stack;\n try {\n stack = _TraceKit.default.computeStackTrace(err).stack.map(function (frame) {\n return {\n filename: frame.url,\n lineno: frame.line,\n colno: frame.column,\n function: frame.func || '?'\n };\n });\n } catch (err) {\n /* nada */\n }\n _sendToSentry({\n message: message,\n extra: {\n stringPayload: stringPayload\n },\n exception: {\n values: [{\n type: err.type,\n value: message,\n stacktrace: {\n frames: stack\n }\n }]\n }\n });\n } catch (err) {\n (0, _logError.default)('Failed to send', err);\n }\n}\n\n/***/ }),\n\n/***/ \"./packages/@logrocket/utils/src/startsWith.js\":\n/*!*****************************************************!*\\\n !*** ./packages/@logrocket/utils/src/startsWith.js ***!\n \\*****************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = startsWith;\nfunction startsWith(value, search) {\n var pos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n return value && search && value.substring(pos, pos + search.length) === search;\n}\n\n/***/ }),\n\n/***/ \"./packages/logrocket/src/LogRocket.js\":\n/*!*********************************************!*\\\n !*** ./packages/logrocket/src/LogRocket.js ***!\n \\*********************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = exports.MAX_QUEUE_SIZE = void 0;\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js\"));\nvar _network = _interopRequireDefault(__webpack_require__(/*! @logrocket/network */ \"./packages/@logrocket/network/src/index.js\"));\nvar _exceptions = __webpack_require__(/*! @logrocket/exceptions */ \"./packages/@logrocket/exceptions/src/index.js\");\nvar _console = _interopRequireDefault(__webpack_require__(/*! @logrocket/console */ \"./packages/@logrocket/console/src/index.js\"));\nvar _redux = __webpack_require__(/*! @logrocket/redux */ \"./packages/@logrocket/redux/src/index.js\");\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar MAX_QUEUE_SIZE = 1000;\nexports.MAX_QUEUE_SIZE = MAX_QUEUE_SIZE;\nvar considerIngestServerOption = function considerIngestServerOption() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n ingestServer = _ref.ingestServer,\n options = (0, _objectWithoutProperties2.default)(_ref, [\"ingestServer\"]);\n if (ingestServer) {\n return _objectSpread({\n serverURL: \"\".concat(ingestServer, \"/i\"),\n statsURL: \"\".concat(ingestServer, \"/s\")\n }, options);\n }\n return options;\n};\nvar LogRocket = /*#__PURE__*/function () {\n function LogRocket() {\n var _this = this;\n (0, _classCallCheck2.default)(this, LogRocket);\n this._buffer = [];\n // TODO: tests for these exposed methods.\n ['log', 'info', 'warn', 'error', 'debug'].forEach(function (method) {\n _this[method] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this.addEvent('lr.core.LogEvent', function () {\n var consoleOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (method === 'error' && consoleOptions.shouldAggregateConsoleErrors) {\n _exceptions.Capture.captureMessage(_this, args[0], args, {}, true);\n }\n return {\n logLevel: method.toUpperCase(),\n args: args\n };\n }, {\n shouldCaptureStackTrace: true\n });\n };\n });\n this._isInitialized = false;\n this._installed = [];\n\n // expose a callback to get the session URL from the global context\n window._lr_surl_cb = this.getSessionURL.bind(this);\n }\n (0, _createClass2.default)(LogRocket, [{\n key: \"addEvent\",\n value: function addEvent(type, getMessage) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var time = Date.now();\n this._run(function (logger) {\n logger.addEvent(type, getMessage, _objectSpread(_objectSpread({}, opts), {}, {\n timeOverride: time\n }));\n });\n }\n }, {\n key: \"onLogger\",\n value: function onLogger(logger) {\n this._logger = logger;\n while (this._buffer.length > 0) {\n var f = this._buffer.shift();\n f(this._logger);\n }\n }\n }, {\n key: \"_run\",\n value: function _run(f) {\n if (this._isDisabled) {\n return;\n }\n if (this._logger) {\n f(this._logger);\n } else {\n if (this._buffer.length >= MAX_QUEUE_SIZE) {\n this._isDisabled = true;\n console.warn('LogRocket: script did not load. Check that you have a valid network connection.');\n this.uninstall();\n return;\n }\n this._buffer.push(f.bind(this));\n }\n }\n }, {\n key: \"init\",\n value: function init(appID) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this._isInitialized) {\n var _opts$network;\n var _opts$shouldAugmentNP = opts.shouldAugmentNPS,\n shouldAugmentNPS = _opts$shouldAugmentNP === void 0 ? true : _opts$shouldAugmentNP,\n _opts$shouldParseXHRB = opts.shouldParseXHRBlob,\n shouldParseXHRBlob = _opts$shouldParseXHRB === void 0 ? false : _opts$shouldParseXHRB,\n _opts$shouldDetectExc = opts.shouldDetectExceptions,\n shouldDetectExceptions = _opts$shouldDetectExc === void 0 ? true : _opts$shouldDetectExc;\n if (shouldDetectExceptions) {\n this._installed.push((0, _exceptions.registerExceptions)(this));\n }\n this._installed.push((0, _network.default)(this, {\n shouldAugmentNPS: !!shouldAugmentNPS,\n shouldParseXHRBlob: !!shouldParseXHRBlob,\n isDisabled: (opts === null || opts === void 0 ? void 0 : (_opts$network = opts.network) === null || _opts$network === void 0 ? void 0 : _opts$network.isEnabled) === false\n }));\n this._installed.push((0, _console.default)(this));\n this._isInitialized = true;\n this._run(function (logger) {\n logger.init(appID, considerIngestServerOption(opts));\n });\n }\n }\n }, {\n key: \"start\",\n value: function start() {\n this._run(function (logger) {\n logger.start();\n });\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this._installed.forEach(function (f) {\n return f();\n });\n this._buffer = [];\n this._run(function (logger) {\n logger.uninstall();\n });\n }\n }, {\n key: \"identify\",\n value: function identify(id, opts) {\n this._run(function (logger) {\n logger.identify(id, opts);\n });\n }\n }, {\n key: \"startNewSession\",\n value: function startNewSession() {\n this._run(function (logger) {\n logger.startNewSession();\n });\n }\n }, {\n key: \"track\",\n value: function track(customEventName, eventProperties) {\n this._run(function (logger) {\n logger.track(customEventName, eventProperties);\n });\n }\n }, {\n key: \"getSessionURL\",\n value: function getSessionURL(cb) {\n if (typeof cb !== 'function') {\n throw new Error('LogRocket: must pass callback to getSessionURL()');\n }\n this._run(function (logger) {\n if (logger.getSessionURL) {\n logger.getSessionURL(cb);\n } else {\n cb(logger.recordingURL);\n }\n });\n }\n }, {\n key: \"trackScrollEvent\",\n value: function trackScrollEvent(target) {\n // Only reigster the event if the core logger is available,\n // otherwise we won't yet have captured the target element:\n if (this._logger) {\n this._logger.trackScrollEvent(target);\n }\n }\n }, {\n key: \"getVersion\",\n value: function getVersion(cb) {\n this._run(function (logger) {\n cb(logger.version);\n });\n }\n }, {\n key: \"captureMessage\",\n value: function captureMessage(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _exceptions.Capture.captureMessage(this, message, [message], options);\n }\n }, {\n key: \"captureException\",\n value: function captureException(exception) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _exceptions.Capture.captureException(this, exception, options);\n }\n }, {\n key: \"version\",\n get: function get() {\n return this._logger && this._logger.version;\n }\n }, {\n key: \"sessionURL\",\n get: function get() {\n return this._logger && this._logger.recordingURL;\n }\n }, {\n key: \"recordingURL\",\n get: function get() {\n return this._logger && this._logger.recordingURL;\n }\n }, {\n key: \"recordingID\",\n get: function get() {\n return this._logger && this._logger.recordingID;\n }\n }, {\n key: \"threadID\",\n get: function get() {\n return this._logger && this._logger.threadID;\n }\n }, {\n key: \"tabID\",\n get: function get() {\n return this._logger && this._logger.tabID;\n }\n }, {\n key: \"reduxEnhancer\",\n value: function reduxEnhancer() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return (0, _redux.createEnhancer)(this, options);\n }\n }, {\n key: \"reduxMiddleware\",\n value: function reduxMiddleware() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return (0, _redux.createMiddleware)(this, options);\n }\n }, {\n key: \"isDisabled\",\n get: function get() {\n return !!(this._isDisabled || this._logger && this._logger._isDisabled);\n }\n }]);\n return LogRocket;\n}();\nexports[\"default\"] = LogRocket;\n\n/***/ }),\n\n/***/ \"./packages/logrocket/src/makeLogRocket.js\":\n/*!*************************************************!*\\\n !*** ./packages/logrocket/src/makeLogRocket.js ***!\n \\*************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = makeLogRocket;\nvar _LogRocket = _interopRequireDefault(__webpack_require__(/*! ./LogRocket */ \"./packages/logrocket/src/LogRocket.js\"));\nvar REACT_NATIVE_NOTICE = 'LogRocket on React Native requires the LogRocket React Native specific SDK. See setup guide here https://docs.logrocket.com/reference/react-native.';\nvar makeNoopPolyfill = function makeNoopPolyfill() {\n return {\n init: function init() {},\n uninstall: function uninstall() {},\n log: function log() {},\n info: function info() {},\n warn: function warn() {},\n error: function error() {},\n debug: function debug() {},\n addEvent: function addEvent() {},\n identify: function identify() {},\n start: function start() {},\n get threadID() {\n return null;\n },\n get recordingID() {\n return null;\n },\n get recordingURL() {\n return null;\n },\n reduxEnhancer: function reduxEnhancer() {\n return function (store) {\n return function () {\n return store.apply(void 0, arguments);\n };\n };\n },\n reduxMiddleware: function reduxMiddleware() {\n return function () {\n return function (next) {\n return function (action) {\n return next(action);\n };\n };\n };\n },\n track: function track() {},\n getSessionURL: function getSessionURL() {},\n getVersion: function getVersion() {},\n startNewSession: function startNewSession() {},\n onLogger: function onLogger() {},\n setClock: function setClock() {},\n captureMessage: function captureMessage() {},\n captureException: function captureException() {}\n };\n};\nfunction makeLogRocket() {\n var getLogger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n throw new Error(REACT_NATIVE_NOTICE);\n }\n if (typeof window !== 'undefined') {\n if (window._disableLogRocket) {\n return makeNoopPolyfill();\n }\n if (window.MutationObserver && window.WeakMap) {\n // Save window globals that we rely on.\n window._lrMutationObserver = window.MutationObserver;\n var instance = new _LogRocket.default();\n getLogger(instance);\n return instance;\n }\n }\n return makeNoopPolyfill();\n}\n\n/***/ }),\n\n/***/ \"./packages/logrocket/src/setup.js\":\n/*!*****************************************!*\\\n !*** ./packages/logrocket/src/setup.js ***!\n \\*****************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = setup;\nvar _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js\"));\nvar _makeLogRocket = _interopRequireDefault(__webpack_require__(/*! ./makeLogRocket */ \"./packages/logrocket/src/makeLogRocket.js\"));\nvar CDN_SERVER_MAP = {\n 'cdn.logrocket.io': 'https://r.logrocket.io',\n 'cdn.lr-ingest.io': 'https://r.lr-ingest.io',\n 'cdn.lr-in.com': 'https://r.lr-in.com',\n 'cdn.lr-in-prod.com': 'https://r.lr-in-prod.com',\n 'cdn.lr-ingest.com': 'https://r.lr-ingest.com',\n 'cdn.ingest-lr.com': 'https://r.ingest-lr.com',\n 'cdn.lr-intake.com': 'https://r.lr-intake.com',\n 'cdn.intake-lr.com': 'https://r.intake-lr.com',\n 'cdn.logr-ingest.com': 'https://r.logr-ingest.com',\n 'cdn-staging.logrocket.io': 'https://staging-i.logrocket.io',\n 'cdn-staging.lr-ingest.io': 'https://staging-i.lr-ingest.io',\n 'cdn-staging.lr-in.com': 'https://staging-i.lr-in.com',\n 'cdn-staging.lr-in-prod.com': 'https://staging-i.lr-in-prod.com',\n 'cdn-staging.lr-ingest.com': 'https://staging-i.lr-ingest.com',\n 'cdn-staging.ingest-lr.com': 'https://staging-i.ingest-lr.com',\n 'cdn-staging.lr-intake.com': 'https://staging-i.lr-intake.com',\n 'cdn-staging.intake-lr.com': 'https://staging-i.intake-lr.com',\n 'cdn-staging.logr-ingest.com': 'https://staging-i.logr-ingest.com'\n};\nfunction setup() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n enterpriseServer = _ref.enterpriseServer,\n _ref$sdkVersion = _ref.sdkVersion,\n sdkVersion = _ref$sdkVersion === void 0 ? \"8.1.2\" : _ref$sdkVersion,\n opts = (0, _objectWithoutProperties2.default)(_ref, [\"enterpriseServer\", \"sdkVersion\"]);\n var scriptOrigin = false ? 0 : 'https://cdn.logrocket.io';\n var scriptIngest;\n if (sdkVersion === 'script') {\n try {\n // eslint-disable-next-line compat/compat\n var scriptTag = document.currentScript;\n var matches = scriptTag.src.match(/^(https?:\\/\\/([^\\\\]+))\\/.+$/);\n var scriptHostname = matches && matches[2];\n if (scriptHostname && CDN_SERVER_MAP[scriptHostname]) {\n scriptOrigin = matches && matches[1];\n scriptIngest = CDN_SERVER_MAP[scriptHostname];\n }\n } catch (_) {\n /* no-op */\n }\n } else {\n // NPM\n scriptOrigin = false ? 0 : 'https://cdn.logr-ingest.com';\n scriptIngest = false ? 0 : 'https://r.logr-ingest.com';\n }\n var sdkServer = opts.sdkServer || enterpriseServer;\n var ingestServer = opts.ingestServer || enterpriseServer || scriptIngest;\n var instance = (0, _makeLogRocket.default)(function () {\n var script = document.createElement('script');\n if (ingestServer) {\n if (typeof window.__SDKCONFIG__ === 'undefined') {\n window.__SDKCONFIG__ = {};\n }\n window.__SDKCONFIG__.serverURL = \"\".concat(ingestServer, \"/i\");\n window.__SDKCONFIG__.statsURL = \"\".concat(ingestServer, \"/s\");\n }\n if (sdkServer) {\n script.src = \"\".concat(sdkServer, \"/logger.min.js\");\n } else if (window.__SDKCONFIG__ && window.__SDKCONFIG__.loggerURL) {\n script.src = window.__SDKCONFIG__.loggerURL;\n } else if (window._lrAsyncScript) {\n script.src = window._lrAsyncScript;\n } else {\n script.src = \"\".concat(scriptOrigin, \"/logger-1.min.js\");\n }\n script.async = true;\n document.head.appendChild(script);\n script.onload = function () {\n // Brave browser: Advertises its user-agent as Chrome ##.##... then\n // loads logger.min.js, but blocks the execution of the script\n // causing _LRlogger to be undefined. Let's make sure its there first.\n if (typeof window._LRLogger === 'function') {\n instance.onLogger(new window._LRLogger({\n sdkVersion: sdkVersion\n }));\n } else {\n console.warn('LogRocket: script execution has been blocked by a product or service.');\n instance.uninstall();\n }\n };\n script.onerror = function () {\n console.warn('LogRocket: script could not load. Check that you have a valid network connection.');\n instance.uninstall();\n };\n });\n return instance;\n}\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\":\n/*!*****************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!\n \\*****************************************************************/\n/***/ (function(module) {\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!\n \\******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!\n \\***************************************************************/\n/***/ (function(module) {\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/createClass.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!\n \\************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ \"./node_modules/@babel/runtime/helpers/toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/defineProperty.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!\n \\***************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ \"./node_modules/@babel/runtime/helpers/toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\":\n/*!**********************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!\n \\**********************************************************************/\n/***/ (function(module) {\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/iterableToArray.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***!\n \\****************************************************************/\n/***/ (function(module) {\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/nonIterableSpread.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!\n \\******************************************************************/\n/***/ (function(module) {\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js\":\n/*!************************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!\n \\************************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\":\n/*!*****************************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!\n \\*****************************************************************************/\n/***/ (function(module) {\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***!\n \\******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\");\nvar iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ \"./node_modules/@babel/runtime/helpers/iterableToArray.js\");\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\nvar nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ \"./node_modules/@babel/runtime/helpers/nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/toPrimitive.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!\n \\************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar _typeof = (__webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/toPropertyKey.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!\n \\**************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar _typeof = (__webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nvar toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ \"./node_modules/@babel/runtime/helpers/toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/typeof.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!\n \\*******************************************************/\n/***/ (function(module) {\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\":\n/*!***************************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!\n \\***************************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/global */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\nvar exports = __webpack_exports__;\n/*!**********************************************!*\\\n !*** ./packages/logrocket/src/module-npm.js ***!\n \\**********************************************/\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _setup = _interopRequireDefault(__webpack_require__(/*! ./setup */ \"./packages/logrocket/src/setup.js\"));\nvar instance = (0, _setup.default)();\nvar _default = instance;\nexports[\"default\"] = _default;\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","(function(global, factory) {\n if (typeof module === \"object\" && typeof module.exports === \"object\") factory(exports, require(\"react\"), require(\"prop-types\"), require(\"katex\"));\n else if (typeof define === \"function\" && define.amd) define([\n \"exports\",\n \"react\",\n \"prop-types\",\n \"katex\"\n ], factory);\n else if (global = typeof globalThis !== \"undefined\" ? globalThis : global || self) factory(global.index = {}, global.react, global.propTypes, global.katex);\n})(this, function(exports, _react, _propTypes, _katex) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n function _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n }\n _export(exports, {\n BlockMath: ()=>BlockMath,\n InlineMath: ()=>InlineMath\n });\n _react = /*#__PURE__*/ _interopRequireWildcard(_react);\n _propTypes = /*#__PURE__*/ _interopRequireDefault(_propTypes);\n _katex = /*#__PURE__*/ _interopRequireDefault(_katex);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n }\n function _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n }\n /**\n * @typedef {import(\"react\").ReactNode} ReactNode\n *\n *\n * @callback ErrorRenderer\n * @param {Error} error\n * @returns {ReactNode}\n *\n *\n * @typedef {object} MathComponentPropsWithMath\n * @property {string} math\n * @property {ReactNode=} children\n * @property {string=} errorColor\n * @property {ErrorRenderer=} renderError\n *\n *\n * @typedef {object} MathComponentPropsWithChildren\n * @property {string=} math\n * @property {ReactNode} children\n * @property {string=} errorColor\n * @property {ErrorRenderer=} renderError\n *\n * @typedef {MathComponentPropsWithMath | MathComponentPropsWithChildren} MathComponentProps\n */ const createMathComponent = (Component, { displayMode })=>{\n /**\n *\n * @param {MathComponentProps} props\n * @returns {ReactNode}\n */ const MathComponent = ({ children , errorColor , math , renderError })=>{\n const formula = math !== null && math !== void 0 ? math : children;\n const { html , error } = (0, _react.useMemo)(()=>{\n try {\n const html = _katex.default.renderToString(formula, {\n displayMode,\n errorColor,\n throwOnError: !!renderError\n });\n return {\n html,\n error: undefined\n };\n } catch (error) {\n if (error instanceof _katex.default.ParseError || error instanceof TypeError) {\n return {\n error\n };\n }\n throw error;\n }\n }, [\n formula,\n errorColor,\n renderError\n ]);\n if (error) {\n return renderError ? renderError(error) : /*#__PURE__*/ _react.default.createElement(Component, {\n html: `${error.message}`\n });\n }\n return /*#__PURE__*/ _react.default.createElement(Component, {\n html: html\n });\n };\n MathComponent.propTypes = {\n children: _propTypes.default.string,\n errorColor: _propTypes.default.string,\n math: _propTypes.default.string,\n renderError: _propTypes.default.func\n };\n return MathComponent;\n };\n const InternalPathComponentPropTypes = {\n html: _propTypes.default.string.isRequired\n };\n const InternalBlockMath = ({ html })=>{\n return /*#__PURE__*/ _react.default.createElement(\"div\", {\n \"data-testid\": \"react-katex\",\n dangerouslySetInnerHTML: {\n __html: html\n }\n });\n };\n InternalBlockMath.propTypes = InternalPathComponentPropTypes;\n const InternalInlineMath = ({ html })=>{\n return /*#__PURE__*/ _react.default.createElement(\"span\", {\n \"data-testid\": \"react-katex\",\n dangerouslySetInnerHTML: {\n __html: html\n }\n });\n };\n InternalInlineMath.propTypes = InternalPathComponentPropTypes;\n const BlockMath = createMathComponent(InternalBlockMath, {\n displayMode: true\n });\n const InlineMath = createMathComponent(InternalInlineMath, {\n displayMode: false\n });\n});\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEthVGVYIGZyb20gJ2thdGV4JztcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KFwicmVhY3RcIikuUmVhY3ROb2RlfSBSZWFjdE5vZGVcbiAqXG4gKlxuICogQGNhbGxiYWNrIEVycm9yUmVuZGVyZXJcbiAqIEBwYXJhbSB7RXJyb3J9IGVycm9yXG4gKiBAcmV0dXJucyB7UmVhY3ROb2RlfVxuICpcbiAqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBNYXRoQ29tcG9uZW50UHJvcHNXaXRoTWF0aFxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1hdGhcbiAqIEBwcm9wZXJ0eSB7UmVhY3ROb2RlPX0gY2hpbGRyZW5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nPX0gZXJyb3JDb2xvclxuICogQHByb3BlcnR5IHtFcnJvclJlbmRlcmVyPX0gcmVuZGVyRXJyb3JcbiAqXG4gKlxuICogQHR5cGVkZWYge29iamVjdH0gTWF0aENvbXBvbmVudFByb3BzV2l0aENoaWxkcmVuXG4gKiBAcHJvcGVydHkge3N0cmluZz19IG1hdGhcbiAqIEBwcm9wZXJ0eSB7UmVhY3ROb2RlfSBjaGlsZHJlblxuICogQHByb3BlcnR5IHtzdHJpbmc9fSBlcnJvckNvbG9yXG4gKiBAcHJvcGVydHkge0Vycm9yUmVuZGVyZXI9fSByZW5kZXJFcnJvclxuICpcbiAqIEB0eXBlZGVmIHtNYXRoQ29tcG9uZW50UHJvcHNXaXRoTWF0aCB8IE1hdGhDb21wb25lbnRQcm9wc1dpdGhDaGlsZHJlbn0gTWF0aENvbXBvbmVudFByb3BzXG4gKi9cblxuY29uc3QgY3JlYXRlTWF0aENvbXBvbmVudCA9IChDb21wb25lbnQsIHsgZGlzcGxheU1vZGUgfSkgPT4ge1xuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtNYXRoQ29tcG9uZW50UHJvcHN9IHByb3BzXG4gICAqIEByZXR1cm5zIHtSZWFjdE5vZGV9XG4gICAqL1xuICBjb25zdCBNYXRoQ29tcG9uZW50ID0gKHsgY2hpbGRyZW4sIGVycm9yQ29sb3IsIG1hdGgsIHJlbmRlckVycm9yIH0pID0+IHtcbiAgICBjb25zdCBmb3JtdWxhID0gbWF0aCA/PyBjaGlsZHJlbjtcblxuICAgIGNvbnN0IHsgaHRtbCwgZXJyb3IgfSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaHRtbCA9IEthVGVYLnJlbmRlclRvU3RyaW5nKGZvcm11bGEsIHtcbiAgICAgICAgICBkaXNwbGF5TW9kZSxcbiAgICAgICAgICBlcnJvckNvbG9yLFxuICAgICAgICAgIHRocm93T25FcnJvcjogISFyZW5kZXJFcnJvcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsgaHRtbCwgZXJyb3I6IHVuZGVmaW5lZCB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgS2FUZVguUGFyc2VFcnJvciB8fCBlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICAgIHJldHVybiB7IGVycm9yIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9LCBbZm9ybXVsYSwgZXJyb3JDb2xvciwgcmVuZGVyRXJyb3JdKTtcblxuICAgIGlmIChlcnJvcikge1xuICAgICAgcmV0dXJuIHJlbmRlckVycm9yID8gcmVuZGVyRXJyb3IoZXJyb3IpIDogPENvbXBvbmVudCBodG1sPXtgJHtlcnJvci5tZXNzYWdlfWB9IC8+O1xuICAgIH1cblxuICAgIHJldHVybiA8Q29tcG9uZW50IGh0bWw9e2h0bWx9IC8+O1xuICB9O1xuXG4gIE1hdGhDb21wb25lbnQucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGVycm9yQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbWF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByZW5kZXJFcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIH07XG5cbiAgcmV0dXJuIE1hdGhDb21wb25lbnQ7XG59O1xuXG5jb25zdCBJbnRlcm5hbFBhdGhDb21wb25lbnRQcm9wVHlwZXMgPSB7XG4gIGh0bWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbn07XG5cbmNvbnN0IEludGVybmFsQmxvY2tNYXRoID0gKHsgaHRtbCB9KSA9PiB7XG4gIHJldHVybiA8ZGl2IGRhdGEtdGVzdGlkPVwicmVhY3Qta2F0ZXhcIiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGh0bWwgfX0gLz47XG59O1xuXG5JbnRlcm5hbEJsb2NrTWF0aC5wcm9wVHlwZXMgPSBJbnRlcm5hbFBhdGhDb21wb25lbnRQcm9wVHlwZXM7XG5cbmNvbnN0IEludGVybmFsSW5saW5lTWF0aCA9ICh7IGh0bWwgfSkgPT4ge1xuICByZXR1cm4gPHNwYW4gZGF0YS10ZXN0aWQ9XCJyZWFjdC1rYXRleFwiIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogaHRtbCB9fSAvPjtcbn07XG5cbkludGVybmFsSW5saW5lTWF0aC5wcm9wVHlwZXMgPSBJbnRlcm5hbFBhdGhDb21wb25lbnRQcm9wVHlwZXM7XG5cbmV4cG9ydCBjb25zdCBCbG9ja01hdGggPSBjcmVhdGVNYXRoQ29tcG9uZW50KEludGVybmFsQmxvY2tNYXRoLCB7IGRpc3BsYXlNb2RlOiB0cnVlIH0pO1xuZXhwb3J0IGNvbnN0IElubGluZU1hdGggPSBjcmVhdGVNYXRoQ29tcG9uZW50KEludGVybmFsSW5saW5lTWF0aCwgeyBkaXNwbGF5TW9kZTogZmFsc2UgfSk7XG4iXSwibmFtZXMiOlsiQmxvY2tNYXRoIiwiSW5saW5lTWF0aCIsImNyZWF0ZU1hdGhDb21wb25lbnQiLCJDb21wb25lbnQiLCJkaXNwbGF5TW9kZSIsIk1hdGhDb21wb25lbnQiLCJjaGlsZHJlbiIsImVycm9yQ29sb3IiLCJtYXRoIiwicmVuZGVyRXJyb3IiLCJmb3JtdWxhIiwiaHRtbCIsImVycm9yIiwidXNlTWVtbyIsIkthVGVYIiwicmVuZGVyVG9TdHJpbmciLCJ0aHJvd09uRXJyb3IiLCJ1bmRlZmluZWQiLCJQYXJzZUVycm9yIiwiVHlwZUVycm9yIiwibWVzc2FnZSIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImZ1bmMiLCJJbnRlcm5hbFBhdGhDb21wb25lbnRQcm9wVHlwZXMiLCJpc1JlcXVpcmVkIiwiSW50ZXJuYWxCbG9ja01hdGgiLCJkaXYiLCJkYXRhLXRlc3RpZCIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiSW50ZXJuYWxJbmxpbmVNYXRoIiwic3BhbiJdLCJtYXBwaW5ncyI6IkFBQUE7bUdBQStCLE9BQU8sV0FDaEIsWUFBWSxXQUNoQixPQUFPOzs7UUFGTSxPQUFPO1FBQ2hCLFlBQVk7UUFDaEIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7O1FBdUZaQSxTQUFTLE1BQVRBLFNBQVM7UUFDVEMsVUFBVSxNQUFWQSxVQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBdEZ2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F1QkMsR0FFRCxNQUFNQyxtQkFBbUIsR0FBRyxDQUFDQyxTQUFTLEVBQUUsRUFBRUMsV0FBVyxDQUFBLEVBQUUsR0FBSztRQUMxRDs7OztHQUlDLEdBQ0QsTUFBTUMsYUFBYSxHQUFHLENBQUMsRUFBRUMsUUFBUSxDQUFBLEVBQUVDLFVBQVUsQ0FBQSxFQUFFQyxJQUFJLENBQUEsRUFBRUMsV0FBVyxDQUFBLEVBQUUsR0FBSztZQUNyRSxNQUFNQyxPQUFPLEdBQUdGLElBQUksYUFBSkEsSUFBSSxjQUFKQSxJQUFJLEdBQUlGLFFBQVEsQUFBQztZQUVqQyxNQUFNLEVBQUVLLElBQUksQ0FBQSxFQUFFQyxLQUFLLENBQUEsRUFBRSxHQUFHQyxJ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\n\n//# sourceMappingURL=react-katex.js.map","/**\n * React Router DOM v6.25.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { UNSAFE_mapRouteProperties, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router';\nexport { UNSAFE_ErrorResponseImpl } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for ``/`` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a