{"version":3,"file":"commons-b08a14fb30f220f79ac6.js","mappings":"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GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,IAAK,GAAGuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,GAAI,KAAKuH,OAAOvH,EAAI,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C3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,MAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,MAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,MAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,OAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,QAC3BW,EAAUX,SAAS,EAAQ,wCCjR3B,SAASY,EAAKrB,GACZA,EAAMW,UAAUU,KAAO,CACrBrrE,QAAS,SACTxvC,OAAQ,kCACR,kBAAmB,CACjBuoG,QAAS,qCACTuS,YAAY,EACZt9F,MAAO,UAMT,cAAe,CACb+qF,QAAS,aACTuS,YAAY,EACZt9F,MAAO,WAET+yB,QAAS,CACPg4D,QACE,spOACFuS,YAAY,GAGd9oH,OAAQ,UAIRk+C,SAAU,CACRq4D,QAAS,6CACTuS,YAAY,GAEd,kBAAmB,CACjBvS,QAAS,gBACTuS,YAAY,EAEZt9F,MAAO,WAET,iBAAkB,CAChB,CAEE+qF,QAAS,8BACTuS,YAAY,EACZt9F,MAAO,eAET,CAEE+qF,QAAS,QACT/qF,MAAO,gBAGXoyB,YAAa,UAEjB,CAxDA1/C,EAAO7C,QAAUwtH,EACjBA,EAAK3nH,YAAc,OACnB2nH,EAAKE,QAAU,mCCCf,SAASC,EAAKxB,IACX,SAAWA,GACV,IAAIyB,EACF,qFACFzB,EAAMW,UAAUa,KAAO,CACrBxrE,QAAS,MACTxvC,OAAQ,CACNuoG,QAAS,wBACT2S,QAAQ,EACRC,OAAQ,CACNvrE,YAAa,WAGjBwrE,MAAO,CACL7S,QAAS,iDACT/qF,MAAO,UAET69F,SAAU,CACR9S,QACE,mEACF/qF,MAAO,UAET89F,WAAY,CACV/S,QAAS,6BACTuS,YAAY,EACZt9F,MAAO,YAETgvF,WAAY,CACVjE,QAAS,iDACTuS,YAAY,EACZt9F,MAAO,UACP29F,OAAQ,CACNvrE,YAAa,QAGjB,YAAa,CACX24D,QAAS72G,OACP,kBAAoBupH,EAAY,KAAOA,EAAY,eACnD,KAEFH,YAAY,EACZt9F,MAAO,CAAC,OAAQ,YAChB29F,OAAQ,CACNvrE,YAAa,QAGjBuuB,KAAM,CACJoqC,QAAS,uCACTuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,QAGjBM,SAAU,UACVN,YAAa,WAEhB,CAvDA,CAuDE4pE,EACL,CA5DAtpH,EAAO7C,QAAU2tH,EACjBA,EAAK9nH,YAAc,OACnB8nH,EAAKD,QAAU,mCCCf,SAASQ,EAAa/B,GACpBA,EAAMW,UAAUoB,aAAe/B,EAAMW,UAAUhqH,OAAO,aAAc,CAClEogD,QACE,uUACFL,SAAU,8DAEZspE,EAAMW,UAAUoB,aAAa,cAAc/9F,MAAQ,kBAC5Cg8F,EAAMW,UAAUoB,aAAwB,iBACxC/B,EAAMW,UAAUoB,aAAa,oBAChC/B,EAAMW,UAAUP,QAClBJ,EAAMW,UAAUh3B,aAAa,eAAgB,SAAU,CACrDwa,IAAK,CACH4K,QACE,4EACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAUP,SAIhC,CAtBA1pH,EAAO7C,QAAUkuH,EACjBA,EAAaroH,YAAc,eAC3BqoH,EAAaR,QAAU,mCCCvB,SAASS,EAAIhC,GACXA,EAAMW,UAAUqB,IAAM,CACpBhsE,QAAS,OACTxvC,OAAQ,uBACRhO,OAAQ,CACN,CACEu2G,QACE,2FAEJ,CACEA,QAAS,6DAGb,YAAa,SACbh4D,QACE,6cACF97B,QAAS,sBACTy7B,SAAU,qCACVN,YAAa,gBACbG,KAAM,MACNK,SAAU,oBAEd,CAzBAlgD,EAAO7C,QAAUmuH,EACjBA,EAAItoH,YAAc,MAClBsoH,EAAIT,QAAU,mCCCd,SAASU,EAAKjC,IACX,SAAWA,GACVA,EAAMW,UAAUsB,KAAO,CACrBjsE,QAAS,4BACTxvC,OAAQ,CACNuoG,QAAS,sCACT2S,QAAQ,GAEVtrE,YAAa,cACb,aAAc,CACZ24D,QAAS,yBACTuS,YAAY,GAEdxqE,SAAU,CACRi4D,QAAS,iCACTuS,YAAY,GAEd5qE,SAAU,CACRq4D,QAAS,qCACTuS,YAAY,GAEdvqE,QACE,gWAEL,CAvBA,CAuBEipE,EACL,CA5BAtpH,EAAO7C,QAAUouH,EACjBA,EAAKvoH,YAAc,OACnBuoH,EAAKV,QAAU,kCCCf,SAASW,EAAGlC,GAEVA,EAAMW,UAAUuB,GAAK,CACnBlsE,QAAS,0BACTxvC,OAAQ,CACNuoG,QAAS,kDACT2S,QAAQ,GAEV5qE,SAAU,CACRi4D,QACE,wEACFuS,YAAY,GAEdvqE,QAAS,CAEP,mSACA,mjBAEFv+C,OACE,gFACFyiB,QAAS,sBACT27B,SAAU,+DACV,aACE,4rCACFF,SAAU,kEACVN,YAAa,iBAEjB,CA9BA1/C,EAAO7C,QAAUquH,EACjBA,EAAGxoH,YAAc,KACjBwoH,EAAGX,QAAU,mCCCb,SAASY,EAAOnC,GACdA,EAAMW,UAAUwB,OAAS,CACvBnsE,QAAS,gCACTxvC,OAAQ,CACNuoG,QAAS,wBACT2S,QAAQ,GAEV,kBAAmB,CACjB3S,QAAS,2BACT2S,QAAQ,EACR19F,MAAO,QACP29F,OAAQ,CACNC,MAAO,CACL7S,QAAS,yCACTuS,YAAY,EACZt9F,MAAO,eAETo+F,OACE,sEACFhsE,YAAa,WAGjB1qC,OAAQ,CACNqjG,QAAS,0DACT2S,QAAQ,EACRC,OAAQ,CACNvoF,QAAS,CAEP21E,QAAS,oBACTuS,YAAY,GAEdlrE,YAAa,SAGjBisE,QAAS,CACPtT,QACE,0EACFuS,YAAY,EACZK,OAAQ,CACN7qE,SAAU,yBACVV,YAAa,UAGjBksE,WAAY,CACVvT,QAAS,iBACT/qF,MAAO,WAETrL,MAAO,CACLo2F,QAAS,aACT/qF,MAAO,eAET+yB,QACE,gHACFi8D,WAAY,CACV,CACEjE,QAAS,qBACT/qF,MAAO,CAAC,OAAQ,eAElB,CACE+qF,QAAS,qBACT/qF,MAAO,CAAC,QAAS,cAGrBqyB,SAAU,mBACVK,SAAU,wBACVN,YAAa,WAEf4pE,EAAMW,UAAU4B,GAAKvC,EAAMW,UAAUwB,MACvC,CAvEAzrH,EAAO7C,QAAUsuH,EACjBA,EAAOzoH,YAAc,SACrByoH,EAAOZ,QAAU,CAAC,sCCClB,SAASiB,EAAWxC,GAClBA,EAAMW,UAAU6B,WAAa,CAC3BxsE,QAAS,MACT,mBAAoB,CAClB+4D,QACE,urOACFuS,YAAY,EACZt9F,MAAO,YAET,kBAAmB,CACjB+qF,QACE,sNACF4S,OAAQ,CACN,kBAAmB,CACjB5S,QAAS,WACT4S,OAAQ,CACNvrE,YAAa,SAEfpyB,MAAO,OAET,4BAA6B,CAC3B+qF,QAAS,SACT4S,OAAQ,CACNvrE,YAAa,IACb5vC,OAAQ,CACNuoG,QAAS,YACT4S,OAAQ,CACN/qE,SAAU,gCAIhB5yB,MAAO,cAEToyB,YAAa,KAEfpyB,MAAO,OAET,kBAAmB,CACjB+qF,QAAS,mBACT/qF,MAAO,WAETxd,OAAQ,CACNuoG,QAAS,YACT4S,OAAQ,CACN/qE,SAAU,+BAGdA,SAAU,6BACV5wB,MAAO,kBAEX,CArDAtvB,EAAO7C,QAAU2uH,EACjBA,EAAW9oH,YAAc,aACzB8oH,EAAWjB,QAAU,uCCHrB,IAAIkB,EAAe,EAAQ,OAI3B,SAASC,EAAK1C,GACZA,EAAMS,SAASgC,GACd,SAAWzC,GACV,IAAI2C,EACF,y2BACE/zE,EACF,mIAAmI91C,OAAO0H,QACxI,cACA,WACE,OAAOmiH,EAAS7pH,MAClB,IAGJ,SAAS8pH,EAAgB7T,GACvB,OAAO72G,OACL62G,EAAQvuG,QAAQ,iBAAiB,WAC/B,OAAOouC,CACT,IACA,IAEJ,CACA,IAAIi0E,EAAkB,CACpB9rE,QAAS4rE,EACTvsE,YAAa,oBAEf4pE,EAAMW,UAAU+B,KAAO,CACrB1sE,QAASgqE,EAAMW,UAAUN,MAAMrqE,QAC/BxvC,OAAQw5G,EAAMW,UAAUN,MAAM75G,OAC9Bs8G,IAAK,CACH/T,QAAS,yCACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,eACP29F,OAAQ3B,EAAMW,UAAUmC,KAE1BR,WAAY,CACVvT,QAAS,SACT/qF,MAAO,eAET,aAAc,CACZ,CACE+qF,QAAS6T,EACP,mGACG9pH,QAELwoH,YAAY,EACZK,OAAQkB,GAEV,CAEE9T,QAAS6T,EACP,uCAAuC9pH,QAEzCwoH,YAAY,EACZK,OAAQkB,GAEV,CAEE9T,QAAS6T,EAAgB,qCAAqC9pH,QAC9D6oH,OAAQkB,IAGZE,QAAS,CACPhU,QAAS,uBACTuS,YAAY,EACZt9F,MAAO,cAET+yB,QAAS4rE,EACT7rE,SAAU,wBACV77B,QAAS,sBACTziB,OAAQ,mCACRk+C,SACE,kEACFN,YAAa,gBAEhB,CAzEA,CAyEE4pE,EACL,CA/EAtpH,EAAO7C,QAAU6uH,EACjBA,EAAKhpH,YAAc,OACnBgpH,EAAKnB,QAAU,mCCCf,SAASyB,EAAIhD,GACXA,EAAMW,UAAUqC,IAAM,CACpBhtE,QAAS,kBACTxvC,OAAQ,CACNuoG,QAAS,qBACT2S,QAAQ,GAEVlpH,OACE,4FACFyqH,UAAW,yBACX,kBAAmB,CACjBlU,QAAS,WACT/qF,MAAO,YAETqyB,SAAU,UACVS,SAAU,kEACV,mBAAoB,CAClBi4D,QAAS,gBACT/qF,MAAO,YAET,kBAAmB,CACjB+qF,QAAS,cACT/qF,MAAO,YAETk/F,WAAY,CACVnU,QAAS,IACT/qF,MAAO,WAEToyB,YAAa,cACb+sE,IAAK,CACHpU,QAAS,cACT/qF,MAAO,WAGb,CArCAttB,EAAO7C,QAAUmvH,EACjBA,EAAItpH,YAAc,MAClBspH,EAAIzB,QAAU,mCCCd,SAAS6B,EAAYpD,GACnBA,EAAMW,UAAUyC,YAAc,CAC5BptE,QAAS,CAEP,0DACA,OACA,OAEFxvC,OAAQ,wBACRhO,OAAQ,4CACRk+C,SAAU,CACR,yBACA,+YAEFK,QACE,uiBACF,aACE,ihBACFX,YAAa,gBAEjB,CAvBA1/C,EAAO7C,QAAUuvH,EACjBA,EAAY1pH,YAAc,cAC1B0pH,EAAY7B,QAAU,mCCCtB,SAAS8B,EAAIrD,GACXA,EAAMW,UAAU0C,IAAM,CACpBrtE,QAAS,0BACTlb,SAAU,CACRi0E,QACE,oEACFuS,YAAY,EACZI,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,mCACT2S,QAAQ,GAEVxkE,WAAY,CACV6xD,QAAS,mCACT2S,QAAQ,GAEV9qE,SAAU,SACVG,QAAS,CACP,CACEg4D,QAAS,iCACTuS,YAAY,GAEd,wOACA,CACEvS,QAAS,yCACTuS,YAAY,GAEd,CACEvS,QAAS,mCACTuS,YAAY,GAEd,CACEvS,QAAS,wBAGbj4D,SAAU,uBACV77B,QAAS,sBACT2mG,MAAO,CACL7S,QAAS,OACT/qF,MAAO,YAETxrB,OAAQ,CACN,aACA,iBACA,yDAEFk+C,SAAU,wCACVN,YAAa,oBAEjB,CArDA1/C,EAAO7C,QAAUwvH,EACjBA,EAAI3pH,YAAc,MAClB2pH,EAAI9B,QAAU,uCCHd,IAAI+B,EAAe,EAAQ,OAI3B,SAASC,EAAQvD,GACfA,EAAMS,SAAS6C,GACftD,EAAMW,UAAU4C,QAAUvD,EAAMW,UAAUhqH,OAAO,MAAO,CACtDogD,QACE,yNACFV,SACE,6NACFG,QACE,myGAEJwpE,EAAMW,UAAU6C,IAAMxD,EAAMW,UAAU4C,OACxC,CAdA7sH,EAAO7C,QAAU0vH,EACjBA,EAAQ7pH,YAAc,UACtB6pH,EAAQhC,QAAU,CAAC,uCCCnB,SAASkC,EAAKzD,GACZA,EAAMW,UAAU8C,KAAO,CACrBztE,QAAS,MACTxvC,OAAQ,CACNuoG,QAAS,mCACT2S,QAAQ,GAEV3qE,QAAS,sCACTv+C,OAAQ,oBACR49C,YAAa,QAEjB,CAdA1/C,EAAO7C,QAAU4vH,EACjBA,EAAK/pH,YAAc,OACnB+pH,EAAKlC,QAAU,mCCCf,SAASmC,EAAS1D,IACf,SAAWA,GACV,IAAI1Y,EAAa,CACfyH,QACE,mGACFuS,YAAY,EACZK,OAAQ,CACNgC,OAAQ,CACN5U,QAAS,+BACT4S,OAAQ,CACNvrE,YAAa,gBAGjBwtE,YAAa,CACX7U,QAAS,oBACT4S,OAAQ,CACNvrE,YAAa,UAGjB5vC,OAAQ,oBACRowC,SAAU,WACVR,YAAa,YACbM,SAAU,IAEV,aAAc,gBAGdgtE,EAAY1D,EAAMW,UAAU+C,SAAW,CACzC,gBAAiB,CACf3U,QAAS,oDACT/qF,MAAO,WAETm6B,MAAO,CACL4wD,QAAS,0DACT4S,OAAQ,CACNkC,WAAY,CACV9U,QACE,iHACF/qF,MAAO,cAEToyB,YAAa,CACX24D,QAAS,kBACTuS,YAAY,KAIlB,oBAAqB,CACnBvS,QAAS,qDACT4S,OAAQ,CACNvrE,YAAa,cAIjB,gBAAiB,CACf24D,QAAS,2DACT4S,OAAQ,CACNvrE,YAAa,4BAIjB,cAAe,CACb24D,QACE,oEACF4S,OAAQ,CACNvrE,YAAa,wCAIjB,mBAAoB,CAClB24D,QACE,iEACFuS,YAAY,EACZt9F,MAAO,eAET,aAAc,CACZ+qF,QAAS,0CACTuS,YAAY,EACZt9F,MAAO,UAET,iBAAkB,CAChB+qF,QAAS,6DACTuS,YAAY,GAEdtrE,QAAS,WACThqB,MAAO,CACL+iF,QACE,iFACF/qF,MAAO,YACP29F,OAAQ,CACNvrE,YAAa,qCAGjB,kBAAmB,CACjB24D,QAAS,iDACT/qF,MAAO,OAETsjF,WAAYA,EACZhnD,GAAI,CACFyuD,QAAS,WACT/qF,MAAO,eAET,aAAc,CACZ+qF,QAAS,WACT/qF,MAAO,eAET8/F,WAAY,CACV/U,QAAS,4CACT/qF,MAAO,WAET+/F,QAAS,CACP,CACEhV,QAAS,mBACTuS,YAAY,EACZt9F,MAAO,UAET,CACE+qF,QAAS,QACT/qF,MAAO,WAGXggG,MAAO,CACLjV,QACE,yFACF4S,OAAQ,CACN7qE,SAAU,kBACVV,YAAa,OACbkxD,WAAY,CACVyH,QAAS,0DACT4S,OAAQra,EAAWqa,UAIzB5/C,OAAQ,CAYNgtC,QACE,wiBACFuS,YAAY,EACZK,OAAQ,CACNra,WAAYA,EACZvtF,IAAK,CACHg1F,QAAS,kCACT4S,OAAQ,CACNvrE,YAAa,oCAGjB,gBAAiB,CACf24D,QAAS,WACT4S,OAAQ,CACN/qE,SAAU,CACRm4D,QAAS,oBACTuS,YAAY,GAEd5qE,SAAU,uBACVN,YAAa,gBAGjBc,OAAQ,CACN63D,QAAS,oBACT4S,OAAQ,CACNvrE,YAAa,8BAGjBa,KAAM,CACJ83D,QAAS,gBACT4S,OAAQ,CACNvrE,YAAa,kBAGjBA,YACE,mFAGN6tE,YAAa,CACXlV,QAAS,iBACT/qF,MAAO,WAET2yB,OAAQ,oBACR,oBAAqB,CACnBo4D,QAAS,YACTuS,YAAY,EACZt9F,MAAO,gBAGX,SAASkgG,EAAiB9sH,GAGxB,IADA,IAAIw+B,EAAI,CAAC,EACA3+B,EAAI,EAAGiiC,GAFhB9hC,EAAOA,EAAK0yB,MAAM,MAEOr1B,OAAQwC,EAAIiiC,EAAGjiC,IACtC2+B,EAAEx+B,EAAKH,IAAMysH,EAAStsH,EAAKH,IAE7B,OAAO2+B,CACT,CACA0xE,EAAWqa,OAAoB,YAAEA,OAAOzlH,KAAOgoH,EAC7C,mCAEFR,EAAS,qBAAqB/B,OAAOzlH,KAAOgoH,EAAiB,SAC7DR,EAAS,iBAAiB/B,OAAOzlH,KAAOgoH,EAAiB,WACzDR,EAAgB,MAAE/B,OAAOzlH,KAAOgoH,EAC9B,oOAEFR,EAAS,eAAe/B,OAAOzlH,KAAOgoH,EACpC,kKAEFR,EAAgB,MAAE/B,OAAOzlH,KAAOgoH,EAC9B,mCAEFlE,EAAMkB,MAAMr7G,IAAI,QAAQ,SAAUm7G,GACf,WAAbA,EAAI/gH,OACN+gH,EAAI1Z,WAAkB,MAAI0Z,EAAI5nF,QAAQtlC,MAAM0M,QAAQ,QAAS,KAEjE,IACAw/G,EAAMW,UAAUwD,KAAOnE,EAAMW,UAAU+C,QACxC,CA5NA,CA4NE1D,EACL,CAjOAtpH,EAAO7C,QAAU6vH,EACjBA,EAAShqH,YAAc,WACvBgqH,EAASnC,QAAU,CAAC,wCCCpB,SAAS6C,EAAQpE,GACfA,EAAMW,UAAUyD,QAAU,CACxBpuE,QAAS,MACTquE,UAAW,CACTtV,QAAS,aACT/qF,MAAO,YAETxd,OAAQ,oCACR,UAAW,CACTuoG,QACE,0cACF/qF,MAAO,WAET,aAAc,CACZ+qF,QAAS,sBACT/qF,MAAO,UAET,gBAAiB,CACf+qF,QAAS,aACT/qF,MAAO,UAET,iBAAkB,CAChB+qF,QAAS,YACT/qF,MAAO,UAETy8F,SAAU,CACR1R,QAAS,aACT/qF,MAAO,YAEToyB,YAAa,SAEjB,CAlCA1/C,EAAO7C,QAAUuwH,EACjBA,EAAQ1qH,YAAc,UACtB0qH,EAAQ7C,QAAU,mCCClB,SAAS+C,EAAStE,GAChBA,EAAMW,UAAU2D,SAAW,CACzBtuE,QAAS,CACP+4D,QAAS,MACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,oCACT2S,QAAQ,GAEVrrE,SAAU,+DACVguE,UAAW,CACTtV,QAAS,aACT/qF,MAAO,YAET,aAAc,CACZ+qF,QAAS,2BACT/qF,MAAO,YAET,UAAW,CACT+qF,QACE,8jCACF/qF,MAAO,WAET,aAAc,CACZ+qF,QAAS,sBACT/qF,MAAO,UAET,gBAAiB,CACf+qF,QAAS,aACT/qF,MAAO,UAET,iBAAkB,CAChB+qF,QAAS,YACT/qF,MAAO,UAETy8F,SAAU,CACR1R,QAAS,qBACT/qF,MAAO,YAET0yB,SAAU,wCACVN,YAAa,SAEjB,CA9CA1/C,EAAO7C,QAAUywH,EACjBA,EAAS5qH,YAAc,WACvB4qH,EAAS/C,QAAU,uCCHnB,IAAIgD,EAAkB,EAAQ,OAI9B,SAASC,EAAOxE,GACdA,EAAMS,SAAS8D,GACfvE,EAAMW,UAAU6D,OAASxE,EAAMW,UAAUhqH,OAAO,SAAU,CACxD,iBAAkB,CAChBo4G,QAAS,aACT/qF,MAAO,MACP29F,OAAQ,CACN,iBAAkB,CAChB5S,QACE,4HACF/qF,MAAO,OAET9nB,KAAM8jH,EAAMW,UAAUP,OAAO7hH,IAAIojH,SAGrC0C,UAAW,CACTtV,QAAS,SACT/qF,MAAO,MACP29F,OAAQ,CACN0C,UAAW,CACTtV,QAAS,wBACT/qF,MAAO,OAET9nB,KAAM8jH,EAAMW,UAAU8D,WAI5BzE,EAAMW,UAAU6D,OAAOjmH,IAAIwwG,QACzB,mGACFiR,EAAMW,UAAUh3B,aACd,SACA,cACA,CACE06B,UAAWrE,EAAMW,UAAU6D,OAAkB,WAE/CxE,EAAMW,UAAU6D,OAAOjmH,IAAIojH,OAAO,eAEpC3B,EAAMW,UAAUh3B,aAAa,SAAU,UAAW,CAChD,cAAe,CACbolB,QAAS,mBACT/qF,MAAO,CAAC,MAAO,cAGnBg8F,EAAMW,UAAUh3B,aACd,SACAq2B,EAAMW,UAAU+D,WAAa,SAAW,MACxC,CACE,aAAc,CACZ3V,QACE,kEACFuS,YAAY,EACZt9F,MAAO,CAAC,MAAO,UACf29F,OAAQ3B,EAAMW,UAAU8D,QAAU,CAAC,IAI3C,CA3DA/tH,EAAO7C,QAAU2wH,EACjBA,EAAO9qH,YAAc,SACrB8qH,EAAOjD,QAAU,kCCCjB,SAASoD,EAAW3E,GAElBA,EAAMW,UAAUgE,WAAa,CAC3B3uE,QAAS,CACP,CACE+4D,QAAS,YACTuS,YAAY,GAEd,CACEvS,QACE,uEACFuS,YAAY,EACZI,QAAQ,IAGZnjH,IAAK,CAEHwwG,QAAS,mCACTuS,YAAY,GAEd96G,OAAQ,qBACRowC,SAAU,QACVp+C,OAAQ,8DACRk+C,SACE,uGACFz7B,QAAS,qBACTw0B,SACE,4jEACF4G,SACE,kvDACFG,QACE,ovBACFrzC,OACE,iuCACF6zC,UACE,+bACFD,QACE,unEACFD,SAAU,yCACVV,YAAa,cAEjB,CA5CA1/C,EAAO7C,QAAU8wH,EACjBA,EAAWjrH,YAAc,aACzBirH,EAAWpD,QAAU,mCCCrB,SAASqD,EAAO5E,GACdA,EAAMW,UAAUiE,OAAS,CACvB5uE,QAAS,CACP,MACA,CAEE+4D,QACE,sEACFuS,YAAY,IAGhBvnG,IAAK,CACHg1F,QAAS,mDACTuS,YAAY,GAEd96G,OAAQ,CACNuoG,QAAS,kCACT2S,QAAQ,EACRC,OAAQ,CACN/qE,SAAU,iBAGdytE,UAAW,CACTtV,QAAS,oBACTuS,YAAY,EACZt9F,MAAO,WAET8yB,SAAU,cAEVF,SAAU,UACVG,QACE,yOACFv+C,OAAQ,kDACRyiB,QAAS,sBACTy7B,SAAU,+CACVN,YAAa,cAEjB,CAxCA1/C,EAAO7C,QAAU+wH,EACjBA,EAAOlrH,YAAc,SACrBkrH,EAAOrD,QAAU,mCCCjB,SAASsD,EAAS7E,IAEf,SAAWA,GAMV,SAASlmC,EAAGi1B,EAAS+V,EAAcpQ,GACjC,OAAOx8G,OANT,SAAiB62G,EAAS+V,GACxB,OAAO/V,EAAQvuG,QAAQ,cAAc,SAAUo3C,EAAGxjD,GAChD,OAAO0wH,GAAc1wH,EACvB,GACF,CAEgBoM,CAAQuuG,EAAS+V,GAAepQ,GAAS,GACzD,CACA,IAAI3yG,EAAQ,iCAAiCjJ,OA0DzCisH,EAAe,CAzDH,CAEd,iFACGjsH,OACH,wDAAwDA,OACxD,qNACGA,OACH,sBAAsBA,OACtB,gIACGA,OACH,6BAA6BA,OAC7B,0HACGA,OACH,+LACGA,OACH,wFACGA,OACH,mIACGA,OACH,8CAA8CA,OAC9C,2CAA2CA,OAC3C,yDAAyDA,QACzD2qB,KAAK,KACU,CAEf,qBAAqB3qB,OACrB,eAAeA,OACf,yDAAyDA,OACzD,mCAAmCA,OACnC,sLACGA,OACH,kFACGA,QACH2qB,KAAK,KACO,CAEZ,wIACG3qB,OACH,uRACGA,OACH,kEAAkEA,OAClE,8NACGA,OACH,uFACGA,OACH,uMACGA,OACH,oKACGA,OACH,mRACGA,OACH,kIACGA,OACH,cAAcA,OACd,2NACGA,QACH2qB,KAAK,MAC6CA,KAAK,KACzDu8F,EAAMW,UAAUkE,SAAW,CACzB7uE,QAAS,CACP,CAGE+4D,QACE,uFACFuS,YAAY,EACZI,QAAQ,GAEV,CAEE3S,QAAS,kCACTuS,YAAY,EACZI,QAAQ,GAEV,CAEE3S,QAAS,gBACTuS,YAAY,EACZI,QAAQ,IAIZsD,SAAU,CACRjW,QAASj1B,EAAG,0BAA0BhhF,OAAQ,CAACiJ,GAAQ,KACvD4/G,OAAQ,CACN5qE,QAAS,SAIb,iBAAkB,CAChBg4D,QAAS,4BACTuS,YAAY,EACZK,OAAQ,CACN,gBAAiB,CACf5S,QAAS,OACT/qF,MAAO,eAEToyB,YAAa,OAGjB5vC,OAAQ,CACN,CAEEuoG,QAAS,iBACT2S,QAAQ,GAEV,CAEE3S,QAAS,sCACT2S,QAAQ,EACRC,OAAQ,CACNtrE,SAAU,CAER04D,QACE,yGAMVn4D,SAAU,gBACV37B,QAAS,6BACT87B,QACE,sEACFV,SAAU,8DAEV,mBAAoB,CAClB04D,QAASj1B,EAAG,gBAAgBhhF,OAAQ,CAACisH,GAAe,KACpD/gG,MAAO,YAET,YAAa,CACX+qF,QAASj1B,EAAG,uBAAuBhhF,OAAQ,CAACiJ,GAAQ,KACpDiiB,MAAO,WAGT8yB,SAAU,CACRi4D,QAAS,wCACTuS,YAAY,GAGd,oBAAqB,CACnBvS,QAAS,6BACTuS,YAAY,EACZt9F,MAAO,eAETxrB,OACE,2EACFk+C,SAAU,kCACVN,YAAa,iBAEf4pE,EAAMW,UAAUsE,IAAMjF,EAAMW,UAAUkE,QACvC,CAjKA,CAiKE7E,EACL,CAvKAtpH,EAAO7C,QAAUgxH,EACjBA,EAASnrH,YAAc,WACvBmrH,EAAStD,QAAU,CAAC,uCCCpB,SAAS2D,EAAQlF,GAGfA,EAAMW,UAAU,YAAc,CAC5B3qE,QAAS,CACP+4D,QAAS,0BACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,iCACTuS,YAAY,EACZI,QAAQ,GAEVY,WAAY,CACVvT,QAAS,4BACT2S,QAAQ,EACR19F,MAAO,YAET,sBAAuB,CACrB+qF,QAAS,uBACT2S,QAAQ,EACR19F,MAAO,YAETk5B,WAAY,CACV6xD,QAAS,cACT2S,QAAQ,GAEV,aAAc,CACZ3S,QAAS,uDACTuS,YAAY,EACZI,QAAQ,GAEV3qE,QACE,qNACFD,SAAU,wBACVt+C,OAAQ,CACN,CACEu2G,QACE,kIACFuS,YAAY,GAEd,0BAEF5qE,SAAU,IACVN,YAAa,qBAEf4pE,EAAMW,UAAUwE,KAAOnF,EAAMW,UAAU,WACzC,CAlDAjqH,EAAO7C,QAAUqxH,EACjBA,EAAQxrH,YAAc,UACtBwrH,EAAQ3D,QAAU,mCCClB,SAAS6D,EAAKpF,IACX,SAAWA,GAKV,IAAIqF,EACF,0oCACEC,EAAsB,CACxBvW,QAAS,4BACTuS,YAAY,EACZt9F,MAAO,cAEP29F,OAAQ,MAEN4D,EAAe,CACjBH,KAAME,EACNE,YAAa,CACXzW,QAAS72G,OAAO,MAAQmtH,GACxBrhG,MAAO,YAET4yB,SAAU,CAER,CACEm4D,QAAS,sBACT2S,QAAQ,EACRC,OAAQ,CAEN/qE,SAAU,CACR,CACEm4D,QAAS,uBACTuS,YAAY,GAEd,WAEF9oH,OACE,8DAEFk+C,SACE,2DAEFN,YAAa,oBAGjB,CACE24D,QAAS,qCACT2S,QAAQ,EACRC,OAAQ,CACN/qE,SAAU,oBAGd,CACEm4D,QAAS,cACT2S,QAAQ,EACRC,OAAQ,CACNjrE,SAAU,mCACVN,YAAa,SACbovE,YAAa,CACXzW,QAAS72G,OAAO,QAAUmtH,GAC1B/D,YAAY,EACZt9F,MAAO,cAIb,sBAGF2yB,OACE,wFAEJqpE,EAAMW,UAAUyE,KAAO,CACrBK,QAAS,CACP1W,QAAS,aACT/qF,MAAO,aAETgyB,QAAS,CACP+4D,QAAS,kBACTuS,YAAY,GAEd,gBAAiB,CAKf,CAEEvS,QAAS,kDACTuS,YAAY,EACZt9F,MAAO,YAET,CAEE+qF,QAAS,8BACT/qF,MAAO,aAIX,gBAAiB,CACf+qF,QAAS,sCACT/qF,MAAO,WACPs9F,YAAY,GAId,cAAe,CACbvS,QAAS,gCACT4S,OAAQ,CACN6D,YAAa,CACXzW,QAAS72G,OAAO,uBAAyBmtH,GACzC/D,YAAY,EACZt9F,MAAO,aAGXA,MAAO,WACPs9F,YAAY,GAEd96G,OAAQ,CAEN,CACEuoG,QAAS,mDACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQ4D,GAGV,CACExW,QAAS,2DACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNyD,KAAME,IAGV,CAEEvW,QACE,0EACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ4D,GAEV,CAEExW,QAAS,oBACTuS,YAAY,EACZI,QAAQ,GAEV,CAEE3S,QAAS,2BACT2S,QAAQ,EACRC,OAAQ,CACNhrE,OAAQ4uE,EAAa5uE,UAI3B6uE,YAAa,CACXzW,QAAS72G,OAAO,OAASmtH,GACzBrhG,MAAO,YAET4yB,SAAU2uE,EAAa3uE,SACvBE,SAAU,CACRi4D,QACE,2jDACFuS,YAAY,GAEdvqE,QAAS,CACPg4D,QACE,gHACFuS,YAAY,GAGd9qE,QAAS,CACPu4D,QACE,6SACFuS,YAAY,EAEZt9F,MAAO,cAET/I,QAAS,CACP8zF,QAAS,iDACTuS,YAAY,GAEd,kBAAmB,CACjBvS,QAAS,UACT/qF,MAAO,aAET0yB,SAAU,CAERq4D,QACE,8EACF4S,OAAQ,CACN,kBAAmB,CACjB5S,QAAS,MACT/qF,MAAO,eAIboyB,YAAa,iCACb59C,OAAQ,CACNu2G,QAAS,qCACTuS,YAAY,IAGhBgE,EAAoB3D,OAAS3B,EAAMW,UAAUyE,KAmB7C,IAjBA,IAAIM,EAAa,CACf,UACA,gBACA,gBACA,cACA,SACA,cACA,WACA,UACA,UACA,UACA,kBACA,WACA,cACA,UAEE/D,EAAS4D,EAAa3uE,SAAS,GAAG+qE,OAC7B1qH,EAAI,EAAGA,EAAIyuH,EAAWjxH,OAAQwC,IACrC0qH,EAAO+D,EAAWzuH,IAAM+oH,EAAMW,UAAUyE,KAAKM,EAAWzuH,IAE1D+oH,EAAMW,UAAUgF,MAAQ3F,EAAMW,UAAUyE,IACzC,CAlOA,CAkOEpF,EACL,CAvOAtpH,EAAO7C,QAAUuxH,EACjBA,EAAK1rH,YAAc,OACnB0rH,EAAK7D,QAAU,CAAC,wCCChB,SAASqE,EAAM5F,GACbA,EAAMW,UAAUiF,MAAQ,CACtB5vE,QAAS,CACP+4D,QAAS,iBACT4S,OAAQ,CACN5qE,QAAS,UAGbvwC,OAAQ,CACNuoG,QAAS,yCACT2S,QAAQ,GAEVlpH,OAAQ,6CACRu+C,QACE,smBACFD,SACE,44BACFJ,SAAU,yDACVN,YAAa,UAEjB,CAvBA1/C,EAAO7C,QAAU+xH,EACjBA,EAAMlsH,YAAc,QACpBksH,EAAMrE,QAAU,mCCChB,SAASsE,EAAM7F,IACZ,SAAWA,GACV,IAAIppE,EAAW,qBACXkvE,EAAY,CACd/W,QAAS,+CACT/qF,MAAO,YACP29F,OAAQ,CACNvrE,YAAa,MAGb5vC,EAAS,0BACThO,EAAS,gBACbwnH,EAAMW,UAAUkF,MAAQ,CACtB7vE,QAAS,CACP,SACA,CACE+4D,QAAS,6DACTuS,YAAY,IAGhB3oG,MAAO,CACLo2F,QAAS,QACT/qF,MAAO,YAETq+F,QAAS,CACP,CAEEtT,QACE,2FACFuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,wBACTvwC,OAAQA,EACRs/G,UAAWA,EACXlvE,SAAUA,EACVp+C,OAAQA,EACR49C,YAAa,WAGjB,CAEE24D,QACE,mOACFuS,YAAY,EACZK,OAAQ,CACN5qE,QACE,4DACFvwC,OAAQA,EACRs/G,UAAWA,EACXlvE,SAAUA,EACVp+C,OAAQA,EACRk+C,SAAU,2CAGd,CAEEq4D,QAAS,8BACTuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,aAGb,CAEEg4D,QACE,wGACFuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,UACTvwC,OAAQA,EACRs/G,UAAWA,EACXlvE,SAAU,CAACA,EAAU,mCACrBp+C,OAAQA,EACRk+C,SAAU,kCACVN,YAAa,WAGjB,CAEE24D,QACE,uFACFuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,SACTvwC,OAAQA,EACRs/G,UAAWA,EACXntG,MAAO,CACLo2F,QAAS,cACTuS,YAAY,EACZt9F,MAAO,YAET4yB,SAAUA,EACVp+C,OAAQA,EACRk+C,SAAU,QAIhBA,SAAU,OACVN,YAAa,QAEhB,CAnGA,CAmGE4pE,EACL,CAxGAtpH,EAAO7C,QAAUgyH,EACjBA,EAAMnsH,YAAc,QACpBmsH,EAAMtE,QAAU,mCCChB,SAASwE,EAAO/F,GACdA,EAAMW,UAAUoF,OAAS,CACvBxnH,IAAK,CACHwwG,QACE,wHACF4S,OAAQ,CACNpjH,IAAK,CACHwwG,QAAS,kBACT4S,OAAQ,CACNvrE,YAAa,WAGjB,aAAc,CACZ24D,QAAS,sCACT4S,OAAQ,CACNvrE,YAAa,CACX,KACA,CACE24D,QAAS,mBACTuS,YAAY,MAKpBlrE,YAAa,KACb,YAAa,eAInB4pE,EAAMW,UAAUqF,UAAYhG,EAAMW,UAAUoF,MAC9C,CAjCArvH,EAAO7C,QAAUkyH,EACjBA,EAAOrsH,YAAc,SACrBqsH,EAAOxE,QAAU,CAAC,4CCClB,SAAS0E,EAAMjG,GAEbA,EAAMW,UAAUsF,MAAQ,CACtBjwE,QAAS,CACP,CAEE+4D,QAAS,kCACTuS,YAAY,EACZI,QAAQ,GAEV,CAEE3S,QAAS,mBACTuS,YAAY,EACZI,QAAQ,IAGZ5mF,SAAU,CACR,CACEi0E,QAAS,sCACTuS,YAAY,GAEd,CACEvS,QAAS,2DACTuS,YAAY,EACZI,QAAQ,IAGZl7G,OAAQ,CACN,CACEuoG,QAAS,qBACT2S,QAAQ,GAEV,CACE3S,QAAS,4CACTuS,YAAY,EACZI,QAAQ,IAGZ,sBAAuB,CACrB3S,QAAS,+DACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QAAS,mBACT4S,OAAQ,CACNwE,WAAY,CACVpX,QAAS,wBACTuS,YAAY,GAEdlrE,YAAa,cAGjB5vC,OAAQ,YAGZ4/G,SAAU,CACRrX,QAAS,6CACTuS,YAAY,EACZt9F,MAAO,cAET/I,QAAS,qBAET87B,QACE,+EACFsvE,UAAW,SACXvvE,SAAU,2BACVt+C,OAAQ,6CACRk+C,SACE,4FACFN,YAAa,iBAEf4pE,EAAMW,UAAUsF,MAAM,uBAAuBtE,OAAsB,cAAEA,OAErE,WAAEA,OAAS3B,EAAMW,UAAUsF,KAC7B,CA/EAvvH,EAAO7C,QAAUoyH,EACjBA,EAAMvsH,YAAc,QACpBusH,EAAM1E,QAAU,mCCChB,SAAS+E,EAAKtG,GACZA,EAAMW,UAAU2F,KAAOtG,EAAMW,UAAUhqH,OAAO,QAAS,CACrD6P,OAAQ,CACNuoG,QAAS,gCACT2S,QAAQ,GAEV,aAAc,CACZ,kCACA,iEAEF3qE,QACE,mJACFL,SAAU,+DACVE,SAAU,kBAEZopE,EAAMW,UAAUh3B,aAAa,OAAQ,WAAY,CAC/CnoC,SAAU,CACRutD,QAAS,QACT2S,QAAQ,EACR19F,MAAO,WAGb,CAzBAttB,EAAO7C,QAAUyyH,EACjBA,EAAK5sH,YAAc,OACnB4sH,EAAK/E,QAAU,uCCHf,IAAIgF,EAAa,EAAQ,OAIzB,SAASC,EAAMxG,GACbA,EAAMS,SAAS8F,GACfvG,EAAMW,UAAU6F,MAAQxG,EAAMW,UAAUhqH,OAAO,IAAK,CAAC,GACrDqpH,EAAMW,UAAUh3B,aAAa,QAAS,UAAW,CAC/C68B,MAAO,CAILzX,QAAS,gCACT4S,OAAQ,CACN79F,EAAG,CAEDirF,QAAS,0CACT4S,OAAQ,CACN8E,UAAW,CACT1X,QAAS,cACT/qF,MAAO,eAET,iBAAkB,CAChB+qF,QAAS,2BACT/qF,MAAO,WACP29F,OAAQ,CACNvrE,YAAa,QAGjBl6C,KAAM8jH,EAAMW,UAAU78F,IAG1BkyB,QAASgqE,EAAMW,UAAU78F,EAAEkyB,QAC3BxvC,OAAQw5G,EAAMW,UAAU78F,EAAEtd,OAC1Bs0B,SAAU,WACVic,QAAS,OACTv+C,OAAQ,CACNu2G,QAAS,gCACTuS,YAAY,GAEdlrE,YAAa,uBAIrB,CA3CA1/C,EAAO7C,QAAU2yH,EACjBA,EAAM9sH,YAAc,QACpB8sH,EAAMjF,QAAU,mCCChB,SAASmF,EAAI1G,GACXA,EAAMW,UAAU+F,IAAM,CACpBlgH,OAAQ,CACNuoG,QAAS,2BAEXiE,WAAY,CACVjE,QAAS,2BACT/qF,MAAO,CAAC,OAAQ,WAChB29F,OAAQ,CACNvrE,YAAa,UAGjBuuB,KAAM,CACJoqC,QAAS,iBACT4S,OAAQ,CACNvrE,YAAa,UAGjBM,SAAU,2BAEZspE,EAAMW,UAAUgG,KAAO3G,EAAMW,UAAU+F,GACzC,CAxBAhwH,EAAO7C,QAAU6yH,EACjBA,EAAIhtH,YAAc,MAClBgtH,EAAInF,QAAU,CAAC,wCCCf,SAASqF,EAAU5G,GACjBA,EAAMW,UAAUiG,UAAY,CAC1BC,QAAS,CACP9X,QAAS,MACT/qF,MAAO,WAETwvF,UAAW,CACTzE,QAAS,KACT/qF,MAAO,YAET8iG,UAAW,CACT/X,QAAS,IACT/qF,MAAO,WAET+iG,UAAW,CACThY,QAAS,QACT/qF,MAAO,aAET0yB,SAAU,OACVV,QAAS,MAEb,CAxBAt/C,EAAO7C,QAAU+yH,EACjBA,EAAUltH,YAAc,YACxBktH,EAAUrF,QAAU,mCCCpB,SAASyF,EAAahH,GACpBA,EAAMW,UAAUqG,aAAe,CAC7BhxE,QAAS,iBACT,sBAAuB,CACrB+4D,QAAS,iEACTuS,YAAY,EACZt9F,MAAO,WACP29F,OAAQ,CACN,gBAAiB,CACf5S,QAAS,cACTuS,YAAY,GAEd+C,UAAW,CACTtV,QAAS,qDACT/qF,MAAO,WAETmiG,WAAY,CACVpX,QAAS,UACT4S,OAAQ,QAId7mF,SAAU,CACRi0E,QACE,mEACFuS,YAAY,EACZI,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,0BACT2S,QAAQ,GAEV,aAAc,CACZ3S,QAAS,mBACTuS,YAAY,GAEdvqE,QACE,6GACF97B,QAAS,sBACT67B,SAAU,0BACVt+C,OAAQ,2DACRk+C,SACE,mEACFN,YAAa,eACbC,SAAU,qBAEZ2pE,EAAMW,UAAUqG,aAAa,uBAAuBrF,OAAOwE,WAAWxE,OACpE3B,EAAMW,UAAUqG,YACpB,CAnDAtwH,EAAO7C,QAAUmzH,EACjBA,EAAattH,YAAc,eAC3BstH,EAAazF,QAAU,mCCCvB,SAAS0F,EAAIjH,GACXA,EAAMW,UAAUsG,IAAM,CACpBjxE,QAAS,CACP+4D,QAAS,gBACTuS,YAAY,EACZK,OAAQ,CACNzqE,OAAQ,2BAGZ1wC,OAAQ,CACNuoG,QAAS,iDACT2S,QAAQ,GAEVzmG,QAAS,WACT67B,SAAU,CACRi4D,QAAS,iDACTuS,YAAY,GAEd9qE,QACE,iUACFH,SAAU,CACR04D,QAAS,sBACTuS,YAAY,GAEdvqE,QACE,gRACFL,SAAU,yDACVl+C,OAAQ,4DACR49C,YAAa,gBAEjB,CAjCA1/C,EAAO7C,QAAUozH,EACjBA,EAAIvtH,YAAc,MAClButH,EAAI1F,QAAU,mCCCd,SAAS2F,EAAIlH,GAKXA,EAAMW,UAAUuG,IAAM,CACpBlxE,QAAS,SACTxvC,OAAQ,CAGN,CACEuoG,QAAS,sBACT2S,QAAQ,GAGV,CACE3S,QAAS,0BAGbh4D,QAAS,CACP,CAEEg4D,QACE,yaACFuS,YAAY,GAEd,CAEEvS,QACE,2MAGNv2G,OAAQ,CACNu2G,QACE,oIACFuS,YAAY,GAEd5qE,SAAU,CACR,mBACA,CACEq4D,QACE,yLACFuS,YAAY,GAEd,CACEvS,QAAS,wBAGb34D,YAAa,yBACbiuE,UAAW,CAGT,CACEtV,QAAS,gBACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,aAST,CACE+qF,QAAS,iBACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,eAIbg8F,EAAMW,UAAUwG,QAAUnH,EAAMW,UAAe,GACjD,CA7EAjqH,EAAO7C,QAAUqzH,EACjBA,EAAIxtH,YAAc,MAClBwtH,EAAI3F,QAAU,mCCCd,SAASz9F,EAAEk8F,GACTA,EAAMW,UAAU78F,EAAIk8F,EAAMW,UAAUhqH,OAAO,QAAS,CAClDq/C,QAAS,CACP+4D,QACE,sEACF2S,QAAQ,GAEVl7G,OAAQ,CAENuoG,QAAS,sCACT2S,QAAQ,GAEV,aAAc,CACZ3S,QACE,mFACFuS,YAAY,GAEdvqE,QACE,oVACFD,SAAU,wBACVt+C,OACE,oHACFk+C,SAAU,oDAEZspE,EAAMW,UAAUh3B,aAAa,IAAK,SAAU,CAC1CpzC,KAAM,CAEJw4D,QAAS,2CACT2S,QAAQ,KAGZ1B,EAAMW,UAAUh3B,aAAa,IAAK,SAAU,CAC1Cq6B,MAAO,CAGLjV,QACE,4FACFuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,WACP29F,OAAQ,CACNn7G,OAAQ,CACN,CAEEuoG,QAAS,2BACTuS,YAAY,GAEdtB,EAAMW,UAAU78F,EAAU,QAE5ByyB,KAAMypE,EAAMW,UAAU78F,EAAQ,KAC9BkyB,QAASgqE,EAAMW,UAAU78F,EAAW,QACpC,aAAc,CACZ,CACEirF,QAAS,+BACTuS,YAAY,GAEd,CACEvS,QAAS,+BACTuS,YAAY,EACZt9F,MAAO,aAIXqgG,UAAW,CACTtV,QAAS,gBACTuS,YAAY,EACZt9F,MAAO,WAET,iBAAkB,KAClBoyB,YAAa,kBACb+vE,WAAY,CACVpX,QAAS,YACT4S,OAAQ3B,EAAMW,UAAU78F,OAKhCk8F,EAAMW,UAAUh3B,aAAa,IAAK,WAAY,CAE5CtzC,SACE,sIAEG2pE,EAAMW,UAAU78F,EAAW,OACpC,CAtFAptB,EAAO7C,QAAUiwB,EACjBA,EAAEpqB,YAAc,IAChBoqB,EAAEy9F,QAAU,kCCCZ,SAAS6F,EAASpH,GAEhBA,EAAMW,UAAUyG,SAAWpH,EAAMW,UAAUhqH,OAAO,QAAS,CACzDq/C,QAAS,CACP,CACE+4D,QAAS,kCACTuS,YAAY,EACZK,OAAQ,CACNW,WAAY,CACVvT,QAAS,qBACT/qF,MAAO,iBAIb,CACE+qF,QAAS,mBACTuS,YAAY,EACZI,QAAQ,IAGZ3qE,QACE,gOACFL,SAAU,CACR,yEACA,yEAEFyqC,MAAO,CACL4tB,QACE,qFACF/qF,MAAO,UAET/jB,KAAM,CACJ8uG,QACE,uFACF/qF,MAAO,aAGXg8F,EAAMW,UAAUh3B,aAAa,WAAY,UAAW,CAElD,oBAAqB,CACnBolB,QACE,2KACF/qF,MAAO,qBAGJg8F,EAAMW,UAAUyG,SAAS,cAChCpH,EAAMW,UAAU0G,IAAMrH,EAAMW,UAAoB,QAClD,CAlDAjqH,EAAO7C,QAAUuzH,EACjBA,EAAS1tH,YAAc,WACvB0tH,EAAS7F,QAAU,uCCHnB,IAAI+B,EAAe,EAAQ,OAI3B,SAASgE,EAAWtH,GAClBA,EAAMS,SAAS6C,GACftD,EAAMW,UAAU2G,WAAatH,EAAMW,UAAUhqH,OAAO,QAAS,CAC3D6P,OAAQ,CACNuoG,QAAS,kCACTuS,YAAY,EACZI,QAAQ,GAEV,aAAc,CACZ,CAEE3S,QAAS,kBACTuS,YAAY,GAEd,CAEEvS,QAAS,kCACTuS,YAAY,IAGhBvqE,QACE,gIACFv+C,OAAQ,CAACwnH,EAAMW,UAAU4G,IAAI/uH,OAAQ,wBACrCk+C,SACE,4EAEJspE,EAAMW,UAAUh3B,aAAa,aAAc,WAAY,CACrD,iBAAkB,CAEhBolB,QAAS,wBACTuS,YAAY,EACZt9F,MAAO,gBAGXg8F,EAAMW,UAAUh3B,aAAa,aAAc,SAAU,CACnD,uBAAwB,CACtBolB,QACE,uFACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QACE,oEACFuS,YAAY,EACZK,OAAQ,CACN,2BAA4B,CAC1B5S,QAAS,wBACTuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU2G,YAE1B,4BAA6B,CAC3BvY,QAAS,YACT/qF,MAAO,iBAIbxd,OAAQ,aAIhB,CAhEA9P,EAAO7C,QAAUyzH,EACjBA,EAAW5tH,YAAc,aACzB4tH,EAAW/F,QAAU,mCCCrB,SAASiG,EAAIxH,GACXA,EAAMW,UAAU6G,IAAM,CACpBxxE,QAAS,SACTxvC,OAAQ,CACNuoG,QAAS,iDACT2S,QAAQ,GAEV2C,UAAW,CACTtV,QAAS,uBACTuS,YAAY,EACZt9F,MAAO,cAGT4yB,SAAU,cACVG,QACE,koBACFD,SACE,0lCACF77B,QAAS,qBACTziB,OAAQ,6CACR49C,YAAa,gCAEjB,CAzBA1/C,EAAO7C,QAAU2zH,EACjBA,EAAI9tH,YAAc,MAClB8tH,EAAIjG,QAAU,mCCCd,SAASlB,EAAML,GACbA,EAAMW,UAAUN,MAAQ,CACtBrqE,QAAS,CACP,CACE+4D,QAAS,kCACTuS,YAAY,EACZI,QAAQ,GAEV,CACE3S,QAAS,mBACTuS,YAAY,EACZI,QAAQ,IAGZl7G,OAAQ,CACNuoG,QAAS,iDACT2S,QAAQ,GAEV,aAAc,CACZ3S,QACE,2FACFuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,UAGjBW,QACE,6GACF97B,QAAS,qBACT67B,SAAU,cACVt+C,OAAQ,4DACRk+C,SAAU,+CACVN,YAAa,gBAEjB,CArCA1/C,EAAO7C,QAAUwsH,EACjBA,EAAM3mH,YAAc,QACpB2mH,EAAMkB,QAAU,mCCChB,SAASkG,EAAQzH,GAEfA,EAAMW,UAAU8G,QAAU,CACxBzxE,QAAS,CACP+4D,QAAS,MACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,oBACT2S,QAAQ,GAEVnrE,KAAM,QACNpzC,OAAQ,CACN4rG,QAAS,uCACTuS,YAAY,GAEdvqE,QAAS,CACPg4D,QACE,8+EACFuS,YAAY,GAEdrmG,QAAS,yBACTziB,OAAQ,CACNu2G,QACE,+FACFuS,YAAY,GAEdxqE,SAAU,CACRi4D,QAAS,4CACTuS,YAAY,GAEd5qE,SAAU,UACVN,YAAa,cAEjB,CArCA1/C,EAAO7C,QAAU4zH,EACjBA,EAAQ/tH,YAAc,UACtB+tH,EAAQlG,QAAU,mCCClB,SAASmG,EAAM1H,GACbA,EAAMW,UAAU+G,MAAQ,CACtB1xE,QAAS,MACTxvC,OAAQ,CACNuoG,QAAS,oBACT2S,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QAAS,kCACT4S,OAAQ,CACNvrE,YAAa,UACbQ,SAAU,UAKlBA,SACE,21DACF9b,SACE,8pMACFic,QACE,uyDACF97B,QAAS,4BACT0sG,UACE,2EACFjxE,SACE,+HACFD,SAAU,CACRs4D,QAAS,eACT/qF,MAAO,cAETxrB,OAAQ,oBACRs+C,SAAU,0BACVV,YAAa,gBAEjB,CAtCA1/C,EAAO7C,QAAU6zH,EACjBA,EAAMhuH,YAAc,QACpBguH,EAAMnG,QAAU,mCCChB,SAASqG,EAAM5H,GACbA,EAAMW,UAAUiH,MAAQ,CACtB5xE,QAAS,CACP+4D,QAAS,uBACTuS,YAAY,EACZI,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,8DACT2S,QAAQ,GAEVzsF,MAAO,CACL85E,QAAS,kBACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,UAET,aAAc,CAEZ+qF,QACE,oEACFuS,YAAY,EACZK,OAAQ,CACNnpH,OAAQ,CACNu2G,QAAS,UACTuS,YAAY,GAEdlrE,YAAa,SAGjBW,QAAS,CACPg4D,QACE,wtIACFuS,YAAY,GAEdrmG,QAAS,CACP8zF,QAAS,qCACTuS,YAAY,GAEd9oH,OAAQ,CACNu2G,QACE,kFACFuS,YAAY,GAEd5qE,SAAU,CACR,oBACA,CACEq4D,QAAS,+DACTuS,YAAY,IAGhBlrE,YAAa,UAEjB,CAxDA1/C,EAAO7C,QAAU+zH,EACjBA,EAAMluH,YAAc,QACpBkuH,EAAMrG,QAAU,mCCChB,SAASsG,EAAa7H,IACnB,SAAWA,GAEV,IAAIhqE,EAAU,YACVkwE,EAAgB,CAClBnX,QAAS,aACT/qF,MAAO,YAETg8F,EAAMW,UAAUkH,aAAe7H,EAAMW,UAAUhqH,OAAO,aAAc,CAClEq/C,QAASA,EACTxvC,OAAQ,CAEN,CACEuoG,QAAS,yBACT2S,QAAQ,GAEV,CAEE3S,QAAS,yBACT2S,QAAQ,EACRC,OAAQ,CACNuE,cAAeA,KAIrBnvE,QACE,mSACF,eAAgB,CACdg4D,QAAS,aACT/qF,MAAO,cAGXg8F,EAAMW,UAAUh3B,aAAa,eAAgB,UAAW,CACtD,oBAAqB,CACnBolB,QAAS,iBACT/qF,MAAO,WAGT,cAAe,CACb+qF,QAAS,qBACT/qF,MAAO,QACP29F,OAAQ,CACN3rE,QAASA,EACTkwE,cAAeA,MAIrBlG,EAAMW,UAAUh3B,aAAa,eAAgB,SAAU,CACrD,oBAAqB,CACnBolB,QAAS,yBACT4S,OAAQ,CACN8E,UAAW,CACT1X,QAAS,QACT/qF,MAAO,eAET24F,OAAQ,CACN5N,QAAS,UACT/qF,MAAO,sBACP29F,OAAQ3B,EAAMW,UAAU+D,cAK9B,mBAAoB,CAClB,CACE3V,QAAS,iBACT2S,QAAQ,EACR19F,MAAO,UAET,CACE+qF,QAAS,iBACT2S,QAAQ,EACR19F,MAAO,SACP29F,OAAQ,CACNuE,cAAeA,OAKvBlG,EAAMW,UAAUh3B,aAAa,eAAgB,UAAW,CAEtD7uD,SAAU,kCAELklF,EAAMW,UAAUkH,aAAa,mBACpC7H,EAAMW,UAAUmH,OAAS9H,EAAMW,UAAUkH,YAC1C,CApFA,CAoFE7H,EACL,CAzFAtpH,EAAO7C,QAAUg0H,EACjBA,EAAanuH,YAAc,eAC3BmuH,EAAatG,QAAU,CAAC,0CCCxB,SAASwG,EAAU/H,GACjBA,EAAMW,UAAUoH,UAAY,CAC1B/xE,QAAS,CACP+4D,QAAS,6CACTuS,YAAY,EACZI,QAAQ,GAEVsG,QAAS,CACPjZ,QAAS,2BACT2S,QAAQ,EACRC,OAAQ,CACN,aAAc,OACdn7G,OAAQ,CACNuoG,QAAS,6BACTuS,YAAY,GAEdlrE,YAAa,SAGjBU,SAAU,CACRi4D,QAAS,2CACTuS,YAAY,GAEdvqE,QACE,0jBACF97B,QAAS,qBACTziB,OACE,4HACF49C,YAAa,gBACbM,SACE,sHACF4rE,WAAY,CACVvT,QAAS,gCACT/qF,MAAO,YAGXg8F,EAAMW,UAAUh3B,aAAa,YAAa,UAAW,CACnD,gBAAiB,CACfolB,QAAS,qCACT2S,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QACE,iEACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAUoH,WAE1B/hG,MAAO,YAGX,iBAAkB,CAChB+oF,QAAS,4CACT2S,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QACE,iEACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAUoH,WAE1BvhH,OAAQ,cAIdw5G,EAAMW,UAAUsH,KAAOjI,EAAMW,UAAUoH,SACzC,CApEArxH,EAAO7C,QAAUk0H,EACjBA,EAAUruH,YAAc,YACxBquH,EAAUxG,QAAU,CAAC,wCCCrB,SAAS2G,EAAIlI,IACV,SAAWA,GAGV,IADA,IAAImI,EAAgB,8CAA8CrvH,OACzD7B,EAAI,EAAGA,EAAI,EAAGA,IACrBkxH,EAAgBA,EAAc3nH,QAAQ,WAAW,WAC/C,OAAO2nH,CACT,IAEFA,EAAgBA,EAAc3nH,QAAQ,UAAW,MACjDw/G,EAAMW,UAAUuH,IAAM,CACpBlyE,QAAS99C,OAAOiwH,GAChB3hH,OAAQ,CACNuoG,QAAS,sBACT2S,QAAQ,GAEV/f,UAAW,CACT,CACEoN,QAAS72G,OACP,6DAA6DY,OAAO0H,QAClE,cACA,WACE,OAAO2nH,CACT,KAGJzG,QAAQ,EACR19F,MAAO,YACP29F,OAAQ,CACN3rE,QAAS99C,OAAOiwH,GAChB3hH,OAAQ,CACNuoG,QAAS,sBACT2S,QAAQ,GAEVhrE,SAAU,IACVN,YAAa,mBAGjB,CACE24D,QACE,wFACF/qF,MAAO,cAGX+yB,QACE,0/DACFv+C,OACE,6GACF4vH,MAAO,CACLrZ,QAAS,kBACT/qF,MAAO,eAET0yB,SACE,8FACFN,YAAa,8CAEhB,CAvDA,CAuDE4pE,EACL,CA5DAtpH,EAAO7C,QAAUq0H,EACjBA,EAAIxuH,YAAc,MAClBwuH,EAAI3G,QAAU,uCCHd,IAAIgF,EAAa,EAAQ,OAIzB,SAASgB,EAAIvH,GACXA,EAAMS,SAAS8F,GACd,SAAWvG,GACV,IAAIjpE,EACF,osBACEsxE,EAAU,uCAAuCvvH,OAAO0H,QAC1D,cACA,WACE,OAAOu2C,EAAQj+C,MACjB,IAEFknH,EAAMW,UAAU4G,IAAMvH,EAAMW,UAAUhqH,OAAO,IAAK,CAChD,aAAc,CACZ,CACEo4G,QAAS72G,OACP,gEAAgEY,OAAO0H,QACrE,cACA,WACE,OAAOu2C,EAAQj+C,MACjB,KAGJwoH,YAAY,GAKd,iCAEA,oCAEA,kEAEFvqE,QAASA,EACTv+C,OAAQ,CACNu2G,QACE,iJACF2S,QAAQ,GAEVhrE,SACE,yHACFz7B,QAAS,uBAEX+kG,EAAMW,UAAUh3B,aAAa,MAAO,SAAU,CAC5CjzF,OAAQ,CAENq4G,QAAS72G,OACP,2BAA2BY,OACzB,MACA,mDAAmDA,OACnD,IACA,kDAAkDA,OAAO0H,QACvD,eACA,WACE,OAAO6nH,CACT,IAEF,KAEJ/G,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNn7G,OAAQ,eACRkwC,SAAU,IACVN,YAAa,OAGjB,aAAc,CACZ24D,QAAS,oCACT/qF,MAAO,SACP09F,QAAQ,KAGZ1B,EAAMW,UAAUh3B,aAAa,MAAO,UAAW,CAC7C,mBAAoB,CAClBolB,QAAS,8DACT4S,OAAQ,CACN7qE,SAAU,OACVwxE,QAAS,CACPvZ,QAAS,WACT/qF,MAAO,aACP29F,OAAQ3B,EAAMW,UAAU4G,SAKhCvH,EAAMW,UAAUh3B,aAAa,MAAO,WAAY,CAC9C,eAAgB,CACdolB,QAAS,KACT/qF,MAAO,iBAGXg8F,EAAMW,UAAUh3B,aAAa,MAAO,aAAc,CAGhD,cAAe,CACbolB,QACE,6EACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ3B,EAAMW,UAAUhqH,OAAO,MAAO,CAAC,MAG3CqpH,EAAMW,UAAUh3B,aACd,SACA,eACA,CAEE,aAAc,2BAEhBq2B,EAAMW,UAAU4G,IAAI,eAEvB,CA9GA,CA8GEvH,EACL,CApHAtpH,EAAO7C,QAAU0zH,EACjBA,EAAI7tH,YAAc,MAClB6tH,EAAIhG,QAAU,uCCHd,IAAIgH,EAAgB,EAAQ,OAI5B,SAASC,EAAQxI,GACfA,EAAMS,SAAS8H,GACd,SAAWvI,GACVA,EAAMW,UAAU6H,QAAUxI,EAAMW,UAAUhqH,OAAO,OAAQ,CACvDogD,QAAS,CACP,4XACA,CACEg4D,QAAS,gCACTuS,YAAY,IAGhB9oH,OACE,sJACFk+C,SAAU,CAAC,KAAMspE,EAAMW,UAAU8H,KAAK/xE,UACtCN,YAAa,mBAEf4pE,EAAMW,UAAUh3B,aAAa,UAAW,iBAAkB,CACxDgY,UAAW,CACToN,QAAS,WACT4S,OAAQ,CACN8E,UAAW,CACT1X,QAAS,WACT/qF,MAAO,eAET29E,UAAW,CACToN,QAAS,YACTuS,YAAY,EACZt9F,MAAO,cAET9d,KAAM,CACJ6oG,QAAS,mBACT4S,OAAQ3B,EAAMW,UAAU6H,WAI9BE,UAAW,CACT3Z,QAAS,wBACT4S,OAAQ,CACNvoF,QAAS,CACP21E,QAAS,wBACTuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU6H,SAE1B/B,UAAW,CACT1X,QAAS,oBACT/qF,MAAO,cAIbuyB,KAAM,CACJw4D,QACE,0EACF2S,QAAQ,IAGb,CArDA,CAqDE1B,EACL,CA3DAtpH,EAAO7C,QAAU20H,EACjBA,EAAQ9uH,YAAc,UACtB8uH,EAAQjH,QAAU,mCCClB,SAASkD,EAAOzE,IACb,SAAWA,GAWV,SAASx/G,EAAQuuG,EAAS+V,GACxB,OAAO/V,EAAQvuG,QAAQ,cAAc,SAAUo3C,EAAGxjD,GAChD,MAAO,MAAQ0wH,GAAc1wH,GAAS,GACxC,GACF,CAOA,SAAS0lF,EAAGi1B,EAAS+V,EAAcpQ,GACjC,OAAOx8G,OAAOsI,EAAQuuG,EAAS+V,GAAepQ,GAAS,GACzD,CAQA,SAASiU,EAAO5Z,EAAS6Z,GACvB,IAAK,IAAI3xH,EAAI,EAAGA,EAAI2xH,EAAW3xH,IAC7B83G,EAAUA,EAAQvuG,QAAQ,aAAa,WACrC,MAAO,MAAQuuG,EAAU,GAC3B,IAEF,OAAOA,EAAQvuG,QAAQ,YAAa,YACtC,CACA,IAAIqoH,EAEI,4GAFJA,EAIe,qCAJfA,EAQA,2NARAA,EAWA,uXAEJ,SAASC,EAAkBC,GACzB,MAAO,SAAWA,EAAMp0H,OAAO6L,QAAQ,KAAM,KAAO,MACtD,CACA,IAAIwoH,EAA0BF,EAC5BD,GAEElG,EAAWzqH,OACb4wH,EACED,EACE,IACAA,EACA,IACAA,EACA,IACAA,IAGFI,EAAkBH,EACpBD,EACE,IACAA,EACA,IACAA,GAEAK,EAAwBJ,EAC1BD,EACE,IACAA,EACA,IACAA,GAEAP,EAAUK,EAAO,mCAAmC7vH,OAAQ,GAC5DqwH,EAAcR,EAAO,0BAA0B7vH,OAAQ,GACvD1C,EAAO,qBAAqB0C,OAC5BswH,EAAc5oH,EAAQ,qBAAqB1H,OAAQ,CAAC1C,EAAMkyH,IAC1DprE,EAAa18C,EAAQ,mCAAmC1H,OAAQ,CAClEmwH,EACAG,IAEE5rH,EAAQ,mBAAmB1E,OAC3BuwH,EAA6B7oH,EAC/B,yCAAyC1H,OACzC,CAACokD,EAAY1/C,IAEX8rH,EAAe9oH,EACjB,2CAA2C1H,OAC3C,CAACwvH,EAASa,EAAa3rH,IAErBsd,EAAQta,EAAQ,yBAAyB1H,OAAQ,CAACwwH,IAClDC,EAAiB/oH,EACnB,mDAAmD1H,OACnD,CAACgiB,EAAOoiC,EAAY1/C,IAElBgsH,EAAa,CACfzyE,QAAS4rE,EACTvsE,YAAa,iBAIX2oD,EAAY,8CAA8CjmG,OAC1D2wH,EAAgB,wBAAwB3wH,OACxC4wH,EAAiB,kCAAkC5wH,OACvDknH,EAAMW,UAAU8D,OAASzE,EAAMW,UAAUhqH,OAAO,QAAS,CACvD6P,OAAQ,CACN,CACEuoG,QAASj1B,EAAG,kBAAkBhhF,OAAQ,CAAC4wH,IACvCpI,YAAY,EACZI,QAAQ,GAEV,CACE3S,QAASj1B,EAAG,mBAAmBhhF,OAAQ,CAAC2wH,IACxCnI,YAAY,EACZI,QAAQ,IAGZ,aAAc,CACZ,CAGE3S,QAASj1B,EAAG,qCAAqChhF,OAAQ,CACvDokD,IAEFokE,YAAY,EACZK,OAAQ6H,GAEV,CAGEza,QAASj1B,EAAG,wCAAwChhF,OAAQ,CAC1D1C,EACAmzH,IAEFjI,YAAY,EACZK,OAAQ6H,GAEV,CAGEza,QAASj1B,EAAG,4BAA4BhhF,OAAQ,CAAC1C,IACjDkrH,YAAY,GAEd,CAIEvS,QAASj1B,EAAG,oBAAoBhhF,OAAQ,CACtCkwH,EACAI,IAEF9H,YAAY,EACZK,OAAQ6H,GAEV,CAIEza,QAASj1B,EAAG,yBAAyBhhF,OAAQ,CAACokD,IAC9CokE,YAAY,EACZK,OAAQ6H,GAEV,CAGEza,QAASj1B,EAAG,oBAAoBhhF,OAAQ,CAAC1C,IACzCkrH,YAAY,GAEd,CAIEvS,QAASj1B,EAAG,mCAAmChhF,OAAQ,CACrDuwH,IAEF/H,YAAY,EACZK,OAAQ6H,GAEV,CAGEza,QAASj1B,EACP,2EACGhhF,OACH,CAACywH,EAAgBL,EAAuB9yH,IAE1CurH,OAAQ6H,IAGZzyE,QAAS4rE,EAETnqH,OACE,kJACFk+C,SAAU,uDACVN,YAAa,2BAEf4pE,EAAMW,UAAUh3B,aAAa,SAAU,SAAU,CAC/Ci4B,MAAO,CACL7S,QAAS,OACT/qF,MAAO,cAGXg8F,EAAMW,UAAUh3B,aAAa,SAAU,cAAe,CACpD,kBAAmB,CACjBolB,QAASj1B,EAAG,yBAAyBhhF,OAAQ,CAAC1C,IAC9CkrH,YAAY,EACZt9F,MAAO,iBAGXg8F,EAAMW,UAAUh3B,aAAa,SAAU,aAAc,CACnDg+B,UAAW,CAGT5Y,QAASj1B,EACP,+DAA+DhhF,OAC/D,CAAC1C,IAEHkrH,YAAY,EACZK,OAAQ,CACNvrE,YAAa,OAGjB,kBAAmB,CAEjB24D,QAASj1B,EACP,kFACGhhF,OACH,CAACqwH,IAEH7H,YAAY,EACZt9F,MAAO,aACP29F,OAAQ6H,GAEV,cAAe,CAIbza,QAASj1B,EACP,+DAA+DhhF,OAC/D,CAACywH,EAAgBrsE,IAEnBykE,OAAQ6H,EACRxlG,MAAO,cAET,yBAA0B,CAExB+qF,QAASj1B,EAAG,8BAA8BhhF,OAAQ,CAACywH,IACnDjI,YAAY,EACZK,OAAQ6H,EACRxlG,MAAO,cAQT,iBAAkB,CAEhB+qF,QAASj1B,EAAG,yBAAyBhhF,OAAQ,CAAC1C,EAAMkyH,IACpD3G,OAAQ,CACN7qE,SAAUgjC,EAAG,SAAShhF,OAAQ,CAAC1C,IAC/BkyH,QAAS,CACPvZ,QAAS72G,OAAOowH,GAChBtkG,MAAO,aACP29F,OAAQ6H,KAId,YAAa,CAIXza,QAASj1B,EACP,kKACGhhF,OACH,CACEkwH,EACAI,EACAhzH,EACAmzH,EACA5G,EAAS7pH,OACTqwH,EACA,kBAAkBrwH,SAGtBwoH,YAAY,EACZK,OAAQ,CACN,mBAAoB,CAClB5S,QAASj1B,EAAG,+BAA+BhhF,OAAQ,CACjDswH,EACAD,IAEF7H,YAAY,EACZI,QAAQ,EACRC,OAAQ3B,EAAMW,UAAU8D,QAE1B1tE,QAAS4rE,EACT,aAAc,CACZ5T,QAAS72G,OAAOqxH,GAChB7H,QAAQ,EACRC,OAAQ6H,GAEVpzE,YAAa,UAGjBuzE,aAAc,CACZ5a,QAAS,gBACTuS,YAAY,EACZt9F,MAAO,WACP29F,OAAQ,CAEN0C,UAAW,CACTtV,QACE,iGACFuS,YAAY,EACZt9F,MAAO,eAKf,IAAI4lG,EAA2BH,EAAgB,IAAM1qB,EACjD8qB,EAAkCrpH,EACpC,iEAAiE1H,OACjE,CAAC8wH,IAECE,EAAkBnB,EACpBnoH,EAAQ,+BAA+B1H,OAAQ,CAC7C+wH,IAEF,GAEEE,EACF,wEACGjxH,OACD6mE,EAAOn/D,EAAQ,0BAA0B1H,OAAQ,CACnDokD,EACA4sE,IAEF9J,EAAMW,UAAUh3B,aAAa,SAAU,aAAc,CACnDgY,UAAW,CAGToN,QAASj1B,EACP,6EACGhhF,OACH,CAACixH,EAAYpqD,IAEf2hD,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNzrH,OAAQ,CACN64G,QAASj1B,EAAG,iBAAiBhhF,OAAQ,CAACixH,IACtC/lG,MAAO,WAET,sBAAuB,CACrB+qF,QAASj1B,EAAG,aAAahhF,OAAQ,CAACgxH,IAClCnI,OAAQ3B,EAAMW,UAAU8D,QAE1B,aAAc,CACZ1V,QAAS72G,OAAOglD,GAChBykE,OAAQ,CACNvrE,YAAa,OAGjBA,YAAa,WAInB,IAAI4zE,EAAe,aAAalxH,OAC5BmxH,EAAsBtB,EACxBnoH,EAAQ,+BAA+B1H,OAAQ,CAC7C+wH,IAEF,GAEEK,EAAiB1pH,EAAQ,qCAAqC1H,OAAQ,CACxEmxH,EACAD,IAEEG,EAAsBxB,EACxBnoH,EACE,mEACG1H,OACH,CAAC8wH,IAEH,GAEEQ,EAAiB5pH,EAAQ,qCAAqC1H,OAAQ,CACxEqxH,EACAH,IAEF,SAASK,EAA0BnE,EAAeoE,GAChD,MAAO,CACLpE,cAAe,CACbnX,QAASj1B,EAAG,6BAA6BhhF,OAAQ,CAACotH,IAClD5E,YAAY,EACZK,OAAQ,CACN,gBAAiB,CACf5S,QAASj1B,EAAG,sCAAsChhF,OAAQ,CACxDwxH,EACAN,IAEF1I,YAAY,EACZK,OAAQ,CACNvrE,YAAa,OAGjBA,YAAa,UACb+vE,WAAY,CACVpX,QAAS,UACT/qF,MAAO,kBACP29F,OAAQ3B,EAAMW,UAAU8D,UAI9Bj+G,OAAQ,UAEZ,CACAw5G,EAAMW,UAAUh3B,aAAa,SAAU,SAAU,CAC/C,uBAAwB,CACtB,CACEolB,QAASj1B,EACP,4DAA4DhhF,OAC5D,CAACoxH,IAEH5I,YAAY,EACZI,QAAQ,EACRC,OAAQ0I,EAA0BH,EAAgBD,IAEpD,CACElb,QAASj1B,EAAG,4CAA4ChhF,OAAQ,CAC9DsxH,IAEF9I,YAAY,EACZI,QAAQ,EACRC,OAAQ0I,EAA0BD,EAAgBD,KAGtD5zE,KAAM,CACJw4D,QAAS72G,OAAO6mG,GAChB2iB,QAAQ,KAGZ1B,EAAMW,UAAU4J,OAASvK,EAAMW,UAAU6J,GAAKxK,EAAMW,UAAU8D,MAC/D,CAxcA,CAwcEzE,EACL,CA7cAtpH,EAAO7C,QAAU4wH,EACjBA,EAAO/qH,YAAc,SACrB+qH,EAAOlD,QAAU,CAAC,SAAU,yCCH5B,IAAIgD,EAAkB,EAAQ,OAI9B,SAASkG,EAAOzK,GACdA,EAAMS,SAAS8D,GAId,SAAWvE,GACV,IAAI0K,EAAc,0DACf5xH,OACC6xH,EACF,+DAA+D7xH,OAC/D,IACA,iEAAiEA,OAQnE,SAAS6vH,EAAO5Z,EAAS6Z,GACvB,IAAK,IAAI3xH,EAAI,EAAGA,EAAI2xH,EAAW3xH,IAC7B83G,EAAUA,EAAQvuG,QAAQ,WAAW,WACnC,MAAO,MAAQuuG,EAAU,GAC3B,IAEF,OAAOA,EACJvuG,QAAQ,UAAW,aACnBA,QAAQ,SAAU,MAAQmqH,EAAa,KACvCnqH,QAAQ,aAAc,MAAQkqH,EAAc,IACjD,CACA,IAAI7nE,EAAQ8lE,EAAO,4CAA4C7vH,OAAQ,GACnE8xH,EAASjC,EAAO,8CAA8C7vH,OAAQ,GACtE+xH,EAAQlC,EAAO,4CAA4C7vH,OAAQ,GACnEgyH,EAAQnC,EAAO,0CAA0C7vH,OAAQ,GAWjEu+G,EACF,yFACGv+G,OACDujH,EAAa,sBAAsBvjH,OAASu+G,EAAW,UAAUv+G,OACjEiyH,EACF,OAAOjyH,OACP,MACA,oBAAoBA,OACpBu+G,EACA,OAAOv+G,OACP,MACC,OAAOA,OACN,IAEA,eAAeA,OACfujH,EACA,IACAsM,EAEE,MAAM7vH,OACJu+G,EACA,OAAOv+G,OACP,MACC,OAAOA,OACN,IAEA,eAAeA,OACfujH,EARJ,YAYE,YAAYvjH,OACd,GAEJ,KACA,YAAYA,OACZ,IACA,IAAIA,OACJujH,EACA,IAQF2D,EAAMW,UAAU8J,OAASzK,EAAMW,UAAUhqH,OAAO,SAAU,CAAC,GAC3D,IAcI6zH,EAAK,CACPzb,QAAS,YACT/qF,MAAO,kBACP29F,OAjBmB3B,EAAMW,UAAUh3B,aACnC,SACA,SACA,CACEkV,KAAM,CACJkQ,QAAS72G,OAAO6yH,GAChBrJ,QAAQ,EACRC,OAAQ3B,EAAMW,UAAU8J,SAG5B,CACEhG,OAAQzE,EAAMW,UAAUhqH,OAAO,SAAU,CAAC,MAQ9CqpH,EAAMW,UAAUh3B,aAAa,SAAU,SAAU,CAC/C,gBAAiB,CACfolB,QAAS,iBACT2S,QAAQ,EACR19F,MAAO,WAETgnG,MAAO,CACLjc,QAAS72G,OACP,YAAYY,OACV,MACA,CAEE+xH,EACA,wBAAwB/xH,OAAS+xH,EACjC,6CAA6C/xH,OAC3C+pD,EACA,MAAM/pD,OACN+xH,EACF,QAAQ/xH,OACN+xH,EACA,cAAc/xH,OACd+pD,EACA,YAAY/pD,OACd,SAASA,OACP+xH,EACA,cAAc/xH,OACd+pD,EACA,MAAM/pD,OACN+xH,EACA,gBAAgB/xH,OAChB+xH,EACF,QAAQ/xH,OACN+pD,EACA,MAAM/pD,OACN+xH,EACA,MACA,UAAU/xH,OACV,MACA,WAAWA,OACX+pD,EACA,KACA,MAAM/pD,OACN+xH,EACA,MACFpnG,KAAK,KACP,KAEJ69F,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN5qE,QAAS,QACT0tE,OAAQ+F,IAGZnG,UAAW,CACTtV,QACE,wKACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN5qE,QAAS,QACT0tE,OAAQ+F,IAGZ12H,MAAO,CACLi7G,QAAS72G,OACP,YAAYY,OACV,kBAAkBA,OAClB,MACA,QAAQA,OACR,IACA+pD,EALF,OAQE,eAAe/pD,OACf,IACA+pD,EACA,IACA+nE,EACA,IACAE,EACAjoE,EACA,MAEJy+D,YAAY,EACZI,QAAQ,EACR19F,MAAO,WACP29F,OAAQ,CACN5qE,QAAS,KACT0tE,OAAQ+F,IAGZ,oBAAqB,CACnBzb,QAAS,iBACTuS,YAAY,EACZt9F,MAAO,cAGXg8F,EAAMW,UAAUsK,MAAQjL,EAAMW,UAAU8J,MACzC,CA7MA,CA6MEzK,EACL,CAtNAtpH,EAAO7C,QAAU42H,EACjBA,EAAO/wH,YAAc,SACrB+wH,EAAOlJ,QAAU,CAAC,yCCClB,SAAS2J,EAAIlL,IAWV,SAAWA,GAKV,SAASlsH,EAAMgF,GACb,OAAOZ,OACL,UAAUY,OAAS,MAAQA,EAAS,IAAM,cAAcA,OACxD,IAEJ,CACAknH,EAAMW,UAAUuK,IAAM,CACpB7G,UAAW,CACTtV,QACE,6ZACFuS,YAAY,EACZt9F,MAAO,YAET8tF,OAAQ,CACN/C,QAASj7G,EAAM,qBAAqBgF,QACpCwoH,YAAY,GAEdviF,KAAM,CACJgwE,QAASj7G,EAAM,SAASgF,QACxBwoH,YAAY,EACZt9F,MAAO,WAET2mF,MAAO,CACLoE,QAASj7G,EAAM,oBAAoBgF,QACnCwoH,YAAY,EACZt9F,MAAO,UAETmnG,KAAM,CACJpc,QAASj7G,EAAM,iCAAiCgF,QAChDwoH,YAAY,EACZt9F,MAAO,UAETonG,KAAM,CACJrc,QAASj7G,EACP,kCAAkCgF,OAChC,IACA,cAAcA,OACd,IACA,0DAA0DA,QAE9DwoH,YAAY,EACZt9F,MAAO,MACP29F,OAAQ,CACN3qE,UAAW,OAGfD,QAAS,CACP,CACEg4D,QAASj7G,EAAM,mBAAmBgF,QAClCwoH,YAAY,EACZt9F,MAAO,UAET,CACE+qF,QAASj7G,EAAM,YAAYgF,QAC3BwoH,YAAY,EACZt9F,MAAO,SAGXoyB,YAAa,IAEhB,CAjEA,CAiEE4pE,EACL,CAhFAtpH,EAAO7C,QAAUq3H,EACjBA,EAAIxxH,YAAc,MAClBwxH,EAAI3J,QAAU,mCCCd,SAAS8J,EAAUrL,IAChB,SAAWA,GACV,IACIsL,EADA9kH,EAAS,gDAEbw5G,EAAMW,UAAUpzF,IAAIkiB,SAAW,CAC7Bs/D,QAASiR,EAAMW,UAAUpzF,IAAIkiB,SAASs/D,QACtCuS,YAAY,EACZK,OAAS2J,EAAiB,CACxB,iBACE,+DACF,eAAgB,UAChB3V,MAAO,WACPzlG,GAAI,UACJyxF,UAAW,CACToN,QAAS72G,OAAO,oBAAsBsO,EAAO1N,OAAS,SACtD4oH,QAAQ,EACRC,OAAQ,CACNvrE,YAAa,UACb,mBAAoB,CAClB24D,QAAS,aACTuS,YAAY,EACZt9F,MAAO,WAET2jG,UAAW,CACT5Y,QAAS,4CACTuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,QAGjB,YAAa,CACX24D,QAAS,oCACTuS,YAAY,GAEd,aAAc,CACZ96G,EACA,CACEuoG,QAAS,4CACTuS,YAAY,IAGhB5qE,SAAU,cAGd,OAAQ,CACN,CACEq4D,QAAS,kDACTuS,YAAY,EACZK,OAAQ,CACNnpH,OAAQ,SACRk+C,SAAU,SAGd,CACEq4D,QAAS,gCACTuS,YAAY,IAGhBiK,WAAY,cAIZn1E,YAAa,UAGjB4pE,EAAMW,UAAUpzF,IAAY,OAAEo0F,OAAO,8BAA8BA,OACjE2J,EACFtL,EAAMW,UAAUh3B,aAAa,MAAO,WAAY,CAC9C/yC,SAAU,CACRm4D,QACE,8EACFuS,YAAY,KAGhB,IAAI36D,EAAO,CACTooD,QAAS,+BACTuS,YAAY,GAEV9oH,EAAS,CACXu2G,QAAS,uCACTuS,YAAY,GAEdtB,EAAMW,UAAUh3B,aAAa,MAAO,WAAY,CAC9CjzC,SAAU,CACRq4D,QAAS,qBACTuS,YAAY,GAIdkK,QAAS,CACPzc,QAAS,qBACT/qF,MAAO,SAET5pB,MAAO,CACL,CACE20G,QACE,o6CACFuS,YAAY,GAEd,CACEvS,QACE,4JACF4S,OAAQ,CACNh7D,KAAMA,EACNnuD,OAAQA,EACRs+C,SAAU,eACVV,YAAa,WAKnBO,OAAQ,kBACRgQ,KAAMA,EACNnuD,OAAQA,GAEX,CAlHA,CAkHEwnH,EACL,CAvHAtpH,EAAO7C,QAAUw3H,EACjBA,EAAU3xH,YAAc,YACxB2xH,EAAU9J,QAAU,mCCCpB,SAASh0F,EAAIyyF,IACV,SAAWA,GACV,IAAIx5G,EACF,8EACFw5G,EAAMW,UAAUpzF,IAAM,CACpByoB,QAAS,mBACTa,OAAQ,CACNk4D,QAAS,iDACT4S,OAAQ,CACNh9C,KAAM,WACN,6BAA8B,CAC5BoqC,QACE,4FACFuS,YAAY,EACZt9F,MAAO,YAET+yB,QAAS,CACPg4D,QAAS,yCACTuS,YAAY,KAIlBvnG,IAAK,CAEHg1F,QAAS72G,OACP,eACEsO,EAAO1N,OACP,IACA,8BAA8BA,OAC9B,OACF,KAEF4oH,QAAQ,EACRC,OAAQ,CACN7qE,SAAU,QACVV,YAAa,UACb5vC,OAAQ,CACNuoG,QAAS72G,OAAO,IAAMsO,EAAO1N,OAAS,KACtCkrB,MAAO,SAIbyrB,SAAU,CACRs/D,QAAS72G,OACP,qDACEsO,EAAO1N,OACP,iBAEJwoH,YAAY,GAEd96G,OAAQ,CACNuoG,QAASvoG,EACTk7G,QAAQ,GAEV5mF,SAAU,CACRi0E,QACE,oFACFuS,YAAY,GAEdtqE,UAAW,gBACXF,SAAU,CACRi4D,QAAS,kCACTuS,YAAY,GAEdlrE,YAAa,aAEf4pE,EAAMW,UAAUpzF,IAAY,OAAEo0F,OAAOzlH,KAAO8jH,EAAMW,UAAUpzF,IAC5D,IAAI6yF,EAASJ,EAAMW,UAAUP,OACzBA,IACFA,EAAO7hH,IAAIktH,WAAW,QAAS,OAC/BrL,EAAO7hH,IAAImtH,aAAa,QAAS,OAEpC,CAvEA,CAuEE1L,EACL,CA5EAtpH,EAAO7C,QAAU05B,EACjBA,EAAI7zB,YAAc,MAClB6zB,EAAIg0F,QAAU,mCCCd,SAASoK,EAAI3L,GAEXA,EAAMW,UAAUgL,IAAM,CACpB73H,MAAO,iCACPsiD,YAAa,IAEjB,CATA1/C,EAAO7C,QAAU83H,EACjBA,EAAIjyH,YAAc,MAClBiyH,EAAIpK,QAAU,mCCCd,SAASqK,EAAO5L,GACdA,EAAMW,UAAUiL,OAAS,CAEvB51E,QAAS,SACTxvC,OAAQ,CACNuoG,QAAS,8CACT2S,QAAQ,GAEV,aAAc,CACZ3S,QAAS,8CACTuS,YAAY,EACZI,QAAQ,GAEVmK,aAAc,CACZ9c,QACE,kFACFuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,YAETk5B,WAAY,CACV6xD,QAAS,oBACT2S,QAAQ,GAEV9qE,SAAU,QAEVG,QACE,4YACFD,SAAU,mBACV77B,QAAS,2BACTziB,OAAQ,uDAERk+C,SAAU,8CACVN,YAAa,eAEjB,CAtCA1/C,EAAO7C,QAAU+3H,EACjBA,EAAOlyH,YAAc,SACrBkyH,EAAOrK,QAAU,mCCCjB,SAAS9nH,EAAEumH,GACTA,EAAMW,UAAUlnH,EAAIumH,EAAMW,UAAUhqH,OAAO,QAAS,CAClDq/C,QAAS,CACP,CAEE+4D,QAAS,WACT2S,QAAQ,GAEV,CACE3S,QAAS72G,OACP,YAAYY,OACV,MACA,CAGE,0DAA0DA,OAC1D,SAASA,OACT,mBAAmBA,QACnB2qB,KAAK,KACP,KAEJ69F,YAAY,EACZI,QAAQ,IAGZl7G,OAAQ,CACN,CACEuoG,QAAS72G,OACP,CAEE,qCAAqCY,OACrC,6DAA6DA,OAG7D,+BAA+BA,OAE/B,qBAAqBA,OACrB,0CAA0CA,QAC1C2qB,KAAK,KACP,KAEFi+F,QAAQ,GAEV,CACE3S,QAAS,+BACT2S,QAAQ,EACR19F,MAAO,iBAIX+yB,QACE,u0BACFv+C,OAAQ,CAGN,2EACA,CACEu2G,QACE,2FACFuS,YAAY,IAGhB5qE,SACE,sHAEJspE,EAAMW,UAAUh3B,aAAa,IAAK,SAAU,CAG1CpzC,KAAM,6BAERypE,EAAMW,UAAUh3B,aAAa,IAAK,UAAW,CAC3C7uD,SAAU,WAEZklF,EAAMW,UAAUh3B,aAAa,IAAK,WAAY,CAC5C82B,SAAU,CAER1R,QACE,sNACF/qF,MAAO,aAGb,CApFAttB,EAAO7C,QAAU4F,EACjBA,EAAEC,YAAc,IAChBD,EAAE8nH,QAAU,mCCCZ,SAASuK,EAAK9L,IACX,SAAWA,GACV,IAAI2C,EAAW,CACb,2BACA,8WAEEoJ,EAAgB,uDACjBjzH,OACC81C,EAAY,CACdmgE,QAAS72G,OAAO6zH,EAAgB,gCAAgCjzH,QAChEwoH,YAAY,EACZK,OAAQ,CACNgG,UAAW,CACT5Y,QAAS,2CACT4S,OAAQ,CACNvrE,YAAa,SAKrB4pE,EAAMW,UAAUmL,KAAO9L,EAAMW,UAAUhqH,OAAO,QAAS,CACrD,aAAc,CACZi4C,EACA,CAGEmgE,QAAS72G,OACP6zH,EAAgB,+BAA+BjzH,QAEjDwoH,YAAY,EACZK,OAAQ/yE,EAAU+yE,SAGtB5qE,QAAS4rE,EACTjsE,SACE,mFAEJspE,EAAMW,UAAUh3B,aAAa,OAAQ,SAAU,CAC7C,iBAAkB,CAChBolB,QACE,mEACF2S,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QACE,6DACFuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,aACb+vE,WAAY,CACVpX,QAAS,UACT4S,OAAQ3B,EAAMW,UAAUmL,QAI9BtlH,OAAQ,YAGZA,YAAQnI,IAEV2hH,EAAMW,UAAUh3B,aAAa,OAAQ,aAAc,CACjDnoC,SAAU,CACRutD,QAAS,OACT/qF,MAAO,cAGXg8F,EAAMW,UAAUh3B,aAAa,OAAQ,aAAc,CACjDqiC,SAAU,CACRjd,QACE,sEACF4S,OAAQ,CACN,aAAc/yE,EACdmI,QAAS4rE,EACTvsE,YAAa,YACbM,SAAU,WAIjB,CA7EA,CA6EEspE,EACL,CAlFAtpH,EAAO7C,QAAUi4H,EACjBA,EAAKpyH,YAAc,OACnBoyH,EAAKvK,QAAU,mCCCf,SAAS0K,EAAUjM,IAChB,SAAWA,GACVA,EAAMW,UAAUsL,UAAY,CAC1BlyG,IAAK,iDACL+gB,SAAU,CACRi0E,QAAS,wDACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,qCACT2S,QAAQ,GAEV,YACE,8DACF/mG,KAAM,CACJo0F,QAAS,eACT2S,QAAQ,GAEV1rE,QAAS,CACP,CACE+4D,QAAS,kCACTuS,YAAY,EACZI,QAAQ,GAEV,CACE3S,QAAS,mBACTuS,YAAY,EACZI,QAAQ,IAGZ17F,MAAO,CACL+oF,QAAS,iCACT2S,QAAQ,GAEV3qE,QACE,0GACFD,SAAU,wBACVt+C,OAAQ,qCACR49C,YAAa,iBACbM,SAAU,wCACVz7B,QAAS,qBAEZ,CAzCA,CAyCE+kG,EACL,CA9CAtpH,EAAO7C,QAAUo4H,EACjBA,EAAUvyH,YAAc,YACxBuyH,EAAU1K,QAAU,mCCCpB,SAAS2K,EAAIlM,GACXA,EAAMW,UAAUuL,IAAM,CACpBl2E,QAAS,CACP+4D,QAAS,8CACTuS,YAAY,GAEd,aAAc,CACZvS,QACE,yEACF/qF,MAAO,UAETmoG,QAAS,CACPpd,QAAS,wBACT/qF,MAAO,YAETxd,OAAQ,CACNuoG,QAAS,sBACT2S,QAAQ,GAEV5qE,SACE,ywFACFC,QACE,6EACF97B,QAAS,CACP8zF,QAAS,2BACT/qF,MAAO,YAETxrB,OAAQ,4BACRk+C,SAAU,6DACVN,YAAa,iBAEjB,CAlCA1/C,EAAO7C,QAAUq4H,EACjBA,EAAIxyH,YAAc,MAClBwyH,EAAI3K,QAAU,mCCCd,SAAS6K,EAAMpM,GAGbA,EAAMW,UAAUyL,MAAQ,CAItBp2E,QACE,yEACFxvC,OAAQ,CACNuoG,QAAS,4DACT2S,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QAAS,eACT4S,OAAQ,CACNwE,WAAY,CACVpX,QAAS,wBACTuS,YAAY,EACZt9F,MAAO,iBACP29F,OAAQ,MAEVvrE,YAAa,cAKrBz9B,MAAO,CACLo2F,QAAS,UACT2S,QAAQ,GAEV3nG,IAAK,CAEHg1F,QACE,yFACF2S,QAAQ,GAEVV,IAAK,CAEHjS,QAAS,yCACT2S,QAAQ,EACRC,OAAQ,CACN7qE,SAAU,OACVJ,SAAU,KACVE,SAAU,YAGdu0E,KAAM,CAEJpc,QAAS,4BACT4S,OAAQ,CACN7qE,SAAU,SACVJ,SAAU,IACVl+C,OAAQ,mBAIZu+C,QACE,qFACFP,QAAS,oBACTv7B,QAAS,qBACTziB,OACE,gFACFk+C,SACE,qGACFN,YAAa,qBAEb,aAAc,gBAEhB4pE,EAAMW,UAAUyL,MAAM5lH,OAAOm7G,OAAOuE,cAAcvE,OAAOwE,WAAWxE,OAClE3B,EAAMW,UAAUyL,KACpB,CA1EA11H,EAAO7C,QAAUu4H,EACjBA,EAAM1yH,YAAc,QACpB0yH,EAAM7K,QAAU,mCCChB,SAASthB,EAAK+f,IACX,SAAWA,GACVA,EAAMW,UAAU1gB,KAAO,CACrBosB,MAAO,CAEL,4BACA,YACA,YAQJ,IAAIC,EAAW,CACb,eAAgB,IAChB,gBAAiB,IACjB,gBAAiB,IACjB,iBAAkB,IAClBC,UAAW,IACXtsB,KAAM,KAERlrG,OAAOqC,KAAKk1H,GAAUjvH,SAAQ,SAAUjH,GACtC,IAAIimB,EAASiwG,EAASl2H,GAClB4tB,EAAQ,GACP,QAAQjpB,KAAK3E,IAEhB4tB,EAAMpvB,KAAK,MAAMwL,KAAKhK,GAAM,IAEjB,SAATA,GACF4tB,EAAMpvB,KAAK,QAEborH,EAAMW,UAAU1gB,KAAK7pG,GAAQ,CAC3B24G,QAAS72G,OACP,QAAUmkB,EAAS,iCACnB,KAEF2H,MAAOA,EACP29F,OAAQ,CACN5uE,KAAM,CACJg8D,QAAS,+BACTuS,YAAY,GAEdjlG,OAAQ,CACN0yF,QAAS,SACT/qF,MAAO,MAAM5jB,KAAKhK,GAAM,KAIhC,IACArB,OAAOK,eAAe4qH,EAAMW,UAAU1gB,KAAM,WAAY,CACtDnsG,MAAOw4H,GAEV,CArDA,CAqDEtM,EACL,CA1DAtpH,EAAO7C,QAAUosG,EACjBA,EAAKvmG,YAAc,OACnBumG,EAAKshB,QAAU,uCCHf,IAAIiL,EAA4B,EAAQ,OAIxC,SAASC,EAAOzM,GACdA,EAAMS,SAAS+L,GAGd,SAAWxM,GACVA,EAAMW,UAAU8L,OAAS,CACvBz2E,QAAS,mBACTz3C,IAAK,CACHwwG,QAAS,oBACTuS,YAAY,EACZt9F,MAAO,WAETyiG,UAAW,CACT1X,QAAS,4BACT/qF,MAAO,eAETxd,OAAQ,CACNuoG,QAAS,kCACT2S,QAAQ,GAEV7zG,OAAQ,CACNkhG,QAAS,UACTuS,YAAY,EACZt9F,MAAO,YAETjpB,KAAM,CACJg0G,QAAS,mCACTuS,YAAY,EACZt9F,MAAO,YAET8yB,SAAU,wBACVC,QACE,gFACFL,SAAU,oDACVl+C,OAAQ,oBACRyiB,QAAS,2BACT27B,SAAU,UACVR,YAAa,iBAEf,IAAI24D,EAAU,kDACV2d,EAAmB1M,EAAMW,UAAU,qBACvCX,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAC3C0L,EAAiBC,kBAAkB3L,EAAK,SAAUjS,EACpD,IACAiR,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1C0L,EAAiBE,qBAAqB5L,EAAK,SAC7C,IACAhB,EAAMW,UAAUkM,OAAS7M,EAAMW,UAAU8L,OACzCzM,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAC3C0L,EAAiBC,kBAAkB3L,EAAK,SAAUjS,EACpD,IACAiR,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1C0L,EAAiBE,qBAAqB5L,EAAK,SAC7C,GACD,CAlDA,CAkDEhB,EACL,CA1DAtpH,EAAO7C,QAAU44H,EACjBA,EAAO/yH,YAAc,SACrB+yH,EAAOlL,QAAU,CAAC,0CCClB,SAASuL,EAAY9M,GACnBA,EAAMW,UAAU,iBAAmB,CACjC3qE,QAAS,MACTxvC,OAAQ,CACNuoG,QAAS,wBACT2S,QAAQ,GAEV9qE,SAAU,CACR,CACEm4D,QAAS,wBACTuS,YAAY,GAEd,CACEvS,QAAS,kBACTuS,YAAY,IAGhBvqE,QAAS,qCACT4+D,MAAO,CAEL5G,QAAS,gCACTuS,YAAY,EACZt9F,MAAO,WAET/jB,KAAM,CAEJ8uG,QACE,2XACFuS,YAAY,EACZt9F,MAAO,WAEToyB,YAAa,QAEf4pE,EAAMW,UAAU,YAAcX,EAAMW,UAAU,gBAChD,CArCAjqH,EAAO7C,QAAUi5H,EACjBA,EAAYpzH,YAAc,cAC1BozH,EAAYvL,QAAU,mCCCtB,SAASwL,EAAO/M,IACb,SAAWA,GAGV,IAAIgN,EACF,sDAAsDl0H,OACpDjE,EAAQ,0CAA0CiE,OAAO0H,QAC3D,YACA,WACE,OAAOwsH,CACT,IAEExmH,EACF,0EACG1N,OACDuoC,EAAS,8CAA8CvoC,OAAO0H,QAChE,UACA,WACE,OAAOgG,CACT,IAEEymH,EAAa,CACfle,QAAS72G,OAAOsO,GAChBk7G,QAAQ,GAENwL,EAAc,CAChBne,QAAS,gBACTuS,YAAY,EACZI,QAAQ,GAOV,SAAS5nC,EAAGhhF,EAAQ47G,GAQlB,OAPA57G,EAASA,EACN0H,QAAQ,UAAU,WACjB,OAAO6gC,CACT,IACC7gC,QAAQ,SAAS,WAChB,OAAO3L,CACT,IACKqD,OAAOY,EAAQ47G,EACxB,CACAsL,EAAMW,UAAUoM,OAAS,CACvBI,YAAa,CACXpe,QACE,kNACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNxrH,QAAS,CACP44G,QAASj1B,EACP,gDAAgDhhF,OAChD,KAEFwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN7mF,SAAU,CACRi0E,QAAS,iBACTuS,YAAY,GAEd96G,OAAQ,CACNymH,EACA,CACEle,QAAS,8BACTuS,YAAY,IAGhB5qE,SAAU,OACVN,YAAa,MAGjBW,QAAS,CACP,CAEEg4D,QAASj1B,EACP,iEACGhhF,OACH,KAEFwoH,YAAY,EACZI,QAAQ,GAEV,CAEE3S,QAASj1B,EACP,iEACGhhF,OACH,KAEFwoH,YAAY,EACZI,QAAQ,GAEV,CAEE3S,QAASj1B,EAAG,oBAAoBhhF,OAAQ,KACxCwoH,YAAY,EACZI,QAAQ,GAEV,CACE3S,QAAS,OACT2S,QAAQ,IAGZ1rE,QAASk3E,EACT1mH,OAAQymH,EACRr2E,SAAU,2BACVF,SAAU,SAGdV,QAASk3E,GAEXlN,EAAMW,UAAUyM,WAAapN,EAAMW,UAAUoM,MAC9C,CAnHA,CAmHE/M,EACL,CAxHAtpH,EAAO7C,QAAUk5H,EACjBA,EAAOrzH,YAAc,SACrBqzH,EAAOxL,QAAU,CAAC,8CCClB,SAAS8L,EAAIrN,IAEV,SAAWA,GACV,IAAIsN,EACF,MACA,CAEE,uCAAuCx0H,OACvC,4BAA4BA,OAC5B,gCAAgCA,OAChC,+EACGA,QACH2qB,KAAK,KACP,IACE8pG,EAAW,CACbnN,OAAQ,CACNrR,QAAS,oBACTuS,YAAY,EACZt9F,MAAO,CAAC,kBAAmB,gBAAiB,gBAC5C29F,OAAQ3B,EAAMW,UAAUP,SAQ5B,SAASoN,EAAO10H,EAAQ47G,GACtB,OAAOx8G,OACLY,EAAO0H,QAAQ,SAAS,WACtB,OAAO8sH,CACT,IACA5Y,EAEJ,CACAsL,EAAMW,UAAU0M,IAAM,CACpBr3E,QAAS,CACP+4D,QAAS,gCACT2S,QAAQ,GAEV,aAAc,CACZ3S,QAASye,EACP,+CAA+C10H,OAC/C,KAEFwoH,YAAY,EACZI,QAAQ,EACR19F,MAAO,aACP29F,OAAQ4L,GAEV,aAAc,CACZxe,QAASye,EAAO,oBAAoB10H,QACpCwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ4L,GAEV,YAAa,CACXxe,QAASye,EAAO,qCAAqC10H,QACrDwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ4L,GAEVx2E,QAAS,mDACT,gBAAiB,CACfg4D,QAAS,uDACTuS,YAAY,EACZt9F,MAAO,WAET6F,KAAM,CACJklF,QAASye,EAAO,+BAA+B10H,QAC/CwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ4L,GAEV72E,SAAU,aACVN,YAAa,cAEf4pE,EAAMW,UAAU8M,GAAKzN,EAAMW,UAAU0M,GACtC,CA5EA,CA4EErN,EACL,CAlFAtpH,EAAO7C,QAAUw5H,EACjBA,EAAI3zH,YAAc,MAClB2zH,EAAI9L,QAAU,CAAC,sCCCf,SAASmM,EAAK1N,GACZA,EAAMW,UAAU+M,KAAO,CACrB13E,QAAS,mBACTxvC,OAAQ,CACNuoG,QAAS,0BACT2S,QAAQ,GAEViM,QAAS,CACP5e,QAAS,gBACT2S,QAAQ,EACR19F,MAAO,cAETgvF,WAAY,CACVjE,QAAS,iDACTuS,YAAY,EACZt9F,MAAO,CAAC,OAAQ,YAElB2gD,KAAM,mCACNvuB,YAAa,6BACbM,SAAU,WAEd,CAxBAhgD,EAAO7C,QAAU65H,EACjBA,EAAKh0H,YAAc,OACnBg0H,EAAKnM,QAAU,mCCCf,SAASqM,EAAa5N,GACpBA,EAAMW,UAAUiN,aAAe,CAE7B53E,QAAS,SACT63E,QAAS,CACP9e,QAAS,mBACTuS,YAAY,EACZt9F,MAAO,WACP29F,OAAQ,CACN37F,MAAO,oBAEP0wB,SAAU,oBACVN,YAAa,cAGjBvgD,IAAK,CACHk5G,QAAS,+BACTuS,YAAY,EACZt9F,MAAO,aAETlwB,MAAO,CACLi7G,QAAS,MACT/qF,MAAO,aACP29F,OAAQ,CACNvrE,YAAa,OAIrB,CA/BA1/C,EAAO7C,QAAU+5H,EACjBA,EAAal0H,YAAc,eAC3Bk0H,EAAarM,QAAU,mCCCvB,SAASuM,EAAO9N,GACdA,EAAMW,UAAUmN,OAAS,CACvB93E,QAAS,OACTxvC,OAAQ,CAEN,CACEuoG,QAAS,0BACT2S,QAAQ,GAEV,CACE3S,QAAS,0BACT2S,QAAQ,GAEV,CACE3S,QAAS,4CACT2S,QAAQ,IAIZnrE,KAAM,sBACNQ,QACE,+YACF97B,QAAS,sBAET,aAAc,qBACdziB,OAAQ,CAEN,mCACA,oFAEF49C,YAAa,+CACbM,SAAU,+CAEd,CApCAhgD,EAAO7C,QAAUi6H,EACjBA,EAAOp0H,YAAc,SACrBo0H,EAAOvM,QAAU,uCCHjB,IAAIiL,EAA4B,EAAQ,OAIxC,SAASuB,EAAI/N,GACXA,EAAMS,SAAS+L,GACd,SAAWxM,GACVA,EAAMW,UAAUoN,IAAM,CACpBtH,UAAW,CACT1X,QAAS,qBACT/qF,MAAO,eAETgyB,QAAS,YACT,sBAAuB,CACrB+4D,QAAS,UACT4S,OAAQ3B,EAAMW,UAAU+D,aAG5B1E,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAE3ChB,EAAMW,UAAU,qBAAqBgM,kBACnC3L,EACA,MAHe,qBAMnB,IACAhB,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1ChB,EAAMW,UAAU,qBAAqBiM,qBAAqB5L,EAAK,MACjE,IACAhB,EAAMW,UAAUqN,IAAMhO,EAAMW,UAAUoN,GACvC,CAxBA,CAwBE/N,EACL,CA9BAtpH,EAAO7C,QAAUk6H,EACjBA,EAAIr0H,YAAc,MAClBq0H,EAAIxM,QAAU,CAAC,uCCCf,SAAS0M,EAAOjO,GACdA,EAAMW,UAAUsN,OAAS,CACvBjtE,IAAK,CACH+tD,QACE,6FACF4S,OAAQ,CACNhgB,UAAW,QACXn7F,OAAQ,gBAGZwvC,QAAS,CACP+4D,QAAS,MACT2S,QAAQ,GAGV17F,MAAO,CACL+oF,QACE,6LACF2S,QAAQ,GAEVl7G,OAAQ,CACN,CAEEuoG,QACE,iNACF2S,QAAQ,EACRC,OAAQ,CAER,GAEF,CACE5S,QAAS,sBACT2S,QAAQ,EACRC,OAAQ,CAER,GAEF,CAEE5S,QAAS,gDACT2S,QAAQ,EACRC,OAAQ,CAER,IAGJuM,KAAM,CAEJnf,QAAS,eACTuS,YAAY,EACZt9F,MAAO,UAETttB,OAAQ,CACNq4G,QAAS,eACT/qF,MAAO,cAGT,YAAa,iBACbghG,SAAU,CAERjW,QAAS,eACTuS,YAAY,EACZt9F,MAAO,YAET29E,UAAW,CACToN,QAAS,OACT/qF,MAAO,YAET8yB,SAAU,sDACVt+C,OAAQ,kEACRu+C,QACE,kNACF97B,QAAS,yBACTy7B,SAAU,CACR,2FACA,CAEEq4D,QAAS,eACTuS,YAAY,GAEd,CAEEvS,QAAS,eACTuS,YAAY,IAGhBlrE,YAAa,uBAEf4pE,EAAMW,UAAUsN,OAAOznH,OAAOnJ,SAAQ,SAAUu4B,GAC9CA,EAAE+rF,OAAS,CACTuE,cAAe,CACbnX,QAAS,aACT4S,OAAQ,CACN8E,UAAW,CACT1X,QAAS,WACT/qF,MAAO,eAET9nB,KAAM8jH,EAAMW,UAAUsN,SAI9B,GACF,CAzGAv3H,EAAO7C,QAAUo6H,EACjBA,EAAOv0H,YAAc,SACrBu0H,EAAO1M,QAAU,mCCCjB,SAAS4M,EAAInO,GACXA,EAAMW,UAAUwN,IAAM,CACpBn4E,QAAS,sBACTO,KAAM,CACJw4D,QACE,0EACF2S,QAAQ,GAEVl7G,OAAQ,CACN,CAEEuoG,QAAS,iBACT2S,QAAQ,GAEV,CACE3S,QAAS,wBACT2S,QAAQ,IAGZ,mBAAoB,CAIlB3S,QACE,wGACFuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,+BAGbA,QACE,kFAEFP,QACE,0PAEFh+C,OAAQ,mDAQRk+C,SAAU,0DAEV03E,UAAW,8BACX/3E,SAAU,8BACVD,YAAa,gBAEjB,CArDA1/C,EAAO7C,QAAUs6H,EACjBA,EAAIz0H,YAAc,MAClBy0H,EAAI5M,QAAU,sCCHd,IAAIgH,EAAgB,EAAQ,OACxBiE,EAA4B,EAAQ,OAIxC,SAAS6B,EAAIrO,GACXA,EAAMS,SAAS8H,GACfvI,EAAMS,SAAS+L,GACd,SAAWxM,GACVA,EAAMW,UAAU0N,IAAM,CACpB5H,UAAW,CACT1X,QAAS,wBACTuS,YAAY,EACZt9F,MAAO,eAETykG,KAAM,CACJ1Z,QAAS,eACT/qF,MAAO,gBACP29F,OAAQ3B,EAAMW,UAAU8H,OAG5BzI,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAG3ChB,EAAMW,UAAU,qBAAqBgM,kBACnC3L,EACA,MAHA,4FAMJ,IACAhB,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1ChB,EAAMW,UAAU,qBAAqBiM,qBAAqB5L,EAAK,MACjE,GACD,CAzBA,CAyBEhB,EACL,CAhCAtpH,EAAO7C,QAAUw6H,EACjBA,EAAI30H,YAAc,MAClB20H,EAAI9M,QAAU,mCCAd,SAAS+M,EAAOtO,GACdA,EAAMW,UAAU2N,OAAS,CACvBt4E,QAAS,MACTxvC,OAAQ,CACNuoG,QAAS,wBACT2S,QAAQ,GAEV,kBAAmB,CACjB3S,QAAS,8BACT/qF,MAAO,YAET,cAAe,CACb+qF,QAAS,wBACT/qF,MAAO,QAET/I,QAAS,qBACT87B,QAAS,0DACTv+C,OAAQ,CACN,SACA,mBACA,8CAEFs+C,SAAU,sBACVF,SAAU,CAERm4D,QAAS,gCACTuS,YAAY,GAEd5qE,SAAU,CACR,+GACA,CAEEq4D,QAAS,iBACTuS,YAAY,GAEd,CAEEvS,QAAS,iBACTuS,YAAY,IAGhB4M,KAAM,gBACN93E,YAAa,wBAEjB,CA/CA1/C,EAAO7C,QAAUy6H,EACjBA,EAAO50H,YAAc,SACrB40H,EAAO/M,QAAU,uCCHjB,IAAIgN,EAAe,EAAQ,OACvB/B,EAA4B,EAAQ,OAIxC,SAASgC,EAAMxO,GACbA,EAAMS,SAAS8N,GACfvO,EAAMS,SAAS+L,GACd,SAAWxM,GACVA,EAAMW,UAAU6N,MAAQ,CACtB/H,UAAW,CACT1X,QAAS,iBACT/qF,MAAO,eAET,eAAgB,CACd+qF,QAAS,UACT4S,OAAQ3B,EAAMW,UAAU8N,MAG5BzO,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAE3ChB,EAAMW,UAAU,qBAAqBgM,kBACnC3L,EACA,QAHY,gBAMhB,IACAhB,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1ChB,EAAMW,UAAU,qBAAqBiM,qBAAqB5L,EAAK,QACjE,GACD,CAtBA,CAsBEhB,EACL,CA7BAtpH,EAAO7C,QAAU26H,EACjBA,EAAM90H,YAAc,QACpB80H,EAAMjN,QAAU,mCCAhB,SAASmN,EAAa1O,GACpBA,EAAMW,UAAU,iBAAmB,CACjC3qE,QAAS,CACP+4D,QAAS,qCACTuS,YAAY,EACZI,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,sBACT2S,QAAQ,GAEV5hB,UAAW,CAQTiP,QACE,uEACF2S,QAAQ,EACR19F,MAAO,SACP29F,OAAQ,CACNjrE,SAAU,KACVN,YAAa,IACbu4E,MAAO,CACL5f,QAAS,WACT/qF,MAAO,YAET2mB,KAAM,CACJokE,QAAS,eACT4S,OAAQ,CACNvrE,YAAa,UAGjB3tC,KAAM,YAGV,gBAAiB,CACfsmG,QAAS,oBACT/qF,MAAO,WAET49F,MAAO,CACL7S,QACE,uEACF/qF,MAAO,WACP29F,OAAQ,CACNjrE,SAAU,IACV6qC,KAAM,mBACNtqD,OAAQ,aACRu1B,IAAK,WAGT+0B,KAAM,CAGJwtB,QAAS,uDACT/qF,MAAO,YAETxrB,OAAQ,+CACRyiB,QAAS,sBACTy7B,SAAU,yBACVN,YAAa,eAEf4pE,EAAMW,UAAgB,KAAIX,EAAMW,UAAe,IAC7CX,EAAMW,UAAU,gBACpB,CAtEAjqH,EAAO7C,QAAU66H,EACjBA,EAAah1H,YAAc,eAC3Bg1H,EAAanN,QAAU,mCCCvB,SAAS51B,EAAOq0B,IACb,SAAWA,GACV,IAAI4O,EAAiB,CACnB93E,SACE,iFAEA+3E,EAAgB,CAClBr2H,OAAQ,gBAENmzF,EAAS,CACX31C,QAAS,CACP,CAEE+4D,QAAS,oBACTuS,YAAY,EACZK,OAAQiN,GAGV,CAEE7f,QAAS,mCACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQiN,GAEV,CAEE7f,QAAS,8CACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQiN,IAGZp2H,OAAQ,CACN,CAEEu2G,QAAS,yBACTuS,YAAY,GAEd,CAEEvS,QAAS,yDACTuS,YAAY,GAEd,CAEEvS,QAAS,iCACTuS,YAAY,GAEd,CAEEvS,QAAS,iCACTuS,YAAY,GAEd,CAEEvS,QAAS,8BACTuS,YAAY,GAEd,CAGEvS,QACE,8DACFuS,YAAY,GAEd,CAEEvS,QAAS,mCACTuS,YAAY,GAEd,CAOEvS,QACE,yEACFuS,YAAY,IAIhB98G,OAAQ,CACNuqG,QACE,sEACFuS,YAAY,EACZt9F,MAAO,SACP29F,OAAQ,CACN/qE,SAAU,OACVG,QAAS,oBACTL,SAAU,CACRq4D,QAAS,6BACTuS,YAAY,KAIlBrmG,QAAS,CACP8zF,QAAS,qBACTuS,YAAY,GAGd,gBAAiB,CACfvS,QAAS,wCACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,SACP29F,OAAQ,CACNnpH,OAAQ,gBAGZ,mBAAoB,CAClB,CAEEu2G,QAAS,0DACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,SACP29F,OAAQ,CACNnpH,OAAQq2H,EAAcr2H,OAEtB,wBAAyB,CACvBu2G,QAAS,0BACTuS,YAAY,EACZt9F,MAAO,cAIb,CAEE+qF,QAAS,6DACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,SACP29F,OAAQkN,GAEV,CAEE9f,QAAS,6CACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,SACP29F,OAAQkN,IAGZ,gBAAiB,CACf9f,QAAS,yCACTuS,YAAY,EACZt9F,MAAO,WACP29F,OAAQ,CAGNn7G,OAAQ,CACNuoG,QAAS,cACTuS,YAAY,KAkBlB,yBAA0B,CACxB,CAEEvS,QAAS,uCACTuS,YAAY,EACZt9F,MAAO,YAET,CAEE+qF,QAAS,eACTuS,YAAY,EACZt9F,MAAO,YAET,CAEE+qF,QAAS,iBACTuS,YAAY,EACZt9F,MAAO,aAGX8qG,YAAa,CACX/f,QAAS,KACTuS,YAAY,EACZt9F,MAAO,WAET,iBAAkB,CAChB+qF,QAAS,KACTuS,YAAY,EACZt9F,MAAO,YAET,oBAAqB,CACnB+qF,QAAS,KACTuS,YAAY,EACZt9F,MAAO,YAET,eAAgB,CACd+qF,QAAS,KACTuS,YAAY,EACZt9F,MAAO,YAET,mBAAoB,CAElB+qF,QAAS,iCACTuS,YAAY,EACZt9F,MAAO,WAET,uBAAwB,CACtB+qF,QAAS,KACTuS,YAAY,EACZt9F,MAAO,YA0BT,4BAA6B,CAC3B+qF,QACE,0MACFuS,YAAY,EACZt9F,MAAO,WAET,eAAgB,CACd+qF,QAAS,6DACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,YAET,wBAAyB,CACvB+qF,QAAS,uBACTuS,YAAY,EACZt9F,MAAO,YAGT,gCAAiC,CAC/B,CAEE+qF,QAAS,wBACTuS,YAAY,EACZt9F,MAAO,YAET,CAEE+qF,QAAS,iBACTuS,YAAY,EACZt9F,MAAO,aAIX,sBAAuB,CACrB,CAEE+qF,QAAS,iBACTuS,YAAY,EACZt9F,MAAO,YAET,CAEE+qF,QAAS,iBACTuS,YAAY,EACZt9F,MAAO,aAGX,cAAe,CACb+qF,QAAS,0BACTuS,YAAY,GAiBd96G,OAAQ,CACNuoG,QAAS,qBACT2S,QAAQ,EACRC,OAAQkN,IAGRzM,EAAS,SAAUh9F,GACrB,OAAQA,EAAM,IAAI5kB,QAAQ,4BAA6B,OACzD,EACIuuH,EAAmB,SAAUv5H,GAC/B,OAAO,IAAI0C,OAAO,aAAe1C,EAAIwH,IAAIolH,GAAQ3+F,KAAK,KAAO,aAC/D,EACIurG,EAAW,CACb,iBAAkB,CAChB,KACA,QACA,QACA,OACA,UACA,MACA,WACA,kBACA,MACA,OACA,YACA,aACA,OACA,WACA,OACA,OACA,QACA,WACA,OACA,QACA,OACA,MACA,IACA,IACA,QACA,QACA,QACA,OACA,kBACA,MACA,SACA,MACA,QACA,OACA,QACA,SACA,OACA,UACA,UACA,OACA,UACA,MACA,gBACA,WACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QACA,UACA,YACA,OACA,QACA,OACA,SACA,gBACA,SACA,QACA,YACA,WACA,oBACA,kBACA,OACA,YACA,MACA,QACA,MACA,QACA,MACA,iBACA,WAEF,uBAAwB,CAEtB,UACA,YACA,YACA,KACA,SACA,MACA,IACA,WACA,KACA,SACA,QACA,SACA,YACA,aACA,WACA,SACA,UACA,gBACA,oBACA,YACA,UACA,mBACA,KACA,WACA,IACA,KACA,MAEF,oBAAqB,CACnB,aACA,WACA,SACA,mBACA,SACA,aACA,aACA,YACA,mBACA,kBACA,WACA,aACA,OACA,WACA,UACA,aACA,YACA,WACA,OACA,OACA,MACA,WACA,UACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,oBACA,aACA,cACA,OACA,SACA,gBACA,oBACA,gCACA,iCACA,YACA,UACA,WACA,SACA,aACA,aACA,UACA,SACA,OACA,eACA,eACA,QACA,OACA,SACA,YACA,UACA,QACA,WACA,cACA,WACA,QACA,YACA,aACA,aACA,qBACA,SACA,SACA,WACA,eACA,UACA,aACA,OACA,UACA,QACA,SACA,SACA,OACA,aACA,WACA,YACA,MACA,aACA,UACA,aACA,SACA,cACA,YACA,OACA,YACA,SACA,YACA,iBACA,UACA,eACA,UACA,gBACA,eACA,YACA,mBACA,UACA,SACA,WACA,OACA,aACA,oBACA,YACA,UACA,UACA,YACA,WACA,WACA,aACA,OACA,cACA,iBACA,QACA,UACA,YACA,gBACA,cACA,oBACA,MACA,UACA,OACA,SACA,OACA,sBACA,aACA,aACA,mBACA,UACA,cACA,SACA,aACA,WACA,kBACA,OACA,OACA,QACA,QACA,QACA,YACA,SACA,eACA,eACA,WACA,WACA,MACA,aACA,YACA,WACA,QACA,oBACA,eACA,OACA,cACA,QACA,UACA,UACA,OACA,cACA,SACA,OACA,gBACA,YACA,eAEF,eAAgB,CACd,UACA,kBACA,MACA,cACA,iBACA,aACA,UACA,eACA,UACA,WACA,cACA,MACA,IACA,IACA,cACA,IACA,MACA,IACA,KACA,SACA,cACA,wBACA,OACA,IACA,OACA,IACA,WACA,SACA,cACA,KACA,QACA,aACA,SACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,UACA,WACA,KACA,iBACA,KACA,MACA,UACA,aACA,KACA,KACA,MACA,QACA,WACA,SACA,KACA,UACA,UACA,MACA,SACA,KACA,SACA,QACA,OACA,WACA,aACA,UACA,WACA,OACA,YACA,cACA,QACA,MACA,iBACA,YACA,yBACA,aACA,QACA,aACA,QACA,UACA,MACA,SACA,wBACA,MACA,OACA,KACA,OACA,WACA,QACA,YACA,cAGJj6H,OAAOqC,KAAK43H,GAAU3xH,SAAQ,SAAUkM,GACtCoiF,EAAOpiF,GAAGwlG,QAAUggB,EAAiBC,EAASzlH,GAChD,IAyNAoiF,EAAOmjC,YAAY/f,QAAUggB,EAxNX,CAEhB,MACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,KACA,UACA,YACA,MACA,OACA,YACA,QACA,OACA,QACA,OACA,QACA,UACA,KACA,QACA,OACA,SACA,aACA,aACA,WACA,QACA,UACA,OACA,KACA,OACA,SACA,QACA,OACA,SACA,MACA,OACA,SACA,MACA,WACA,YACA,iBACA,kBACA,SACA,YACA,QACA,YACA,YACA,WACA,cACA,UACA,YACA,gBACA,mBACA,SACA,MACA,UACA,cACA,aACA,SACA,cACA,OACA,eACA,YACA,UACA,eACA,eACA,aACA,kBACA,QACA,aACA,SACA,eACA,YACA,eACA,WACA,SACA,WACA,aACA,OACA,YACA,gBACA,eACA,OACA,UACA,UACA,YACA,gBACA,iBACA,kBACA,gBACA,UACA,OACA,YACA,cACA,UACA,cACA,aACA,OACA,aACA,iBACA,aACA,OACA,eACA,cACA,WACA,gBACA,YACA,UACA,QACA,aACA,QACA,OACA,aACA,UACA,aACA,aACA,QACA,OACA,YACA,iBACA,YACA,UACA,eACA,cACA,iBACA,YACA,oBACA,kBACA,QACA,iBACA,eACA,gBACA,kBACA,cACA,gBACA,gBACA,kBACA,cACA,OACA,UACA,YACA,YACA,UACA,eACA,iBACA,aACA,OACA,SACA,cACA,qBACA,SACA,mBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,gBACA,cACA,iBACA,cACA,eACA,aACA,cACA,WACA,iBACA,oBACA,cACA,qBACA,WACA,eACA,mBACA,oBACA,iBACA,UACA,iBACA,iBACA,cACA,SACA,gBACA,eACA,eACA,aACA,aACA,UACA,oBACA,eACA,YACA,cACA,wBACA,oBAGF/O,EAAMW,UAAUh1B,OAASA,CAC1B,CAr5BA,CAq5BEq0B,EACL,CA15BAtpH,EAAO7C,QAAU83F,EACjBA,EAAOjyF,YAAc,SACrBiyF,EAAO41B,QAAU,mCCCjB,SAAS0N,EAAOjP,IACb,SAAWA,GAMVA,EAAMW,UAAiB,MAAI,CACzB3qE,QAAS,CACP+4D,QAAS,aAEXvoG,OAAQ,CACNuoG,QAAS,UACT2S,QAAQ,GAEV,iBAAkB,CAChB3S,QAAS,mBACT/qF,MAAO,UAET,iBAAkB,CAChB+qF,QAAS,OACT/qF,MAAO,aAETxrB,OAAQ,MACRk+C,SAAU,gCACVN,YAAa,QACbQ,SAAU,QACV,eAAgB,CACdm4D,QAAS,YACT/qF,MAAO,QAGZ,CA/BA,CA+BEg8F,EACL,CApCAtpH,EAAO7C,QAAUo7H,EACjBA,EAAOv1H,YAAc,SACrBu1H,EAAO1N,QAAU,mCCCjB,SAAS2N,EAAuBlP,GAC9BA,EAAMW,UAAU,4BAA8BX,EAAMW,UAAUhqH,OAC5D,QACA,CACEq/C,QAAS,SACTe,QACE,oEACFL,SAAU,kDAGPspE,EAAMW,UAAU,4BAA4B,cACnDX,EAAMW,UAAUh3B,aAAa,2BAA4B,UAAW,CAClElhF,KAAM,CACJsmG,QACE,gGACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN/qE,SAAU,CACRm4D,QAAS,yDACT4S,OAAQ,CACNjrE,SAAU,IACVK,QAAS,OACTX,YAAa,aAGjBA,YAAa,OAGjBryB,OAAQ,CAENgrF,QAAS,kDACTuS,YAAY,EACZt9F,MAAO,UACP29F,OAAQ,CACNvrE,YAAa,OAIrB,CA1CA1/C,EAAO7C,QAAUq7H,EACjBA,EAAuBx1H,YAAc,yBACrCw1H,EAAuB3N,QAAU,mCCCjC,SAAS4N,EAAKnP,IACX,SAAWA,GACVA,EAAMW,UAAUwO,KAAOnP,EAAMW,UAAUhqH,OAAO,aAAc,CAAC,GAC7DqpH,EAAMW,UAAUh3B,aAAa,OAAQ,UAAW,CAC9C1pF,KAAM,CACJ,CACE8uG,QACE,sEACF/qF,MAAO,UAIbg8F,EAAMW,UAAUwO,KAAK,qBAAqBpgB,QACxC,8KACKiR,EAAMW,UAAUwO,KAAgB,UACvCnP,EAAMW,UAAUh3B,aAAa,OAAQ,WAAY,CAC/C,mBAAoB,CAClBolB,QAAS,YACT/qF,MAAO,iBAGNvuB,MAAMF,QAAQyqH,EAAMW,UAAUwO,KAAKp4E,WACtCipE,EAAMW,UAAUwO,KAAKp4E,QAAU,CAACipE,EAAMW,UAAUwO,KAAKp4E,UAEvDipE,EAAMW,UAAUwO,KAAKp4E,QAAQ7gC,QAC3B,CACE64F,QAAS,kDACTuS,YAAY,GAEd,CACEvS,QACE,wGACFuS,YAAY,GAGjB,CAlCA,CAkCEtB,EACL,CAvCAtpH,EAAO7C,QAAUs7H,EACjBA,EAAKz1H,YAAc,OACnBy1H,EAAK5N,QAAU,mCCCf,SAAS6N,EAAQpP,GACfA,EAAMW,UAAUyO,QAAU,CACxB,gBAAiB,CACfrgB,QAAS,0BACT/qF,MAAO,UAETxd,OAAQ,CACNuoG,QACE,gGACF4S,OAAQ,CACN3rE,QAAS,CACP+4D,QAAS,wBACTuS,YAAY,KAIlBtrE,QAAS,CACP+4D,QAAS,MACT2S,QAAQ,GAEVzmG,QAAS,+BACTziB,OAAQ,yDACRu+C,QAAS,CAEP,oEACA,gIACA,4VACA,+JAEFL,SAAU,CACR,qDACA,CAEEq4D,QAAS,sBACTuS,YAAY,IAGhBlrE,YAAa,qBAEjB,CA1CA1/C,EAAO7C,QAAUu7H,EACjBA,EAAQ11H,YAAc,UACtB01H,EAAQ7N,QAAU,kCCClB,SAAS8N,EAAOrP,GACdA,EAAMW,UAAU0O,OAASrP,EAAMW,UAAUhqH,OAAO,QAAS,CACvDq/C,QAAS,CACP,CACE+4D,QAAS,kCACTuS,YAAY,EACZI,QAAQ,GAEV,CACE3S,QAAS,mBACTuS,YAAY,EACZI,QAAQ,IAGZl7G,OAAQ,CACNuoG,QAAS,8DACT2S,QAAQ,GAEV,aAAc,CACZ3S,QACE,yHACFuS,YAAY,EACZK,OAAQ,CACNjrE,SAAU,QACVN,YAAa,OAGjBW,QACE,ooBACFv+C,OAAQ,CACN,iCACA,uBACA,oDACA,kCAEFk+C,SACE,6GAEJspE,EAAMW,UAAUh3B,aAAa,SAAU,UAAW,CAChDggC,aAAc,CACZ5a,QAAS,gBACTuS,YAAY,EACZt9F,MAAO,WACP29F,OAAQ,CACN0C,UAAW,CACTtV,QAAS,8CACTuS,YAAY,EACZt9F,MAAO,eAKfg8F,EAAMW,UAAUh3B,aAAa,SAAU,cAAe,CACpD,yBAA0B,CACxBolB,QAAS,wBACT/qF,MAAO,aAGXg8F,EAAMW,UAAUh3B,aAAa,SAAU,SAAU,CAC/C24B,WAAY,CACVvT,QAAS,YACT2S,QAAQ,EACRC,OAAQ,CACNvrE,YAAa,YACb,aAAc,CACZ24D,QAAS,+BACTuS,YAAY,GAEd,qBAAsB,CACpBvS,QAAS,UACT4S,OAAQ3B,EAAMW,UAAU0O,UAI9B94E,KAAM,CACJw4D,QACE,4EACF2S,QAAQ,IAGd,CAnFAhrH,EAAO7C,QAAUw7H,EACjBA,EAAO31H,YAAc,SACrB21H,EAAO9N,QAAU,uCCHjB,IAAIiL,EAA4B,EAAQ,OAIxC,SAAS8C,EAAItP,GACXA,EAAMS,SAAS+L,GACd,SAAWxM,GAMV,IAHA,IAAIuP,EACF,iGACGz2H,OACI7B,EAAI,EAAGA,EAAI,EAAGA,IACrBs4H,EAAWA,EAAS/uH,QAAQ,WAAW,WACrC,OAAO+uH,CACT,IAEFA,EAAWA,EAAS/uH,QAAQ,UAAW,UAAU1H,QACjD,IAAIw2H,EAAM,CACRt5E,QAAS,kBACTxvC,OAAQ,CACN,CAEEuoG,QAAS,iCACT2S,QAAQ,GAEV,CACE3S,QAAS72G,OACP,+DAA+DY,OAAO0H,QACpE,WACA,WACE,OAAO+uH,CACT,KAGJ7N,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QAAS72G,OACP,oDAAoDY,OAAO0H,QACzD,WACA,WACE,OAAO+uH,CACT,KAGJjO,YAAY,EACZK,OAAQ,CACN,4BAA6B,CAC3B5S,QAAS,YACT/qF,MAAO,eAET9nB,KAAM,UAMhB66C,QAAS,aACT97B,QAAS,qBACT,mBAAoB,CAClB8zF,QAAS,uBACTuS,YAAY,EACZt9F,MAAO,YAET8yB,SAAU,iBACVt+C,OAAQ,oBACRk+C,SACE,4EACFN,YAAa,iBAEfk5E,EAAI9oH,OAAO,GAAGm7G,OAAOuE,cAAcvE,OAAOzlH,KAAOozH,EACjDtP,EAAMW,UAAU2O,IAAM,CACpB,cAAe,CAEbvgB,QAAS,eACT/qF,MAAO,WAET,gBAAiB,CACf+qF,QAAS,cACT4S,OAAQ,CACN0C,UAAW,CACTtV,QAAS,uBACTuS,YAAY,EACZt9F,MAAO,WAEToyB,YAAa,cACbhd,QAAS,CACP21E,QAAS,eACT/qF,MAAO,MACP29F,OAAQ2N,KAId,oBAAqB,CACnBvgB,QAAS,kBACT4S,OAAQ,CACNvrE,YAAa,YACbhd,QAAS,CACP21E,QAAS,eACT/qF,MAAO,MACP29F,OAAQ2N,MAKhBtP,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAE3C,IAAIjS,EAAU72G,OACZ,mEAAmEY,OAAO0H,QACxE,WACA,WACE,OAAO+uH,CACT,IAEF,MAEFvP,EAAMW,UAAU,qBAAqBgM,kBACnC3L,EACA,MACAjS,EAEJ,IACAiR,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1ChB,EAAMW,UAAU,qBAAqBiM,qBAAqB5L,EAAK,MACjE,GACD,CAxHA,CAwHEhB,EACL,CA9HAtpH,EAAO7C,QAAUy7H,EACjBA,EAAI51H,YAAc,MAClB41H,EAAI/N,QAAU,mCCCd,SAAS3wF,EAAIovF,GAGXA,EAAMW,UAAU/vF,IAAM,CACpB+0F,MAAO,CACL5W,QAAS,sCACT2S,QAAQ,EACRC,OAAQ,CACN/wF,IAAK,CACHm+E,QAAS,0CACTuS,YAAY,EACZK,OAAQ,MAEVvrE,YAAa,UAGjBJ,QAAS,CACP+4D,QAAS,MACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QACE,sFACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN6N,aAAc,CACZzgB,QAAS,YACTuS,YAAY,EACZt9F,MAAO,iBAIb+yB,QACE,wMACF97B,QAAS,qBACT67B,SAAU,wBACVt+C,OAAQ,CACNu2G,QACE,uFACFuS,YAAY,GAEdkO,aAAc,CACZzgB,QAAS,YACTuS,YAAY,EACZt9F,MAAO,eAET0yB,SAAU,kCACVN,YAAa,iBAEf4pE,EAAMW,UAAU/vF,IAAI+0F,MAAMhE,OAAO/wF,IAAI+wF,OAAS3B,EAAMW,UAAU/vF,GAChE,CAtDAl6B,EAAO7C,QAAU+8B,EACjBA,EAAIl3B,YAAc,MAClBk3B,EAAI2wF,QAAU,mCCCd,SAASkO,EAAMzP,GACbA,EAAMW,UAAU8O,MAAQ,CACtBz5E,QAAS,kBACTxvC,OAAQ,CACNuoG,QAAS,iBACT2S,QAAQ,GAEV3qE,QAAS,wBACTjc,SAAU,UACV40F,SAAU,CACR3gB,QAAS,UACTuS,YAAY,EACZt9F,MAAO,UAGToyB,YAAa,OAEjB,CApBA1/C,EAAO7C,QAAU47H,EACjBA,EAAM/1H,YAAc,QACpB+1H,EAAMlO,QAAU,mCCChB,SAASoO,EAAS3P,GAChBA,EAAMW,UAAUgP,SAAW,CACzB35E,QAAS,MACTxvC,OAAQ,CACNuoG,QACE,6EACF2S,QAAQ,GAEV,aAAc,CAMZ3S,QACE,6IACFuS,YAAY,GAEdvqE,QACE,4QACFD,SAAU,2BACVF,SAAU,QACVp+C,OAAQ,CACN,4FACA,0BAEF69C,SAAU,qBACVp7B,QAAS,qBACTy7B,SAAU,2CACVN,YAAa,gBAEjB,CAlCA1/C,EAAO7C,QAAU87H,EACjBA,EAASj2H,YAAc,WACvBi2H,EAASpO,QAAU,mCCCnB,SAASqO,EAAO5P,GACdA,EAAMW,UAAUiP,OAAS,CACvB,aAAc,CAEZ7gB,QACE,mFACFuS,YAAY,EACZK,OAAQ,CACNkF,QAAS,CACP9X,QAAS,yDACT/qF,MAAO,cAIbzlB,IAAK,CAEHwwG,QACE,gFACFuS,YAAY,EACZt9F,MAAO,UAETiR,MAAO,CACL85E,QAAS,gBACTuS,YAAY,EACZt9F,MAAO,UAET6iG,QAAS,CACP9X,QAAS,uDACT/qF,MAAO,YAGb,CAlCAttB,EAAO7C,QAAU+7H,EACjBA,EAAOl2H,YAAc,SACrBk2H,EAAOrO,QAAU,mCCCjB,SAASsO,EAAQ7P,IACd,SAAWA,GACV,IAAI8P,EAAW,uCAAuCh3H,OACtDknH,EAAMW,UAAUkP,QAAU,CACxBE,SAAU,CACRhhB,QAAS,sBACT/qF,MAAO,UAETgyB,QAAS,CACP+4D,QAAS,gBACTuS,YAAY,GAEd/iH,IAAK,CACHwwG,QAAS,iBACTuS,YAAY,GAEd0O,QAAS,CACPjhB,QACE,k+BACFuS,YAAY,EACZK,OAAQ,CACN3qE,UAAW,CACT+3D,QAAS,cACTuS,YAAY,GAEdvqE,QAAS,eAGbk5E,SAAU,CACRlhB,QACE,skGACFuS,YAAY,EACZK,OAAQ,CACN3qE,UAAW,CACT+3D,QAAS,cACTuS,YAAY,GAEdvqE,QAAS,eAGb,aAAc,CAEZg4D,QAAS72G,OAAO,IAAM43H,EAAW,OAASA,EAAW,MACrDxO,YAAY,EACZK,OAAQ,CACN9qB,QAAS,CACPkY,QAAS,UACT/qF,MAAO,YAETs7B,GAAI,CACFyvD,QAAS,iBACT/qF,MAAO,UAEToyB,YAAa,OAGjB,aAAc,CACZ24D,QAAS72G,OAAO43H,GAChBnO,OAAQ,CACN/hE,GAAI,CACFmvD,QAAS,iBACT/qF,MAAO,YAEToyB,YAAa,OAGjBS,OAAQ,CACNk4D,QACE,i5EACFuS,YAAY,GAEd96G,OAAQ,CACNuoG,QAAS,8CACT4S,OAAQ,CACN9qB,QAAS,CACPkY,QAAS,UACT/qF,MAAO,cAIb6yE,QAAS,CACPkY,QAAS,UACT/qF,MAAO,YAGZ,CApFA,CAoFEg8F,EACL,CAzFAtpH,EAAO7C,QAAUg8H,EACjBA,EAAQn2H,YAAc,UACtBm2H,EAAQtO,QAAU,mCCClB,SAAS2O,EAAIlQ,GACXA,EAAMW,UAAUuP,IAAM,CAUpBl6E,QAAS,QAITM,QAAS,WACTG,SAAU,SAIVjwC,OAAQ,kCAMR67G,QAAS,CACPtT,QAAS,iBACT4S,OAAQ,CAONmE,UAAW,aAgBfuG,MAAO,YAWP,cAAe,mBAEnB,CAnEA31H,EAAO7C,QAAUq8H,EACjBA,EAAIx2H,YAAc,MAClBw2H,EAAI3O,QAAU,uCCHd,IAAIgF,EAAa,EAAQ,OAIzB,SAAS4J,EAAKnQ,GACZA,EAAMS,SAAS8F,GACfvG,EAAMW,UAAUwP,KAAOnQ,EAAMW,UAAUhqH,OAAO,IAAK,CACjDogD,QACE,+gCAEN,CATArgD,EAAO7C,QAAUs8H,EACjBA,EAAKz2H,YAAc,OACnBy2H,EAAK5O,QAAU,mCCCf,SAAS6O,EAAIpQ,GACXA,EAAMW,UAAU0P,kBAAoBrQ,EAAMW,UAAUyP,IAClDpQ,EAAMW,UAAUhqH,OAAO,QAAS,CAC9BogD,QACE,8GACFv+C,OACE,wEACFk+C,SACE,+FACFL,SACE,s5LACFO,SACE,4rDAER,CAjBAlgD,EAAO7C,QAAUu8H,EACjBA,EAAI12H,YAAc,MAClB02H,EAAI7O,QAAU,mCCCd,SAAS+O,EAAGtQ,GAEVA,EAAMW,UAAU2P,GAAK,CACnBt6E,QAAS,CACP+4D,QAAS,MACT2S,QAAQ,GAEV,iBAAkB,CAChB3S,QAAS,kCACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QACE,0EACFuS,YAAY,EACZK,OAAQ,CACNnpH,OAAQ,kBACRo+C,SAAU,UACV,4BAA6B,CAC3Bm4D,QAAS,YACT/qF,MAAO,eAETmiG,WAAY,CACVpX,QAAS,UACT4S,OAAQ,QAIdn7G,OAAQ,YAGZuwC,QAAS,kBACT97B,QAAS,qBACT,mBAAoB,CAElB8zF,QACE,mFACF/qF,MAAO,WAET8yB,SAAU,wBACVT,SACE,kLACF79C,OAAQ,YACRk+C,SAAU,qBACVN,YAAa,eAEf4pE,EAAMW,UAAU2P,GAAG,kBAAkB3O,OAAsB,cAAEA,OAE7D,WAAEA,OAAS3B,EAAMW,UAAU2P,GAC3BtQ,EAAMW,UAAU4P,IAAMvQ,EAAMW,UAAU2P,EACxC,CAtDA55H,EAAO7C,QAAUy8H,EACjBA,EAAG52H,YAAc,KACjB42H,EAAG/O,QAAU,CAAC,uCCCd,SAASiP,EAASxQ,GAEhBA,EAAMW,UAAU,UAAYX,EAAMW,UAAU,aAAe,CACzD3qE,QAAS,CACP+4D,QAAS,SACT2S,QAAQ,GAEVtP,QAAS,CACPrD,QAAS,+DACTuS,YAAY,EACZt9F,MAAO,UAET,aAAc,CACZ+qF,QAAS,mCACTuS,YAAY,EACZt9F,MAAO,UAET+yB,QAAS,CACPg4D,QAAS,4DACTuS,YAAY,GAEd5qE,SAAU,KACVN,YAAa,WAEjB,CA3BA1/C,EAAO7C,QAAU28H,EACjBA,EAAS92H,YAAc,WACvB82H,EAASjP,QAAU,kCCCnB,SAASkP,EAAGzQ,GACVA,EAAMW,UAAU8P,GAAKzQ,EAAMW,UAAUhqH,OAAO,QAAS,CACnD6P,OAAQ,CACNuoG,QAAS,yCACTuS,YAAY,EACZI,QAAQ,GAEV3qE,QACE,sKACF97B,QAAS,gCACTziB,OAAQ,CAEN,+BACA,gFACA,sEAEFk+C,SACE,wFACFF,QACE,6LAEJwpE,EAAMW,UAAUh3B,aAAa,KAAM,SAAU,CAC3CpzC,KAAM,CACJw4D,QAAS,6BACT2S,QAAQ,YAGL1B,EAAMW,UAAU8P,GAAG,aAC5B,CA/BA/5H,EAAO7C,QAAU48H,EACjBA,EAAG/2H,YAAc,KACjB+2H,EAAGlP,QAAU,mCCCb,SAASmP,EAAQ1Q,GACfA,EAAMW,UAAU+P,QAAU,CACxB16E,QAAS,MACT13B,YAAa,CACXywF,QACE,mEACF2S,QAAQ,EACR19F,MAAO,SACP29F,OAAQ,CACN,oBAAqB,CACnB5S,QAAS,kCACTuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAUn2E,YAI9BhkC,OAAQ,CACNuoG,QAAS,iDACT2S,QAAQ,GAEVlpH,OAAQ,2CACRyiB,QAAS,qBACT27B,SAAU,eACVytE,UAAW,CACTtV,QAAS,cACT/qF,MAAO,YAET,YAAa,CACX+qF,QAAS,iEACT2S,QAAQ,GAEV,aAAc,CACZ3S,QAAS,oBACT/qF,MAAO,cAET2sG,OAAQ,sCACRt6E,SAAU,qBACV,aAAc,CACZ04D,QACE,kFACFuS,YAAY,GAEdsP,SAAU,CACR7hB,QAAS,+CACTuS,YAAY,EACZt9F,MAAO,YAET,sBAAuB,CACrB+qF,QAAS,8BACTuS,YAAY,EACZt9F,MAAO,YAET,mBAAoB,CAClB+qF,QAAS,2BACTuS,YAAY,EACZt9F,MAAO,YAET+yB,QACE,uIACFL,SAAU,eACV,iBAAkB,eAClBj2C,OAAQ,eACR21C,YAAa,iBACbtb,SAAU,OAEZklF,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAA8Bm7G,GAC9D,GAAqB,YAAjBA,EAAIpxE,SAwFR,IA/EA,IAAIihF,EAAc7P,EAAIx2B,OAAO38E,QAAO,SAAU48E,GAC5C,MACmB,iBAAVA,GACQ,YAAfA,EAAMxqF,MACS,WAAfwqF,EAAMxqF,IAEV,IACIgiC,EAAe,EAwEZA,EAAe4uF,EAAYp8H,QAAU,CAC1C,IAAIq8H,EAAaD,EAAY5uF,KAC7B,GAAwB,YAApB6uF,EAAW7wH,MAA6C,aAAvB6wH,EAAW13F,QAAwB,CAEtE,IAAI23F,EAAiB,GACrB,GACEC,EAAY,CAAC,sBAAuB,iBACZ,MAAxBC,EAAS,GAAG73F,QACZ,CAEA6I,GAAgB,EAChB,IAAIivF,EAAgBC,EAAmB,OAAQ,QAC/C,IAAuB,IAAnBD,EACF,SAEF,KAAOjvF,EAAeivF,EAAejvF,IAAgB,CACnD,IAAIlc,EAAIkrG,EAAS,GACF,aAAXlrG,EAAE9lB,OACJmxH,EAASrrG,EAAG,kBACZgrG,EAAen8H,KAAKmxB,EAAEqT,SAE1B,CACA6I,EAAeivF,EAAgB,CACjC,CACA,GACEF,EAAY,CAAC,cAAe,oBACJ,MAAxBC,EAAS,GAAG73F,UAEZ6I,IACAmvF,EAASH,EAAS,GAAI,qBAClBF,EAAet8H,OAAS,GAAG,CAC7B,IAAI48H,EAAcF,EAAmB,OAAQ,QAC7C,IAAqB,IAAjBE,EACF,SAEF,IAAK,IAAIp6H,EAAIgrC,EAAchrC,EAAIo6H,EAAap6H,IAAK,CAC/C,IAAIq6H,EAAWT,EAAY55H,GAEP,aAAlBq6H,EAASrxH,MACT8wH,EAAe18H,QAAQi9H,EAASl4F,UAAY,GAE5Cg4F,EAASE,EAAU,iBAEvB,CACF,CAEJ,CACF,CAhHA,SAASL,EAAS7tH,GAChB,OAAOytH,EAAY5uF,EAAe7+B,EACpC,CAQA,SAAS4tH,EAAYjvH,EAAOqB,GAC1BA,EAASA,GAAU,EACnB,IAAK,IAAInM,EAAI,EAAGA,EAAI8K,EAAMtN,OAAQwC,IAAK,CACrC,IAAIwzF,EAAQwmC,EAASh6H,EAAImM,GACzB,IAAKqnF,GAASA,EAAMxqF,OAAS8B,EAAM9K,GACjC,OAAO,CAEX,CACA,OAAO,CACT,CAYA,SAASk6H,EAAmB97F,EAAMmM,GAEhC,IADA,IAAI+vF,EAAc,EACTt6H,EAAIgrC,EAAchrC,EAAI45H,EAAYp8H,OAAQwC,IAAK,CACtD,IAAIwzF,EAAQomC,EAAY55H,GACpBmiC,EAAUqxD,EAAMrxD,QACpB,GAAmB,gBAAfqxD,EAAMxqF,MAA6C,iBAAZm5B,EACzC,GAAI/D,EAAKt6B,KAAKq+B,GACZm4F,SACK,GAAI/vF,EAAMzmC,KAAKq+B,IAEA,MADpBm4F,EAEE,OAAOt6H,CAIf,CACA,OAAQ,CACV,CAQA,SAASm6H,EAAS3mC,EAAOzmE,GACvB,IAAIu9F,EAAU92B,EAAMzmE,MACfu9F,EAEO9rH,MAAMF,QAAQgsH,KACxB92B,EAAMzmE,MAAQu9F,EAAU,CAACA,IAFzB92B,EAAMzmE,MAAQu9F,EAAU,GAI1BA,EAAQ3sH,KAAKovB,EACf,CAiDF,GACF,CA9MAttB,EAAO7C,QAAU68H,EACjBA,EAAQh3H,YAAc,UACtBg3H,EAAQnP,QAAU,mCCClB,SAASiQ,EAAOxR,GACdA,EAAMW,UAAU6Q,OAASxR,EAAMW,UAAUhqH,OAAO,QAAS,CACvD6P,OAAQ,CACN,CAEEuoG,QACE,kFACF2S,QAAQ,GAEV,CAGE3S,QAAS,oCACT2S,QAAQ,IAGZ3qE,QACE,6WACFv+C,OACE,6FACFk+C,SAAU,CACRq4D,QACE,oJACFuS,YAAY,GAEdlrE,YAAa,sBAEf4pE,EAAMW,UAAUh3B,aAAa,SAAU,SAAU,CAC/C87B,QAAS,CACP1W,QAAS,OACT/qF,MAAO,aAGXg8F,EAAMW,UAAUh3B,aAAa,SAAU,cAAe,CACpD,cAAe,0DAEjBq2B,EAAMW,UAAUh3B,aAAa,SAAU,WAAY,CACjD24B,WAAY,CACVvT,QAAS,eACTuS,YAAY,EACZt9F,MAAO,iBAGXg8F,EAAMkB,MAAMr7G,IAAI,QAAQ,SAAUm7G,GAChC,GAAqB,WAAjBA,EAAIpxE,UAAsC,WAAboxE,EAAI/gH,KAAmB,CACtD,IAAIwmH,EAAYzF,EAAI5nF,QAAQtlC,MAAM,GAClC,GAAiB,KAAb2yH,EAAkB,CACpB,IAAI1X,EAAU,kCACI,MAAd0X,IACF1X,EAAU,mCAEZiS,EAAI5nF,QAAQtlC,MAAQktH,EAAI5nF,QAAQtlC,MAC7B0M,QAAQ,QAAS,KACjBA,QAAQ,SAAU,KACrBwgH,EAAI5nF,QAAU4mF,EAAMlmF,UAAUknF,EAAI5nF,QAAQtlC,MAAO,CAC/CqyH,WAAY,CACVpX,QAASA,EACTuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU6Q,UAG5BxQ,EAAIxxE,QAAQ56C,KAAmB,MAAd6xH,EAAoB,QAAU,UACjD,CACF,CACF,GACF,CApEA/vH,EAAO7C,QAAU29H,EACjBA,EAAO93H,YAAc,SACrB83H,EAAOjQ,QAAU,sCCHjB,IAAIgH,EAAgB,EAAQ,OAI5B,SAASkJ,EAAKzR,GACZA,EAAMS,SAAS8H,GAOd,SAAWvI,GACVA,EAAMW,UAAU8Q,KAAO,CAErB,oBAAqB,CACnB1iB,QACE,gEACFuS,YAAY,EACZt9F,MAAO,WAET,iBAAkB,CAChB,CACE+qF,QACE,6GACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU8H,MAE1B,CACE1Z,QACE,sFACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU8H,OAI5B56G,OAAQ,CACNkhG,QACE,iFACFuS,YAAY,EACZK,OAAQ,CACN,cAAe,CACb5S,QAAS,WACT/qF,MAAO,YAIbo8F,OAAQ,CACNrR,QAAS,4BACTuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAUP,QAE1BlqE,QAAS,CACP64D,QAAS,oCACTuS,YAAY,GAEd/iH,IAAK,CAEHwwG,QACE,sGACFuS,YAAY,EACZK,OAAQ,CACNra,WAAY,CACV,CAGEyH,QAAS,mCACTuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU8H,MAE1B,CACE1Z,QAAS,YACT4S,OAAQ,CACN,aAAc,CACZ5S,QAAS,0CACTuS,YAAY,GAEd,YAAa,4BACblrE,YAAa,WAGjB,CACE24D,QAAS,aACT4S,OAAQ3B,EAAMW,UAAU8H,OAG5BryE,YAAa,SAGjBne,KAAM,CACJ82E,QAAS,0CACTuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU8H,MAG1BvC,cAAe,CACbnX,QAAS,aACT4S,OAAQ,CACN8E,UAAW,CACT1X,QAAS,WACT/qF,MAAO,eAETykG,KAAM,CACJ1Z,QAAS,UACT4S,OAAQ3B,EAAMW,UAAU8H,QAI9BryE,YAAa,CACX24D,QAAS,kCACTuS,YAAY,IAoBhB,IAjBA,IAEIoQ,EAAU,CACZ,MACA,CACE7jH,OAAQ,SACR+hC,SAAU,gBAEZ,MACA,aACA,OACA,WACA,OACA,OACA,WAEE+hF,EAAc,CAAC,EACV16H,EAAI,EAAGiiC,EAAIw4F,EAAQj9H,OAAQwC,EAAIiiC,EAAGjiC,IAAK,CAC9C,IAAI4W,EAAS6jH,EAAQz6H,GACrB4W,EACoB,iBAAXA,EACH,CACEA,OAAQA,EACR+hC,SAAU/hC,GAEZA,EACFmyG,EAAMW,UAAU9yG,EAAO+hC,YACzB+hF,EAAY,UAAY9jH,EAAOA,QAAU,CACvCkhG,QAAS72G,OA3Bb,uGA4BqBsI,QAAQ,mBAAmB,WACxC,OAAOqN,EAAOA,MAChB,KAEFyzG,YAAY,EACZK,OAAQ,CACN,cAAe,CACb5S,QAAS,WACT/qF,MAAO,UAET0P,KAAM,CACJq7E,QAAS,UACT/qF,MAAO,CAACnW,EAAO+hC,SAAU,YAAc/hC,EAAO+hC,UAC9C+xE,OAAQ3B,EAAMW,UAAU9yG,EAAO+hC,aAKzC,CACAowE,EAAMW,UAAUh3B,aAAa,OAAQ,SAAUgoC,EAChD,CAtJA,CAsJE3R,EACL,CAlKAtpH,EAAO7C,QAAU49H,EACjBA,EAAK/3H,YAAc,OACnB+3H,EAAKlQ,QAAU,sCCHf,IAAIiL,EAA4B,EAAQ,OAIxC,SAASoF,EAAW5R,GAClBA,EAAMS,SAAS+L,GACd,SAAWxM,GACVA,EAAMW,UAAUiR,WAAa,CAC3B57E,QAAS,oBACTywE,UAAW,CACT1X,QAAS,oBACT/qF,MAAO,eAETxd,OAAQ,mCACRhO,OAAQ,iEACRyiB,QAAS,qBACT+vG,MAAO,CACLjc,QAAS,+CACTuS,YAAY,EACZt9F,MAAO,WAET6tG,SAAU,CACR9iB,QAAS,aACT4S,OAAQ,CACNvrE,YAAa,QACbQ,SAAU,YAGdR,YAAa,qCACbQ,SAAU,wCAEZopE,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAE3ChB,EAAMW,UAAU,qBAAqBgM,kBACnC3L,EACA,aAHsB,yCAM1B,IACAhB,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1ChB,EAAMW,UAAU,qBAAqBiM,qBACnC5L,EACA,aAEJ,IACAhB,EAAMW,UAAUmR,IAAM9R,EAAMW,UAAUiR,UACvC,CAxCA,CAwCE5R,EACL,CA9CAtpH,EAAO7C,QAAU+9H,EACjBA,EAAWl4H,YAAc,aACzBk4H,EAAWrQ,QAAU,CAAC,uCCCtB,SAASwQ,EAAQ/R,GACfA,EAAMW,UAAUoR,QAAU,CACxB/7E,QAAS,CACP+4D,QACE,4FACFuS,YAAY,GAEd/qE,KAAM,CACJw4D,QACE,sMACF/qF,MAAO,UAETxd,OAAQ,CACNuoG,QAAS,+BACT2S,QAAQ,GAEV3qE,QACE,wHACF,mBAAoB,CAIlBg4D,QACE,sIACFuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,qCACTX,YAAa,OAIjBI,QACE,yoDAEFh+C,OAAQ,4DACRk+C,SAAU,CACR,CAEEq4D,QAAS,mCACT2S,QAAQ,GAEV,CAEE3S,QAAS,eACTuS,YAAY,GAQd,gFAGF8M,UAAW,CACTrf,QAAS,mCACT4S,OAAQ,CACNvrE,YAAa,OAGjBC,SAAU,CACR04D,QAAS,kCACT4S,OAAQ,CACNvrE,YAAa,OAGjBA,YAAa,iBAEf4pE,EAAMW,UAAUqR,GAAKhS,EAAMW,UAAUoR,OACvC,CAzEAr7H,EAAO7C,QAAUk+H,EACjBA,EAAQr4H,YAAc,UACtBq4H,EAAQxQ,QAAU,CAAC,sCCCnB,SAAS0Q,EAAKjS,GACZA,EAAMW,UAAUsR,KAAOjS,EAAMW,UAAUhqH,OAAO,QAAS,CACrD6P,OAAQ,CAENuoG,QAAS,yBACT2S,QAAQ,GAEV,aAAc,CACZ,CACE3S,QACE,mFACFuS,YAAY,GAEd,cAGFvqE,QACE,gUACFD,SAAU,CACRi4D,QAAS,wCACT2S,QAAQ,GAEVhrE,SAAU,oEAEZspE,EAAMW,UAAUh3B,aAAa,OAAQ,SAAU,CAC7C,uBAAwB,CACtBolB,QAAS,yBACT2S,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QAAS,gCACTuS,YAAY,EACZK,OAAQ,CACN,4BAA6B,CAC3B5S,QAAS,aACT/qF,MAAO,eAETmiG,WAAY,CACVpX,QAAS,UACT4S,OAAQ3B,EAAMW,UAAUsR,QAI9BzrH,OAAQ,cAIdw5G,EAAMW,UAAUh3B,aAAa,OAAQ,aAAc,CACjD3jE,MAAO,CACL+oF,QAAS,kCACT2S,QAAQ,EACRC,OAAQ,CACN,cAAe,YACf,eAAgB,CACd5S,QAAS,uBACTuS,YAAY,EACZt9F,MAAO,iBACP29F,OAAQ3B,EAAMW,UAAU36F,OAE1B,kBAAmB,eAIzBg6F,EAAMW,UAAUh3B,aAAa,OAAQ,UAAW,CAC9CggC,aAAc,CACZ5a,QAAS,8BACT/qF,MAAO,YAETw9B,SAAU,CACRutD,QAAS,YACT/qF,MAAO,UAETkuG,YAAa,CACXnjB,QAAS,mBACT/qF,MAAO,cAGb,CAhFAttB,EAAO7C,QAAUo+H,EACjBA,EAAKv4H,YAAc,OACnBu4H,EAAK1Q,QAAU,mCCCf,SAAS4Q,EAAInS,GACXA,EAAMW,UAAUwR,IAAM,CACpBn8E,QAAS,sCACTo8E,QAAS,CACPrjB,QAAS,gCACT2S,QAAQ,EACR19F,MAAO,UAET+yB,QAAS,CACP,CACEg4D,QACE,sEACF4S,OAAQ,CACN1hH,KAAM,CACJ8uG,QAAS,iDACTuS,YAAY,EACZt9F,MAAO,cAIb,CACE+qF,QACE,wGACF4S,OAAQ,CACN1hH,KAAM,CACJ8uG,QACE,gGACFuS,YAAY,EACZt9F,MAAO,cAIb,mBAEF8W,SAAU,CAAC,wBAAyB,qCACpCt0B,OAAQ,CACNuoG,QACE,gGACF2S,QAAQ,EACRC,OAAQ,CACNuE,cAAe,CACbnX,QAAS,mDACTuS,YAAY,EACZK,OAAQ,CACN1hH,KAAM,CACJ8uG,QACE,sEACFuS,YAAY,EACZt9F,MAAO,YAET+yB,QAAS,2DACTD,SAAU,YACVtwC,OAAQ,CACNuoG,QAAS,yBACT2S,QAAQ,GAEVlpH,OAAQ,gDACR49C,YAAa,2CAKrB59C,OAAQ,gDACRyiB,QAAS,sBACTm7B,YAAa,YAEjB,CArEA1/C,EAAO7C,QAAUs+H,EACjBA,EAAIz4H,YAAc,MAClBy4H,EAAI5Q,QAAU,qCCHd,IAAIgF,EAAa,EAAQ,OAIzB,SAAS8L,EAAKrS,GACZA,EAAMS,SAAS8F,GACfvG,EAAMW,UAAU0R,KAAOrS,EAAMW,UAAUhqH,OAAO,IAAK,CAKjD,aAAc,CACZqpH,EAAMW,UAAU78F,EAAE,cAClB,wgBAEFizB,QAAS,CAEP,gyBACA,gHAGFv+C,OACE,gFACFyiB,QAAS,sBAEb,CAxBAvkB,EAAO7C,QAAUw+H,EACjBA,EAAK34H,YAAc,OACnB24H,EAAK9Q,QAAU,mCCCf,SAAS+Q,EAAKtS,GACZA,EAAMW,UAAU2R,KAAO,CACrBt8E,QAAS,CACP+4D,QAAS,OACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,kBACT2S,QAAQ,GAEVrrE,SAAU,qBACV,aAAc,+BACdS,SAAU,kDACVC,QACE,+NAEN,CAnBArgD,EAAO7C,QAAUy+H,EACjBA,EAAK54H,YAAc,OACnB44H,EAAK/Q,QAAU,mCCCf,SAASgR,EAAKvS,GAMZA,EAAMW,UAAU4R,KAAO,CACrBlO,UAAW,CACTtV,QACE,8FACF/qF,MAAO,YAET0yB,SAAU,IACVN,YAAa,IAEjB,CAlBA1/C,EAAO7C,QAAU0+H,EACjBA,EAAK74H,YAAc,OACnB64H,EAAKhR,QAAU,mCCCf,SAASiR,EAAKxS,GAMZA,EAAMW,UAAU6R,KAAO,CACrBnO,UAAW,CACTtV,QAAS,uDACT/qF,MAAO,YAET0yB,SAAU,IACVN,YAAa,IAEjB,CAjBA1/C,EAAO7C,QAAU2+H,EACjBA,EAAK94H,YAAc,OACnB84H,EAAKjR,QAAU,mCCCf,SAASkR,EAAKzS,IACX,SAAWA,GAKV,SAAS0S,EAAct8H,GACrB,OAAO8B,OAAO,QAAU9B,EAAO,yBAA0B,IAC3D,CACA4pH,EAAMW,UAAU8R,KAAO,CACrB,eAAgB,CACd1jB,QACE,6GACF4S,OAAQ,CAEN59F,OAAQ,CACNgrF,QAAS,YACT/qF,MAAO,YAGT,iBAAkB,CAChB+qF,QAAS,mCACTuS,YAAY,EACZt9F,MAAO,MACP29F,OAAQ3B,EAAMW,UAAUgS,KAG1B,eAAgB,CACd5jB,QAAS,oBACTuS,YAAY,EACZt9F,MAAO,cAIb,kBAAmB,CACjB+qF,QAAS,wBACT4S,OAAQ,CAEN,eAAgB,CACd5S,QAAS,gBACT/qF,MAAO,YAGT,cAAe,CACb+qF,QAAS,iBACTuS,YAAY,EACZt9F,MAAO,UAGT,gBAAiB,CACf+qF,QAAS,UACTuS,YAAY,EACZt9F,MAAO,YAIb42B,OAAQ,CACNm0D,QAAS,sCACT4S,OAAQ,CACN,eAAgB,CACd,CACE5S,QAAS2jB,EAAc,0BAA0B55H,QACjDwoH,YAAY,EACZt9F,MAAO,CAAC,MAAO,iBACf29F,OAAQ3B,EAAMW,UAAUuK,KAE1B,CACEnc,QAAS2jB,EAAc,mCAAmC55H,QAC1DwoH,YAAY,EACZt9F,MAAO,CAAC,OAAQ,kBAChB29F,OAAQ3B,EAAMW,UAAU4R,MAE1B,CACExjB,QAAS2jB,EAAc,4BAA4B55H,QACnDwoH,YAAY,EACZt9F,MAAO,CAAC,OAAQ,kBAChB29F,OAAQ3B,EAAMW,UAAU6R,MAE1B,CACEzjB,QAAS2jB,EAAc,QAAQ55H,QAC/BwoH,YAAY,IAGhB,cAAe,CACbvS,QAAS,SACT/qF,MAAO,WAEToyB,YAAa,QAInB,IA0BIjgD,EA1BAy8H,EAAQ5S,EAAMW,UACdkS,EAAgB,CAClB,yBAA0BD,EAAMlO,WAChC,mBAAoBkO,EAAMjoG,MAAQioG,EAAMlO,WACxC,kBAAmBkO,EAAMzuB,IACzB,WAAYyuB,EAAMzuB,IAClB,YAAayuB,EAAM/zB,KACnB,WAAY+zB,EAAMrlG,IAClB,aAAcqlG,EAAM/mG,OAElBinG,EAAc,CAChB,oBAAoB,EACpB,mBAAmB,GAQrB,SAASC,EAAiBC,GACxB,IAAIC,EAASD,EAAYxyH,QAAQ,YAAa,IAE9C,MAAO,MAAQwyH,EAAc,KADT,wBAA0BC,EAAS,gBACJ,GACrD,CAGA,IAAK,IAAID,KAAeH,EACtB,GAAIA,EAAcG,GAAc,CAC9B78H,EAAUA,GAAW,CAAC,EACtB,IAAI44G,EAAU+jB,EAAYE,GACtBD,EAAiBC,GACjBA,EACJ78H,EAAQ68H,EAAYxyH,QAAQ,MAAO,MAAQ,CACzCuuG,QAAS72G,OACP,IACE,mBAAmBY,OACnBi2G,EACA,iDAAiDj2G,OACjD,IAKA,mBAAmBA,OACrB,KAEFwoH,YAAY,EACZK,OAAQkR,EAAcG,GAE1B,CAEE78H,GACF6pH,EAAMW,UAAUh3B,aAAa,OAAQ,SAAUxzF,EAElD,CAjJA,CAiJE6pH,EACL,CAtJAtpH,EAAO7C,QAAU4+H,EACjBA,EAAK/4H,YAAc,OACnB+4H,EAAKlR,QAAU,iCCCf,SAAS2R,EAAUlT,GAGjBA,EAAMW,UAAUuS,UAAY,CAC1Bl9E,QAAS,2BACTxvC,OAAQ,CACNuoG,QAAS,yCACT2S,QAAQ,GAEVlpH,OAAQ,mEACRu+C,QACE,mSACFD,SACE,sIACFn+B,MAAO,aACP+9B,SAAU,wDACVN,YAAa,cAEjB,CArBA1/C,EAAO7C,QAAUq/H,EACjBA,EAAUx5H,YAAc,YACxBw5H,EAAU3R,QAAU,mCCCpB,SAASz1F,EAAKk0F,GACZA,EAAMW,UAAU70F,KAAO,CACrBkqB,QAAS,MACTxvC,OAAQ,CACNuoG,QAAS,2DACT2S,QAAQ,GAEVlpH,OAAQ,4DACR,kBAAmB,CACjBu2G,QACE,kRACF/qF,MAAO,YAETqgG,UAAW,CACTtV,QAAS,QACT/qF,MAAO,WAET+yB,QACE,mLACFD,SAAU,mCACVJ,SACE,8GACFN,YAAa,eAEjB,CA3BA1/C,EAAO7C,QAAUi4B,EACjBA,EAAKpyB,YAAc,OACnBoyB,EAAKy1F,QAAU,mCCCf,SAAS4R,EAAiBnT,IAGvB,SAAWA,GAMV,SAAS2I,EAAO7vH,EAAQm8B,GACtB,OAAIA,GAAS,EACJ,KAAKn8B,OAELA,EAAO0H,QAAQ,WAAW,WAC/B,OAAOmoH,EAAO7vH,EAAQm8B,EAAQ,EAChC,GAEJ,CACA,IAAIm+F,EAAgB,6BAChBhR,EAAS,CACXrT,QAAS,KACT2S,QAAQ,EACR19F,MAAO,YAELxd,EAAS,CACXuoG,QAASqkB,EACT1R,QAAQ,EACRC,OAAQ,CACNS,OAAQA,IAGRiR,EAAiB1K,EACnB,8CAA8C7vH,OAAO0H,QACnD,UACA,WACE,OAAO4yH,EAAct6H,MACvB,IAEF,GAEEw6H,EAAgB,CAClBvkB,QAAS72G,OAAOm7H,GAChB1R,OAAQ,CACNrpH,QAAS,CACPy2G,QAAS,sBACTuS,YAAY,EACZK,OAAQ,MAEV,oBAAqB,CACnB5S,QAAS,IACT/qF,MAAO,iBAIbg8F,EAAMW,UAAU,sBAAwB,CACtCqE,SAAU,CACRjW,QAAS72G,OAAOm7H,GAChB3R,QAAQ,EACRC,OAAQ,CACNvoF,QAAS,CACP21E,QAAS,sBACTuS,YAAY,EACZK,OAAQ,CACN,gBAAiB,CACf5S,QAAS,oBACTuS,YAAY,GAEd,eAAgB,CAEdvS,QAAS,0CACTuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,KACbwrE,MAAO,CACL7S,QAAS,mDACTuS,YAAY,EACZK,OAAQ,CACNjrE,SAAU,aACVl+C,OAAQ,QAGZ0D,KAAM,OAGV,eAAgB,CAEd6yG,QACE,4DACFuS,YAAY,EACZK,OAAQ,CACNv+G,OAAQ,iBACR,iBAAkBkwH,EAClB7jF,SAAU,CACRs/D,QAAS,mBACT4S,OAAQ,CACN5qE,QAAS,wCAKjB,eAAgB,CAEdg4D,QAAS,0CACTuS,YAAY,EACZK,OAAQ,CACN,iBAAkB2R,EAClB7jF,SAAU,CACRs/D,QAAS,cACT4S,OAAQ,CACN5qE,QAAS,cAKjBA,QAAS,6CACT,WAAY,CACVg4D,QAAS,qDACT/qF,MAAO,WAET,eAAgB,CACd+qF,QAAS,sBACTuS,YAAY,GAEd,YAAa,CACXvS,QACE,oEACFuS,YAAY,GAEd,iBAAkB,CAChBvS,QAAS72G,OACP,mBAAmBY,OACjB6vH,EAAO,sCAAsC7vH,OAAQ,GACrD,KAEJwoH,YAAY,EACZt9F,MAAO,UAEToyB,YAAa,MAGjB,qBAAsB,CACpB24D,QAAS,IACT/qF,MAAO,cAIbo+F,OAAQA,EACR57G,OAAQA,GAEV8sH,EAAc3R,OAAOrpH,QAAQqpH,OAAS3B,EAAMW,UAAU,sBACtDX,EAAMW,UAAU,sBAAsBqE,SAASrD,OAAOvoF,QAAQuoF,OAC5D,gBACAA,OAAOzlH,KAAO8jH,EAAMW,UAAU,qBACjC,CAtJA,CAsJEX,EACL,CA7JAtpH,EAAO7C,QAAUs/H,EACjBA,EAAiBz5H,YAAc,mBAC/By5H,EAAiB5R,QAAU,uCCH3B,IAAIgS,EAAmB,EAAQ,OAI/B,SAASC,EAAMxT,GACbA,EAAMS,SAAS8S,GACfvT,EAAMW,UAAU6S,MAAQxT,EAAMW,UAAUhqH,OAAO,UAAW,CACxDq/C,QAAS,CACP+4D,QAAS,wCAEXh4D,QACE,kTACFP,aAASn4C,IAEX2hH,EAAMW,UAAUh3B,aAAa,QAAS,UAAW,CAC/C,mBAAoB,CAClBolB,QAAS,oDACTuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,SAInB4pE,EAAMW,UAAU8S,IAAMzT,EAAMW,UAAU6S,KACxC,CAvBA98H,EAAO7C,QAAU2/H,EACjBA,EAAM95H,YAAc,QACpB85H,EAAMjS,QAAU,CAAC,uCCCjB,SAASmS,EAAM1T,GACbA,EAAMW,UAAU+S,MAAQ,CACtB19E,QAAS,CACP,CACE+4D,QACE,gFACFuS,YAAY,EACZI,QAAQ,GAEV,CACE3S,QAAS,mBACTuS,YAAY,EACZI,QAAQ,IAGZl7G,OAAQ,CACNuoG,QAAS,iDACT2S,QAAQ,GAEV3qE,QAAS,CACP,yPACA,yPAEF,aACE,4HACF48E,QAAS,CACP5kB,QAAS,kCACT/qF,MAAO,UAETxrB,OACE,oIACFyiB,QAAS,0BACTy7B,SACE,4FACFI,SAAU,wBACVV,YAAa,aAEjB,CAxCA1/C,EAAO7C,QAAU6/H,EACjBA,EAAMh6H,YAAc,QACpBg6H,EAAMnS,QAAU,kCCChB,SAASqS,EAAO5T,IACb,SAAWA,GACVA,EAAMW,UAAUiT,OAAS,CAEvB59E,QAAS,QACTn2C,MAAO,CACLkvG,QAAS,0BACT/qF,MAAO,SACP29F,OAAQ,CACNjrE,SAAU,cACV1wB,MAAO,CACL+oF,QAAS,wBACTuS,YAAY,GAEdlrE,YAAa,QAInB4pE,EAAMW,UAAUkT,UAAY7T,EAAMW,UAAUiT,OAC5C5T,EAAMW,UAAUmT,SAAW9T,EAAMW,UAAUiT,OAC3C5T,EAAMW,UAAUoT,UAAY/T,EAAMW,UAAUiT,MAC7C,CApBA,CAoBE5T,EACL,CAzBAtpH,EAAO7C,QAAU+/H,EACjBA,EAAOl6H,YAAc,SACrBk6H,EAAOrS,QAAU,CAAC,YAAa,WAAY,6CCC3C,SAASyS,EAAQhU,GACfA,EAAMW,UAAUqT,QAAU,CACxBxtH,OAAQ,CACNuoG,QAAS,UACT4S,OAAQ,CACNsS,aAAc,CACZllB,QAAS,eACT4S,OAAQ,CACN8E,UAAW,CACT1X,QAAS,QACT/qF,MAAO,mBAMjBgyB,QAAS,CACP+4D,QAAS,eACT2S,QAAQ,GAEV11F,MAAO,CACL+iF,QAAS,iEACT/qF,MAAO,aAETxrB,OAAQ,CACNu2G,QACE,mIACFuS,YAAY,GAEd4S,KAAM,CACJnlB,QACE,ovBACFuS,YAAY,EACZt9F,MAAO,YAET+yB,QAAS,CACPg4D,QACE,iVACFuS,YAAY,GAEdxmF,SAAU,CACRi0E,QACE,4tBACFuS,YAAY,EACZt9F,MAAO,UAET0H,SAAU,CACRqjF,QACE,yQACFuS,YAAY,EACZt9F,MAAO,WAET/jB,KAAM,CACJ8uG,QACE,kWACFuS,YAAY,EACZt9F,MAAO,YAEToyB,YAAa,cAEf4pE,EAAMW,UAAUqT,QAAgB,OAAErS,OAAqB,aAAEA,OAAOzlH,KAC9D8jH,EAAMW,UAAUqT,QAClBhU,EAAMW,UAAUqT,QAAgB,OAAErS,OAAqB,aAAEA,OAAOzlH,KAAKw3B,KAAO,CAC1Eq7E,QAAS,eACT/qF,MAAO,UAEX,CArEAttB,EAAO7C,QAAUmgI,EACjBA,EAAQt6H,YAAc,UACtBs6H,EAAQzS,QAAU,mCCClB,SAAS4S,EAAInU,GACXA,EAAMW,UAAUwT,IAAM,CAMpBn+E,QAAS,CACP+4D,QAAS,6BACTuS,YAAY,GAEduM,QAAS,CACP9e,QAAS,gCACTuS,YAAY,EACZK,OAAQ,CACN,eAAgB,CACd5S,QAAS,2DACTuS,YAAY,EACZt9F,MAAO,YAEToyB,YAAa,UAGjBvgD,IAAK,CACHk5G,QACE,+EACFuS,YAAY,EACZt9F,MAAO,aAETlwB,MAAO,CACLi7G,QAAS,6DACTuS,YAAY,EACZt9F,MAAO,aACP29F,OAAQ,CACN,cAAe,CACb5S,QAAS,kBACTuS,YAAY,KAIlBlrE,YAAa,IAEjB,CA7CA1/C,EAAO7C,QAAUsgI,EACjBA,EAAIz6H,YAAc,MAClBy6H,EAAI5S,QAAU,mCCCd,SAAS6S,EAAGpU,GACVA,EAAMW,UAAUyT,GAAK,CACnBp+E,QAAS,CACP+4D,QAAS,iDACTuS,YAAY,EACZI,QAAQ,GAEV,uBAAwB,CACtB3S,QAAS,mCACT2S,QAAQ,EACR19F,MAAO,UAETxd,OAAQ,CACNuoG,QAAS,wBACT2S,QAAQ,GAEV3qE,QACE,6kBACFP,QACE,imBACFv7B,QAAS,yBACTziB,OAAQ,yDACRk+C,SACE,8GACFN,YAAa,gBAEjB,CA7BA1/C,EAAO7C,QAAUugI,EACjBA,EAAG16H,YAAc,KACjB06H,EAAG7S,QAAU,mCCCb,SAAS5oE,EAAEqnE,GACTA,EAAMW,UAAUhoE,EAAI,CAClB3C,QAAS,CACP+4D,QAAS,WACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,qBACT2S,QAAQ,GAEV3qE,QACE,mNACFm9E,KAAM,CAGJnlB,QACE,8IACF/qF,MAAO,WAETxrB,OACE,4GACF67H,OAAQ,CACNtlB,QAAS,+BACT/qF,MAAO,WAET0yB,SAAU,eACV49E,YAAa,CACXvlB,QAAS,0DACT/qF,MAAO,YAEToyB,YAAa,OAEjB,CAnCA1/C,EAAO7C,QAAU8kD,EACjBA,EAAEj/C,YAAc,IAChBi/C,EAAE4oE,QAAU,mCCCZ,SAASgT,EAAKvU,IACX,SAAWA,GACV,IAAI2C,EACF,idACE6R,EAAkB,uDACnB17H,OACC81C,EAAY,CACdmgE,QAAS72G,OAAOs8H,EAAkB,gCAAgC17H,QAClEwoH,YAAY,EACZK,OAAQ,CACNgG,UAAW,CACT5Y,QAAS,2CACT4S,OAAQ,CACNvrE,YAAa,OAGjBA,YAAa,OAGjB4pE,EAAMW,UAAU4T,KAAOvU,EAAMW,UAAUhqH,OAAO,QAAS,CACrD6P,OAAQ,CACNuoG,QAAS,iCACTuS,YAAY,EACZI,QAAQ,GAEV,aAAc,CACZ9yE,EACA,CAGEmgE,QAAS72G,OACPs8H,EAAkB,+BAA+B17H,QAEnDwoH,YAAY,EACZK,OAAQ/yE,EAAU+yE,SAGtB5qE,QAAS4rE,EACT7rE,SAAU,CACRkpE,EAAMW,UAAUN,MAAMvpE,SACtB,CACEi4D,QAAS,mBACTuS,YAAY,IAGhB9oH,OACE,8IACFk+C,SAAU,CACRq4D,QACE,wEACFuS,YAAY,KAGhBtB,EAAMW,UAAUh3B,aAAa,OAAQ,SAAU,CAC7C,uBAAwB,CAEtBolB,QAAS,iDACT2S,QAAQ,EACR19F,MAAO,UAETuyB,KAAM,CACJw4D,QAAS,4BACT2S,QAAQ,KAGZ1B,EAAMW,UAAUh3B,aAAa,OAAQ,aAAc,CACjD24B,WAAY,CACVvT,QAAS,+BACTuS,YAAY,EACZt9F,MAAO,eAETgoG,SAAU,CACRjd,QACE,kGACF4S,OAAQ,CACN,aAAc/yE,EACdmI,QAAS4rE,EACTvsE,YAAa,YACbM,SAAU,UAGdixE,UAAW,CACT5Y,QAAS72G,OACP,qJAAqJY,OAAO0H,QAC1J,cACA,WACE,OAAOmiH,EAAS7pH,MAClB,KAGJwoH,YAAY,EACZK,OAAQ,CACNvrE,YAAa,QAIpB,CA/FA,CA+FE4pE,EACL,CApGAtpH,EAAO7C,QAAU0gI,EACjBA,EAAK76H,YAAc,OACnB66H,EAAKhT,QAAU,uCCHf,IAAIkT,EAAgB,EAAQ,OACxBC,EAAuB,EAAQ,OAInC,SAASC,EAAQ3U,GACfA,EAAMS,SAASgU,GACfzU,EAAMS,SAASiU,GACd,SAAW1U,GACV,IAAI4U,EAAkB,oCAClBC,EAAkB,4BAA4B/7H,OAC9CgnG,EACF,0DAA0DhnG,OAAO0H,QAC/D,UACA,WACE,OAAOq0H,CACT,IAEJ7U,EAAMW,UAAUgU,QAAU3U,EAAMW,UAAUhqH,OAAO,cAAe,CAAC,GACjEqpH,EAAMW,UAAUh3B,aAAa,UAAW,UAAW,CACjDmW,UAAW,CACTiP,QAAS72G,OACP,gEACGY,OACD,MACAgnG,EACA,KAEJwhB,YAAY,EACZK,OAAQ,CACN7qE,SAAU,CACRi4D,QAAS,qBACTuS,YAAY,GAEdz1G,MAAO,CACLkjG,QAAS,YACTuS,YAAY,GAEdqG,UAAW,CACT5Y,QAAS,0BACT4S,OAAQ,CACNvrE,YAAa,OAGjB,aAAc,aACdW,QAASipE,EAAMW,UAAU4T,KAAKx9E,QAC9BX,YAAa,eAGjB,aAAc,CAEZ24D,QAAS,wBACTuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,UAGjB,eAAgB,CACd,CACE24D,QACE,+GACFuS,YAAY,EACZK,OAAQ,CACN1pF,KAAM,CAEJ82E,QAAS6lB,EACTtT,YAAY,EACZK,OAAQ3B,EAAMW,UAAU4T,KACxBvwG,MAAO,mBAIb,CACE+qF,QACE,8DACFuS,YAAY,EACZK,OAAQ,CACN5uE,KAAM,CACJg8D,QAAS6lB,EACTtT,YAAY,EACZK,OAAQ,CAENpjH,IAAKyhH,EAAMW,UAAUP,OAAO7hH,IAC5Bo4C,OAAQqpE,EAAMW,UAAUP,OAAOzpE,OAC/B1e,KAAM,CAEJ82E,QAAS,KACT4S,OAAQ3B,EAAMW,UAAU4T,KACxBvwG,MAAO,sBAOnBzlB,IAAKyhH,EAAMW,UAAUP,OAAO7hH,IAC5Bo4C,OAAQqpE,EAAMW,UAAUP,OAAOzpE,SAEjCqpE,EAAMW,UAAUmU,YAAYC,WAAW,OAAQ/U,EAAMW,UAAUgU,QAChE,CA3FA,CA2FE3U,EACL,CAlGAtpH,EAAO7C,QAAU8gI,EACjBA,EAAQj7H,YAAc,UACtBi7H,EAAQpT,QAAU,mCCAlB,SAASuT,EAAY9U,IAClB,SAAWA,GACV,IAAIgV,EAAehV,EAAMW,UAAUmU,YAAc,CAC/ChP,UAAW,CACT/W,QACE,iEACFuS,YAAY,GAEdvqE,QAAS,CAGPg4D,QAAS,wDACTuS,YAAY,GAEdlrE,YAAa,QAgEfrhD,OAAOK,eAAe4/H,EAAa,aAAc,CAC/ClhI,MAdF,SAAoB6sH,EAAWsU,GACJ,iBAAdtU,IACTA,EAAY,CAACA,IAEfA,EAAUtjH,SAAQ,SAAUi9B,IA/C9B,SAA2BA,EAAM69E,GAC/B,IAAI+c,EAAY,cACZxU,EAAUV,EAAMW,UAAUrmF,GAC9B,GAAKomF,EAAL,CAGA,IAAIj2B,EAAQi2B,EAAQwU,GACpB,IAAKzqC,EAAO,CAEV,IAAIuoB,EAAa,CAAC,EAClBA,EAAWkiB,GAAa,CACtBnmB,QAAS,wCACTuS,YAAY,EACZt9F,MAAO,WAGTymE,GADAi2B,EAAUV,EAAMW,UAAUh3B,aAAarvD,EAAM,UAAW04E,IACxCkiB,EAClB,CAOA,GANIzqC,aAAiBvyF,SAEnBuyF,EAAQi2B,EAAQwU,GAAa,CAC3BnmB,QAAStkB,IAGTh1F,MAAMF,QAAQk1F,GAChB,IAAK,IAAIxzF,EAAI,EAAGiiC,EAAIuxD,EAAMh2F,OAAQwC,EAAIiiC,EAAGjiC,IACnCwzF,EAAMxzF,aAAciB,SACtBuyF,EAAMxzF,GAAK,CACT83G,QAAStkB,EAAMxzF,KAGnBkhH,EAAS1tB,EAAMxzF,SAGjBkhH,EAAS1tB,EA7BX,CA+BF,CAYI0qC,CAAkB76F,GAAM,SAAUy0E,GAC3BA,EAAQ4S,SACX5S,EAAQ4S,OAAS,CAAC,GAEpB5S,EAAQ4S,OAAOzlH,KAAO+4H,CACxB,GACF,GACF,IAIAD,EAAYD,WAAW,CAAC,OAAQ,aAAc,OAAQC,EACvD,CAjFA,CAiFEhV,EACL,CAtFAtpH,EAAO7C,QAAUihI,EACjBA,EAAYp7H,YAAc,cAC1Bo7H,EAAYvT,QAAU,mCCCtB,SAASmD,EAAW1E,GAClBA,EAAMW,UAAU+D,WAAa1E,EAAMW,UAAUhqH,OAAO,QAAS,CAC3D,aAAc,CACZqpH,EAAMW,UAAUN,MAAM,cACtB,CACEtR,QACE,0GACFuS,YAAY,IAGhBvqE,QAAS,CACP,CACEg4D,QAAS,uBACTuS,YAAY,GAEd,CACEvS,QACE,mdACFuS,YAAY,IAIhBxqE,SACE,oGACFt+C,OAAQ,CACNu2G,QAAS72G,OACP,aAAaY,OACX,MACC,eAAeA,OACd,IACA,0BAA0BA,OAC1B,IACA,4BAA4BA,OAC5B,IACA,sCAAsCA,OACtC,IACA,gBAAgBA,OAChB,IACA,oFACGA,OACL,IACA,YAAYA,QAEhBwoH,YAAY,GAEd5qE,SACE,8FAEJspE,EAAMW,UAAU+D,WAAW,cAAc,GAAG3V,QAC1C,uEACFiR,EAAMW,UAAUh3B,aAAa,aAAc,UAAW,CACpD3jE,MAAO,CAEL+oF,QACE,yLACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN,eAAgB,CACd5S,QAAS,4BACTuS,YAAY,EACZt9F,MAAO,iBACP29F,OAAQ3B,EAAMW,UAAU36F,OAE1B,kBAAmB,UACnB,cAAe,aAInB,oBAAqB,CACnB+oF,QACE,gMACF/qF,MAAO,YAET8hG,UAAW,CACT,CACE/W,QACE,sIACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU+D,YAE1B,CACE3V,QACE,qFACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU+D,YAE1B,CACE3V,QACE,kEACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU+D,YAE1B,CACE3V,QACE,8eACFuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAU+D,aAG5BruE,SAAU,8BAEZ2pE,EAAMW,UAAUh3B,aAAa,aAAc,SAAU,CACnDyrC,SAAU,CACRrmB,QAAS,QACT2S,QAAQ,EACR19F,MAAO,WAET,kBAAmB,CACjB+qF,QACE,2EACF2S,QAAQ,EACRC,OAAQ,CACN,uBAAwB,CACtB5S,QAAS,QACT/qF,MAAO,UAETkiG,cAAe,CACbnX,QACE,mEACFuS,YAAY,EACZK,OAAQ,CACN,4BAA6B,CAC3B5S,QAAS,YACT/qF,MAAO,eAET9nB,KAAM8jH,EAAMW,UAAU+D,aAG1Bl+G,OAAQ,YAGZ,kBAAmB,CACjBuoG,QACE,4EACFuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,cAGXg8F,EAAMW,UAAUh3B,aAAa,aAAc,WAAY,CACrD,mBAAoB,CAClBolB,QACE,oFACFuS,YAAY,EACZt9F,MAAO,cAGPg8F,EAAMW,UAAUP,SAClBJ,EAAMW,UAAUP,OAAO7hH,IAAIktH,WAAW,SAAU,cAEhDzL,EAAMW,UAAUP,OAAO7hH,IAAImtH,aACzB,yNACG5yH,OACH,eAGJknH,EAAMW,UAAUL,GAAKN,EAAMW,UAAU+D,UACvC,CAjKAhuH,EAAO7C,QAAU6wH,EACjBA,EAAWhrH,YAAc,aACzBgrH,EAAWnD,QAAU,CAAC,sCCCtB,SAAS8T,EAAerV,GAGtBA,EAAMW,UAAU0U,eAAiB,CAM/BpjB,QAAS,CACPlD,QACE,8FACFuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,CACPg4D,QACE,kEACFuS,YAAY,GAGd96G,OAAQ,CACNuoG,QAAS,gBACTuS,YAAY,GAEdgU,WAAY,CACVvmB,QAAS,yBACTuS,YAAY,EACZK,OAAQ,CACN,aAAc,UACdgG,UAAW,eACXvxE,YAAa,OAGjB99C,QAAS,CACPy2G,QAAS,aACTuS,YAAY,EACZt9F,MAAO,UAEToyB,YAAa,MAwBjB,cAAe,CACb24D,QAAS,8DACTuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,CACPg4D,QAAS,gBACTuS,YAAY,GAEdxoH,OAAQ,CAGN,CACEi2G,QAAS,yBACTuS,YAAY,EACZK,OAAQ,CACNh3E,KAAM,YACNyL,YAAa,IACb,cAAe,CACb24D,QAAS,UACT/qF,MAAO,YAMb,CACE+qF,QAAS,mBACTuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,wCAIf,aAAc,kCACdD,SAAU,0BACV,eAAgB,CACdi4D,QAAS,8CACTuS,YAAY,EACZt9F,MAAO,YACP29F,OAAQ,CACNvrE,YAAa,OAGjB1/C,OAAQ,CACNq4G,QAAS,sDACTuS,YAAY,EACZK,OAAQ,CACNvP,QAAS,CACPrD,QAAS,aACTuS,YAAY,EACZt9F,MAAO,UAEToyB,YAAa,SAGjBuxE,UAAW,CACT5Y,QAAS,oBACT4S,OAAQ,CACNvrE,YAAa,OAGjBA,YAAa,WAKjBm/E,KAAM,CACJxmB,QAAS,yCACTuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,QACb59C,OAAQ,MACRu+C,QAAS,2BAIjB,CA7IArgD,EAAO7C,QAAUwhI,EACjBA,EAAe37H,YAAc,iBAC7B27H,EAAe9T,QAAU,mCCCzB,SAASiU,EAAKxV,GACZA,EAAMW,UAAU6U,KAAO,CACrBhvH,OAAQ,oCACR5H,UAAW,CACTmwG,QACE,oHACF/qF,MAAO,WACPs9F,YAAY,GAEdxqE,SACE,sHACFt+C,OAAQ,8BACRk+C,SAAU,yCACVz7B,QAAS,qBACT87B,QAAS,SACTX,YAAa,cAEjB,CApBA1/C,EAAO7C,QAAU2hI,EACjBA,EAAK97H,YAAc,OACnB87H,EAAKjU,QAAU,kCCCf,SAASkU,EAAMzV,GACbA,EAAMW,UAAU8U,MAAQzV,EAAMW,UAAUhqH,OAAO,QAAS,CACtD6P,OAAQ,CACNuoG,QAAS,kCACTuS,YAAY,EACZI,QAAQ,GAEV,aAAc,CACZ3S,QACE,4EACFuS,YAAY,GAEdvqE,QACE,gZACFD,SAAU,6BACVt+C,OAAQ,+CACRk+C,SAAU,oDACVN,YAAa,gBACbI,QACE,oGAEJwpE,EAAMW,UAAUh3B,aAAa,QAAS,UAAW,CAC/C+rC,WAAY,CACV3mB,QACE,8EACFuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,WACT,aAAc,MACdX,YAAa,MAGjBu/E,UAAW,CACT5mB,QACE,mEACFuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,IACb,aAAc,MACdM,SAAU,OAGd5b,SAAU,CACRi0E,QACE,+HAGR,CAlDAr4G,EAAO7C,QAAU4hI,EACjBA,EAAM/7H,YAAc,QACpB+7H,EAAMlU,QAAU,mCCChB,SAASqU,EAAG5V,IACT,SAAWA,GACV,IAAIkG,EAAgB,8BAA8BptH,OAC9C0N,EAAStO,OACX,2CAA2CY,OAAO0H,QAChD,OACA,WACE,OAAO0lH,CACT,KAGA2P,EAAsB,CACxB3P,cAAe,CACbnX,QAAS72G,OAAO,0BAA0BY,OAASotH,GACnD5E,YAAY,EACZK,OAAQ,CACNvoF,QAAS,CACP21E,QAAS,wBACTuS,YAAY,EACZK,OAAQ,MAEVvrE,YAAa,eAIfw/E,EAAM5V,EAAMW,UAAUiV,GAAK,CAC7B5/E,QAAS,MACTlb,SAAU,CACRi0E,QAAS72G,OAAOsO,EAAO1N,OAAS,gBAAgBA,QAChDwoH,YAAY,EACZI,QAAQ,EACRC,OAAQkU,GAEVrvH,OAAQ,CACNuoG,QAASvoG,EACT86G,YAAY,EACZI,QAAQ,EACRC,OAAQkU,GAEV/+E,SAAU,CACRi4D,QAAS,uBACTuS,YAAY,GAEd1qE,SAAU,UACV,mBAAoB,CAClBm4D,QAAS,4BACT/qF,MAAO,YAET+yB,QACE,wHACF97B,QAAS,qBACTziB,OAAQ,4CACRk+C,SAAU,CACR,CACEq4D,QAAS,OACT/qF,MAAO,QAET,kEAEF,mBAAoB,CAClB+qF,QAAS,wBACT/qF,MAAO,YAEToyB,YAAa,oCACbi3E,IAAK,CACHte,QAAS,KACT/qF,MAAO,cAGX6xG,EAAoB3P,cAAcvE,OAAOvoF,QAAQuoF,OAASiU,CAC3D,CArEA,CAqEE5V,EACL,CA1EAtpH,EAAO7C,QAAU+hI,EACjBA,EAAGl8H,YAAc,KACjBk8H,EAAGrU,QAAU,mCCCb,SAASuU,EAAS9V,IACf,SAAWA,GA2CV,SAAS+V,EAAOj9H,EAAQ47G,GACtB,OAAOx8G,OACLY,EAAO0H,QAAQ,SAAS,WACtB,MAAO,yDAAyD1H,MAClE,IACA47G,EAEJ,CAjDAsL,EAAMW,UAAUh3B,aAAa,aAAc,oBAAqB,CAC9D,kBAAmB,CACjBolB,QAAS72G,OACP,YACE8nH,EAAMW,UAAU+D,WAAW,qBAAqB3V,QAAQj2G,QAE5DwoH,YAAY,EACZt9F,MAAO,CAAC,oBAAqB,SAAU,WAAY,sBAGvDg8F,EAAMW,UAAUh3B,aAAa,aAAc,WAAY,CACrD5lE,OAAQ,CACNgrF,QAAS72G,OACP,YAAc8nH,EAAMW,UAAU+D,WAAqB,SAAE5rH,QAEvDwoH,YAAY,EACZt9F,MAAO,CAAC,WAAY,sBAGxBg8F,EAAMW,UAAUh3B,aAAa,aAAc,WAAY,CACrD,mBAAoB,CAClB,CAGEolB,QACE,yOACF/qF,MAAO,cAET,CAEE+qF,QAAS,wBACT/qF,MAAO,iBAmBbg8F,EAAMW,UAAUh3B,aAAa,aAAc,UAAW,CACpDqsC,QAAS,CAEPjnB,QAASgnB,EACP,4GACGj9H,QAELwoH,YAAY,EACZK,OAAQ3B,EAAMW,UAAU+D,YAE1B7wH,QAAS,CAEPk7G,QAASgnB,EACP,mEACGj9H,QAELwoH,YAAY,EACZK,OAAQ3B,EAAMW,UAAU+D,cAG5B1E,EAAMW,UAAU+D,WAAoB,QAAExuG,QACpC,CACE64F,QAAS,wCACT/qF,MAAO,UAET,CACE+qF,QACE,gGACF/qF,MAAO,gBAET,CACE+qF,QAAS,WACT/qF,MAAO,CAAC,OAAQ,QAElB,CACE+qF,QAAS,gBACT/qF,MAAO,QAGXg8F,EAAMW,UAAUh3B,aAAa,aAAc,WAAY,CACrDssC,OAAQ,CACNlnB,QAAS,QACT/qF,MAAO,YAETkyG,MAAO,CACLnnB,QAAS,KACT/qF,MAAO,cAGXg8F,EAAMW,UAAUh3B,aAAa,aAAc,cAAe,CACxD,kBAAmB,CACjBolB,QAASgnB,EAAO,gBAAgBj9H,QAChCwoH,YAAY,GAEd,mBAAoB,CAClBvS,QAAS,8CACTuS,YAAY,GAEd6U,IAAK,CAEHpnB,QACE,kFACF/qF,MAAO,YAETvrB,QAAS,CACPs2G,QAAS,qBACT/qF,MAAO,gBAUX,IAPA,IAAIoyG,EAAuB,CACzB,WACA,oBACA,SACA,kBACA,mBAEOn/H,EAAI,EAAGA,EAAIm/H,EAAqB3hI,OAAQwC,IAAK,CACpD,IAAIwzF,EAAQ2rC,EAAqBn/H,GAC7BnD,EAAQksH,EAAMW,UAAU+D,WAAWj6B,GACR,WAA3Bu1B,EAAMa,KAAK5gH,KAAKnM,KAClBA,EAAQksH,EAAMW,UAAU+D,WAAWj6B,GAAS,CAC1CskB,QAASj7G,IAGb,IAAI6tH,EAAS7tH,EAAM6tH,QAAU,CAAC,EAC9B7tH,EAAM6tH,OAASA,EACfA,EAAO,oBAAsB,eAC/B,CACD,CA3IA,CA2IE3B,EACL,CAhJAtpH,EAAO7C,QAAUiiI,EACjBA,EAASp8H,YAAc,WACvBo8H,EAASvU,QAAU,mCCCnB,SAAS8U,EAAYrW,IAClB,SAAWA,GACV,IAAIsW,EAAiBtW,EAAMW,UAAU+D,WAAW,mBAC5C6R,EAAyBD,EAAevnB,QAAQj2G,OAChD09H,EAAsBF,EAAe3U,OAAsB,cAC3D8U,EACFD,EAAoB7U,OAAO,6BACzB+U,EAAuBF,EAAoBznB,QAAQj2G,OAYvD,SAAS69H,EAAe/mF,EAAUrxC,GAChC,GAAKyhH,EAAMW,UAAU/wE,GAGrB,MAAO,CACLm/D,QAAS72G,OAAO,OAASqG,EAAM,SAAWg4H,GAC1CjV,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN,uBAAwB,CACtB5S,QAAS,QACT/qF,MAAO,UAET,gBAAiB,CACf+qF,QAAS,UACT/qF,MAAO4rB,IAIf,CA6BA,SAASgnF,EAAeC,EAASjnF,GAC/B,MAAO,MAAQA,EAASrpB,cAAgB,IAAMswG,EAAU,KAC1D,CASA,SAASC,EAAkB7+F,EAAMyoF,EAAS9wE,GACxC,IAAIoxE,EAAM,CACR/oF,KAAMA,EACNyoF,QAASA,EACT9wE,SAAUA,GAKZ,OAHAowE,EAAMkB,MAAMC,IAAI,kBAAmBH,GACnCA,EAAIx2B,OAASw1B,EAAM+W,SAAS/V,EAAI/oF,KAAM+oF,EAAIN,SAC1CV,EAAMkB,MAAMC,IAAI,iBAAkBH,GAC3BA,EAAIx2B,MACb,CAOA,SAASwsC,EAAgC7Q,GACvC,IAAI8Q,EAAc,CAAC,EACnBA,EAAY,6BAA+BR,EAE3C,IAAIjsC,EAASw1B,EAAM+W,SAAS5Q,EAAY8Q,GACxC,GAAsB,IAAlBzsC,EAAO/1F,OAAc,CASvB,IAAIyR,EAAO,CAAC,EAAG,GACfA,EAAKtR,KAAKmE,MACRmN,EACA4wH,EAAkBtsC,EAAO,GAAIw1B,EAAMW,UAAU+D,WAAY,eAE3Dl6B,EAAOjrF,OAAOxG,MAAMyxF,EAAQtkF,EAC9B,CACA,OAAO,IAAI85G,EAAMe,MACf,gBACAv2B,EACAgsC,EAAoBxyG,MACpBmiG,EAEJ,CAkBA,SAAS+Q,EAAiBj/F,EAAMyoF,EAAS9wE,GAIvC,IAAIunF,EAAUnX,EAAM+W,SAAS9+F,EAAM,CACjCiuF,cAAe,CACbnX,QAAS72G,OAAOw+H,GAChBpV,YAAY,KAGZ8V,EAAqB,EAErBC,EAAiB,CAAC,EAoBlBC,EAAiBR,EAnBFK,EAChBn6H,KAAI,SAAUytF,GACb,GAAqB,iBAAVA,EACT,OAAOA,EAIP,IAFA,IACI54D,EADA0lG,EAA0B9sC,EAAMrxD,SAK3B,IAFPnB,EAAK5jC,QACFw9B,EAAc+kG,EAAeQ,IAAsBxnF,MAMxD,OADAynF,EAAexlG,GAAe0lG,EACvB1lG,CAEX,IACCpO,KAAK,IAC6Ci9F,EAAS9wE,GAC1D4nF,EAAeziI,OAAOqC,KAAKigI,GAwD/B,OAvDAD,EAAqB,EAMrB,SAASK,EAAWjtC,GAClB,IAAK,IAAIvzF,EAAI,EAAGA,EAAIuzF,EAAO/1F,OAAQwC,IAAK,CACtC,GAAImgI,GAAsBI,EAAa/iI,OACrC,OAEF,IAAIg2F,EAAQD,EAAOvzF,GACnB,GAAqB,iBAAVwzF,GAA+C,iBAAlBA,EAAMrxD,QAAsB,CAClE,IAAIvH,EAAc2lG,EAAaJ,GAC3Bn3G,EACe,iBAAVwqE,EACHA,EAEAA,EAAMrxD,QACRhlC,EAAQ6rB,EAAE5rB,QAAQw9B,GACtB,IAAe,IAAXz9B,EAAc,GACdgjI,EACF,IAAI/2G,EAASJ,EAAE6E,UAAU,EAAG1wB,GACxB0sF,EAASk2C,EACXK,EAAexlG,IAEb6lG,EAAQz3G,EAAE6E,UAAU1wB,EAAQy9B,EAAYp9B,QACxCwvH,EAAc,GAKlB,GAJI5jG,GACF4jG,EAAYrvH,KAAKyrB,GAEnB4jG,EAAYrvH,KAAKksF,GACb42C,EAAO,CACT,IAAIC,EAAc,CAACD,GACnBD,EAAWE,GACX1T,EAAYrvH,KAAKmE,MAAMkrH,EAAa0T,EACtC,CACqB,iBAAVltC,GACTD,EAAOjrF,OAAOxG,MAAMyxF,EAAQ,CAACvzF,EAAG,GAAG8F,OAAOknH,IAC1ChtH,GAAKgtH,EAAYxvH,OAAS,GAE1Bg2F,EAAMrxD,QAAU6qF,CAEpB,CACF,KAAO,CACL,IAAI7qF,EAAUqxD,EAAMrxD,QAChB3jC,MAAMF,QAAQ6jC,GAChBq+F,EAAWr+F,GAEXq+F,EAAW,CAACr+F,GAEhB,CACF,CACF,CACAq+F,CAAWH,GACJ,IAAItX,EAAMe,MACfnxE,EACA0nF,EACA,YAAc1nF,EACd3X,EAEJ,CApMA+nF,EAAMW,UAAU+D,WAAW,mBAAqB,CAK9CiS,EACE,MACA,0HACG79H,QAGL69H,EAAe,OAAQ,yCAAyC79H,QAChE69H,EAAe,MAAO,QAAQ79H,QAC9B69H,EAAe,WAAY,oBAAoB79H,QAC/C69H,EACE,UACA,6CAA6C79H,QAE/C69H,EAAe,MAAO,QAAQ79H,QAC9Bw9H,GACAzoH,OAAO6C,SAsLT,IAAI2kC,EAAqB,CACvBqvE,YAAY,EACZpE,IAAI,EACJsX,YAAY,EACZC,IAAI,EACJC,KAAK,EACLC,KAAK,GAsEP,SAASC,EAAclkI,GACrB,MAAqB,iBAAVA,EACFA,EACE2B,MAAMF,QAAQzB,GAChBA,EAAMkJ,IAAIg7H,GAAev0G,KAAK,IAE9Bu0G,EAAclkI,EAAMslC,QAE/B,CA5EA4mF,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GACpCA,EAAIpxE,YAAYyF,GAStB,SAAS4iF,EAAoBztC,GAC3B,IAAK,IAAIvzF,EAAI,EAAGiiC,EAAIsxD,EAAO/1F,OAAQwC,EAAIiiC,EAAGjiC,IAAK,CAC7C,IAAIwzF,EAAQD,EAAOvzF,GACnB,GAAqB,iBAAVwzF,EAAX,CAGA,IAAIrxD,EAAUqxD,EAAMrxD,QACpB,GAAK3jC,MAAMF,QAAQ6jC,GAMnB,GAAmB,oBAAfqxD,EAAMxqF,KAA4B,CAepC,IAAIi4H,EAAW9+F,EAAQ,GACvB,GACqB,IAAnBA,EAAQ3kC,QACY,iBAAbyjI,GACW,kBAAlBA,EAASj4H,KACT,CAEA,IAAIg4B,EAAO+/F,EAAcE,GACrBl0G,EAAQk0G,EAASl0G,MACjB4rB,EAAWn6C,MAAMF,QAAQyuB,GAASA,EAAM,GAAKA,EAC7C08F,EAAUV,EAAMW,UAAU/wE,GAC9B,IAAK8wE,EAEH,SAEFtnF,EAAQ,GAAK89F,EAAiBj/F,EAAMyoF,EAAS9wE,EAC/C,CACF,MACEqoF,EAAoB7+F,OAtCG,iBAAZA,GACT6+F,EAAoB,CAAC7+F,GAJzB,CA2CF,CACF,CACA6+F,CAAoBjX,EAAIx2B,OAC1B,GAgBD,CArUA,CAqUEw1B,EACL,CA1UAtpH,EAAO7C,QAAUwiI,EACjBA,EAAY38H,YAAc,cAC1B28H,EAAY9U,QAAU,uCCHtB,IAAImT,EAAuB,EAAQ,OAC/ByD,EAAsB,EAAQ,OAIlC,SAASC,EAAMpY,GACbA,EAAMS,SAASiU,GACf1U,EAAMS,SAAS0X,GACd,SAAWnY,GACV,IAAI0E,EAAa1E,EAAMW,UAAU+D,WAC7BzkH,EAAO,2CAA2CnH,OAClDu/H,EACF,2CAA6Cp4H,EAAO,UACtD+/G,EAAMW,UAAUyX,MAAQpY,EAAMW,UAAUhqH,OAAO,cAAe,CAC5DmvH,UAAW,CAET/W,QAAS72G,OACPmgI,EAAkB,uCAAuCv/H,QAE3DwoH,YAAY,EACZK,OAAQ,CACNvrE,YAAa,SAInB4pE,EAAMW,UAAUh3B,aAAa,QAAS,UAAW,CAC/C,qBAAsB,CAEpBolB,QAAS72G,OACPmgI,EACE,wDAAwDv/H,QAE5DwoH,YAAY,EACZK,OAAQ,CACNmE,UAAW,CACT/W,QAAS,2BACTuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,OAGjBne,KAAM,CACJ82E,QAAS,oBACTuS,YAAY,EACZK,OAAQ+C,EACR1gG,MAAO,uBAEToyB,YAAa,WAGjB,aAAc,CACZ,CACE24D,QAAS72G,OACP,mHAAmHY,OAAO0H,QACxH,WACA,WACE,OAAOP,CACT,KAGJqhH,YAAY,EACZK,OAAQ,CACNvrE,YAAa,OAGjB,CACE24D,QAAS72G,OAAO,gBAAkB+H,GAClCqhH,YAAY,EACZK,OAAQ,CACNn7G,OAAQk+G,EAAWl+G,OACnBhO,OAAQksH,EAAWlsH,OACnByiB,QAASypG,EAAWzpG,QACpB87B,QAASipE,EAAMW,UAAUiX,WAAW7gF,QACpCL,SAAU,oBACVN,YAAa,qBAInBkiF,QAAS,CACPvpB,QACE,yEACFuS,YAAY,EACZK,OAAQ,CACN1pF,KAAM,CACJ82E,QAAS,4BACTuS,YAAY,EACZK,OAAQ+C,EACR1gG,MAAO,2BAKfg8F,EAAMW,UAAUmU,YAAYC,WAAW,aAAc/U,EAAMW,UAAUyX,MACtE,CArFA,CAqFEpY,EACL,CA5FAtpH,EAAO7C,QAAUukI,EACjBA,EAAM1+H,YAAc,QACpB0+H,EAAM7W,QAAU,mCCAhB,SAAS52F,EAAKq1F,GAEZA,EAAMW,UAAUh2F,KAAO,CACrBmQ,SAAU,CACRi0E,QAAS,yCACTuS,YAAY,EACZI,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,yCACTuS,YAAY,EACZI,QAAQ,GAEV1rE,QAAS,CACP+4D,QAAS,gCACT2S,QAAQ,GAEVlpH,OAAQ,qCACR49C,YAAa,WACbM,SAAU,IACVz7B,QAAS,qBACTs9G,KAAM,CACJxpB,QAAS,WACT/qF,MAAO,YAGXg8F,EAAMW,UAAU6X,YAAcxY,EAAMW,UAAUh2F,IAChD,CA9BAj0B,EAAO7C,QAAU82B,EACjBA,EAAKjxB,YAAc,OACnBixB,EAAK42F,QAAU,CAAC,mDCHhB,IAAIkX,EAAgB,EAAQ,OAI5B,SAASC,EAAM1Y,GACbA,EAAMS,SAASgY,GACd,SAAWzY,GACV,IAAIx5G,EAAS,+CACbw5G,EAAMW,UAAU+X,MAAQ1Y,EAAMW,UAAUhqH,OAAO,OAAQ,CACrDmkC,SAAU,CACR,CACEi0E,QAAS72G,OAAOsO,EAAO1N,OAAS,aAChC4oH,QAAQ,GAEV,CACE3S,QACE,iEACF/qF,MAAO,aAGXxd,OAAQ,CACNuoG,QAASvoG,EACTk7G,QAAQ,GAEVlpH,OACE,+FAEL,CArBA,CAqBEwnH,EACL,CA3BAtpH,EAAO7C,QAAU6kI,EACjBA,EAAMh/H,YAAc,QACpBg/H,EAAMnX,QAAU,uCCHhB,IAAIkX,EAAgB,EAAQ,OAI5B,SAASE,EAAM3Y,GACbA,EAAMS,SAASgY,GACfzY,EAAMW,UAAUgY,MAAQ3Y,EAAMW,UAAUhqH,OAAO,OAAQ,CACrDy/C,YAAa,iBAEf4pE,EAAMW,UAAUh3B,aAAa,QAAS,cAAe,CACnD7yC,SAAU,mEAEd,CAXApgD,EAAO7C,QAAU8kI,EACjBA,EAAMj/H,YAAc,QACpBi/H,EAAMpX,QAAU,mCCChB,SAASqX,EAAa5Y,GACpBA,EAAMW,UAAUiY,aAAe,CAC7B,gBAAiB,CACf7pB,QAAS,SACT/qF,MAAO,UAET,cAAe,CACb+qF,QAAS,sBACTuS,YAAY,EACZK,OAAQ,CACN,cAAe,CACb5S,QACE,+HACF/qF,MAAO,WAET60G,SAAU,CACR9pB,QAAS,+CACTuS,YAAY,EACZt9F,MAAO,OAET8yB,SAAU,CACRi4D,QACE,uEACFuS,YAAY,EACZK,OAAQ,CACNvrE,YAAa,OAGjBA,YAAa,OACbW,QAAS,iBACT/yB,MAAO,CACL+qF,QAAS,6DACT/qF,MAAO,YAET,cAAe,CACb+qF,QAAS,kBACT/qF,MAAO,SACP29F,OAAQ,CACNvrE,YAAa,QAMzB,CA/CA1/C,EAAO7C,QAAU+kI,EACjBA,EAAal/H,YAAc,eAC3Bk/H,EAAarX,QAAU,mCCCvB,SAASuW,EAAI9X,IACV,SAAWA,GACV,IAAI0E,EAAa1E,EAAMa,KAAK9pH,MAAMipH,EAAMW,UAAU+D,YAC9C7vH,EAAQ,+CAA+CiE,OACvDggI,EAAS,+CAA+ChgI,OACxDm9H,EAAS,uCAAuCn9H,OAKpD,SAASghF,EAAGhhF,EAAQ47G,GAWlB,OAVA57G,EAASA,EACN0H,QAAQ,QAAQ,WACf,OAAO3L,CACT,IACC2L,QAAQ,aAAa,WACpB,OAAOs4H,CACT,IACCt4H,QAAQ,aAAa,WACpB,OAAOy1H,CACT,IACK/9H,OAAOY,EAAQ47G,EACxB,CACAuhB,EAASn8C,EAAGm8C,GAAQn9H,OACpBknH,EAAMW,UAAUmX,IAAM9X,EAAMW,UAAUhqH,OAAO,SAAU+tH,GACvD1E,EAAMW,UAAUmX,IAAIv5H,IAAIwwG,QAAUj1B,EAChC,wIACGhhF,QAELknH,EAAMW,UAAUmX,IAAIv5H,IAAIojH,OAAY,IAAE5S,QAAU,iBAChDiR,EAAMW,UAAUmX,IAAIv5H,IAAIojH,OAAO,cAAc5S,QAC3C,qEACFiR,EAAMW,UAAUmX,IAAIv5H,IAAIojH,OAAY,IAAEA,OAAO,cAC3C,4BACF3B,EAAMW,UAAUmX,IAAIv5H,IAAIojH,OAAgB,QAAI+C,EAAoB,QAChE1E,EAAMW,UAAUh3B,aACd,SACA,YACA,CACEssC,OAAQ,CACNlnB,QAASj1B,EAAG,WAAWhhF,QACvB6oH,OAAQ3B,EAAMW,UAAUmX,MAG5B9X,EAAMW,UAAUmX,IAAIv5H,KAEtByhH,EAAMW,UAAUh3B,aACd,SACA,eACA,CACEgzB,OAAQ,CAEN5N,QAASj1B,EAAG,YAAYhhF,QACxBkrB,MAAO,sBACP29F,OAAQ,CACN,qBAAsB,CACpB5S,QAAS,WACT/qF,MAAO,eAET9nB,KAAM8jH,EAAMW,UAAUmX,OAI5B9X,EAAMW,UAAUmX,IAAIv5H,KAEtB,IAAIw6H,EAAiB,SAAUtuC,GAC7B,OAAKA,EAGgB,iBAAVA,EACFA,EAEoB,iBAAlBA,EAAMrxD,QACRqxD,EAAMrxD,QAERqxD,EAAMrxD,QAAQp8B,IAAI+7H,GAAgBt1G,KAAK,IARrC,EASX,EACIg0G,EAAa,SAAUjtC,GAEzB,IADA,IAAIwuC,EAAa,GACR/hI,EAAI,EAAGA,EAAIuzF,EAAO/1F,OAAQwC,IAAK,CACtC,IAAIwzF,EAAQD,EAAOvzF,GACfgiI,GAAiB,EAgDrB,GA/CqB,iBAAVxuC,IAEQ,QAAfA,EAAMxqF,MACNwqF,EAAMrxD,QAAQ,IACY,QAA1BqxD,EAAMrxD,QAAQ,GAAGn5B,KAG2B,OAAxCwqF,EAAMrxD,QAAQ,GAAGA,QAAQ,GAAGA,QAG5B4/F,EAAWvkI,OAAS,GACpBukI,EAAWA,EAAWvkI,OAAS,GAAG06C,UAChC4pF,EAAetuC,EAAMrxD,QAAQ,GAAGA,QAAQ,KAG1C4/F,EAAWv5H,MAG2C,OAApDgrF,EAAMrxD,QAAQqxD,EAAMrxD,QAAQ3kC,OAAS,GAAG2kC,SAI1C4/F,EAAWpkI,KAAK,CACdu6C,QAAS4pF,EAAetuC,EAAMrxD,QAAQ,GAAGA,QAAQ,IACjD8/F,aAAc,IAKpBF,EAAWvkI,OAAS,GACL,gBAAfg2F,EAAMxqF,MACY,MAAlBwqF,EAAMrxD,QAGN4/F,EAAWA,EAAWvkI,OAAS,GAAGykI,eAElCF,EAAWvkI,OAAS,GACpBukI,EAAWA,EAAWvkI,OAAS,GAAGykI,aAAe,GAClC,gBAAfzuC,EAAMxqF,MACY,MAAlBwqF,EAAMrxD,QAGN4/F,EAAWA,EAAWvkI,OAAS,GAAGykI,eAElCD,GAAiB,IAGjBA,GAAmC,iBAAVxuC,IAEzBuuC,EAAWvkI,OAAS,GAC+B,IAAnDukI,EAAWA,EAAWvkI,OAAS,GAAGykI,aAClC,CAGA,IAAIC,EAAYJ,EAAetuC,GAE7BxzF,EAAIuzF,EAAO/1F,OAAS,IACM,iBAAlB+1F,EAAOvzF,EAAI,IACM,eAAvBuzF,EAAOvzF,EAAI,GAAGgJ,QAEhBk5H,GAAaJ,EAAevuC,EAAOvzF,EAAI,IACvCuzF,EAAOjrF,OAAOtI,EAAI,EAAG,IAGrBA,EAAI,IACsB,iBAAlBuzF,EAAOvzF,EAAI,IACM,eAAvBuzF,EAAOvzF,EAAI,GAAGgJ,QAEhBk5H,EAAYJ,EAAevuC,EAAOvzF,EAAI,IAAMkiI,EAC5C3uC,EAAOjrF,OAAOtI,EAAI,EAAG,GACrBA,KAEFuzF,EAAOvzF,GAAK,IAAI+oH,EAAMe,MACpB,aACAoY,EACA,KACAA,EAEJ,CAEE1uC,EAAMrxD,SAAoC,iBAAlBqxD,EAAMrxD,SAChCq+F,EAAWhtC,EAAMrxD,QAErB,CACF,EACA4mF,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GACrB,QAAjBA,EAAIpxE,UAAuC,QAAjBoxE,EAAIpxE,UAGlC6nF,EAAWzW,EAAIx2B,OACjB,GACD,CA5KA,CA4KEw1B,EACL,CAjLAtpH,EAAO7C,QAAUikI,EACjBA,EAAIp+H,YAAc,MAClBo+H,EAAIvW,QAAU,mCCCd,SAAS6X,EAAMpZ,GACbA,EAAMW,UAAUyY,MAAQ,CACtBpjF,QAAS,CAGP+4D,QACE,6EACFuS,YAAY,GAEdt7F,MAAO,CAEL+oF,QAAS,oCACT2S,QAAQ,GAEVl7G,OAAQ,CAINuoG,QACE,uEACF2S,QAAQ,GAEVnrE,KAAM,CAEJw4D,QAAS,+CACTuS,YAAY,EACZI,QAAQ,GAEV3qE,QACE,6PACF97B,QAAS,qBACTziB,OACE,kIAGFk+C,SACE,+FACFN,YAAa,oBAEbC,SAAU,8CAEd,CA5CA3/C,EAAO7C,QAAUulI,EACjBA,EAAM1/H,YAAc,QACpB0/H,EAAM7X,QAAU,mCCChB,SAAS8X,EAAWrZ,GAClBA,EAAMW,UAAU0Y,WAAa,CAC3BrjF,QAAS,CACP+4D,QAAS,SACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QACE,uFACFuS,YAAY,EACZI,QAAQ,GAGV4X,GAAI,CACFvqB,QAAS72G,OACP,shBAAshBY,OAAO0H,QAC3hB,WACA,WACE,MAAO,0FACJ1H,MACL,IAEF,KAEFkrB,MAAO,UAGTvb,KAAM,CACJsmG,QACE,qEACFuS,YAAY,EACZt9F,MAAO,UAET4yB,SAAU,cACV98B,MAAO,CACLi1F,QAAS,qCACT/qF,MAAO,UAET,4BAA6B,CAC3B+qF,QAAS,aACT/qF,MAAO,YAET0yB,SAAU,IACV5b,SACE,ilIACFub,SACE,mIACF79C,OAAQ,CACNu2G,QAAS,6BACTuS,YAAY,GAEdrmG,QAAS,mCACTm7B,YAAa,SAEjB,CAzDA1/C,EAAO7C,QAAUwlI,EACjBA,EAAW3/H,YAAc,aACzB2/H,EAAW9X,QAAU,mCCCrB,SAASgY,EAAOvZ,GACdA,EAAMW,UAAU4Y,OAAS,CACvBvjF,QAAS,CACP+4D,QAAS,UACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,0BACT2S,QAAQ,GAEV,cAAe,CACb3S,QACE,4HACF2S,QAAQ,EACR19F,MAAO,YAGT,iBAAkB,CAChB+qF,QAAS,OACT/qF,MAAO,QAET,mBAAoB,CAClB+qF,QACE,8HACF/qF,MAAO,QAET,eAAgB,CACd+qF,QACE,+HACF/qF,MAAO,WAET,qBAAsB,CACpB+qF,QAAS,6DACT/qF,MAAO,WAET,iBAAkB,CAChB+qF,QAAS,kDACT/qF,MAAO,YAGTxrB,OAAQ,0CACRk+C,SAAU,eACVN,YAAa,SAEjB,CA/CA1/C,EAAO7C,QAAU0lI,EACjBA,EAAO7/H,YAAc,SACrB6/H,EAAOhY,QAAU,mCCCjB,SAASiY,EAAOxZ,IACb,SAAWA,GACVA,EAAMW,UAAU6Y,OAASxZ,EAAMW,UAAUhqH,OAAO,QAAS,CACvDogD,QAAS,CAEPg4D,QACE,2bACFuS,YAAY,GAEdxqE,SAAU,CACR,CACEi4D,QAAS,iCACT2S,QAAQ,GAEV,CACE3S,QAAS,mCACTuS,YAAY,EACZI,QAAQ,IAGZlpH,OACE,kIACFk+C,SACE,gHAEGspE,EAAMW,UAAU6Y,OAAO,cAC9B,IAAIC,EAAsB,CACxB,4BAA6B,CAC3B1qB,QAAS,aACT/qF,MAAO,eAETmiG,WAAY,CACVpX,QAAS,UACT4S,OAAQ3B,EAAMW,UAAU6Y,SAG5BxZ,EAAMW,UAAUh3B,aAAa,SAAU,SAAU,CAE/C,iBAAkB,CAChB,CACEolB,QAAS,2CACT/qF,MAAO,YACP29F,OAAQ,CACNuE,cAAe,CACbnX,QAAS,8BACT4S,OAAQ8X,GAEVjzH,OAAQ,YAGZ,CACEuoG,QAAS,iDACT/qF,MAAO,aACP29F,OAAQ,CACNuE,cAAe,CACbnX,QAAS,qDACTuS,YAAY,EACZK,OAAQ8X,GAEVjzH,OAAQ,aAId+vC,KAAM,CAEJw4D,QAAS,6CACT2S,QAAQ,YAGL1B,EAAMW,UAAU6Y,OAAe,OACtCxZ,EAAMW,UAAUh3B,aAAa,SAAU,UAAW,CAChD24B,WAAY,CACVvT,QAAS,sCACT/qF,MAAO,aAGXg8F,EAAMW,UAAUh3B,aAAa,SAAU,WAAY,CACjDhxE,MAAO,CACLo2F,QAAS,gBACT/qF,MAAO,YAGXg8F,EAAMW,UAAU3lE,GAAKglE,EAAMW,UAAU6Y,OACrCxZ,EAAMW,UAAU+Y,IAAM1Z,EAAMW,UAAU6Y,MACvC,CAnFA,CAmFExZ,EACL,CAxFAtpH,EAAO7C,QAAU2lI,EACjBA,EAAO9/H,YAAc,SACrB8/H,EAAOjY,QAAU,CAAC,KAAM,uCCCxB,SAASoY,EAAM3Z,IAEZ,SAAWA,GAMV,IAAI4Z,EAAQ,sDAAsD9gI,OAQlE,SAAS+gI,EAAO9qB,EAAS2F,GACvB,OAAOx8G,OAAO62G,EAAQvuG,QAAQ,WAAYo5H,GAAQllB,EACpD,CACAsL,EAAMW,UAAUgZ,MAAQ,CACtB3jF,QAAS,CACP+4D,QAAS,QAEX94D,OAAQ,CACN84D,QAAS,MACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,0BACT2S,QAAQ,GAEVzmG,QAAS,CACP8zF,QAAS8qB,EAAO,yCAAyC/gI,QACzDwoH,YAAY,GAEd,gBAAiB,CACfvS,QAAS8qB,EAAO,2CAA2C/gI,QAC3DwoH,YAAY,EACZt9F,MAAO,WAET,kBAAmB,CACjB+qF,QAAS8qB,EAAO,mCAAmC/gI,QACnDwoH,YAAY,EACZt9F,MAAO,WAET/jB,KAAM,CACJ,CACE8uG,QAAS8qB,EACP,mEACG/gI,QAELwoH,YAAY,EACZt9F,MAAO,WAET,CACE+qF,QAAS8qB,EACP,0DAA0D/gI,QAE5DwoH,YAAY,EACZt9F,MAAO,cAQX+yB,QAAS,CACPg4D,QAAS8qB,EACP,qPACG/gI,QAELwoH,YAAY,GAGdlrH,KAAM,CAEJ24G,QAAS8qB,EACP,2EACG/gI,QAELwoH,YAAY,GAGd9oH,OAAQ,CACNu2G,QAAS8qB,EACP,2FACG/gI,OACH,KAEFwoH,YAAY,GAGdlrE,YAAa,iBAMb,gBAAiB,CACf24D,QAAS,0BACT/qF,MAAO,aAGXg8F,EAAMW,UAAUmZ,IAAM9Z,EAAMW,UAAUgZ,KACvC,CAvGA,CAuGE3Z,EACL,CA7GAtpH,EAAO7C,QAAU8lI,EACjBA,EAAMjgI,YAAc,QACpBigI,EAAMpY,QAAU,CAAC,uCCCjB,SAASwY,EAAM/Z,GACbA,EAAMW,UAAUoZ,MAAQ,CACtB/jF,QAAS,CACP+4D,QAAS,SACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QACE,mGACF2S,QAAQ,GAEVwS,KAAM,CACJnlB,QAAS,sBACTuS,YAAY,EACZt9F,MAAO,WAETq+F,QAAS,CACPtT,QAAS,qBACT/qF,MAAO,WAET,aACE,2EACF+yB,QACE,ibACF97B,QAAS,0BACT67B,SAAU,uBACV78B,SAAU,CACR,CAEE80F,QACE,2QACF/qF,MAAO,UAET,CAEE+qF,QACE,2GACF/qF,MAAO,WAGXxrB,OACE,oHACFk+C,SAAU,kCACVN,YAAa,iBAEjB,CAhDA1/C,EAAO7C,QAAUkmI,EACjBA,EAAMrgI,YAAc,QACpBqgI,EAAMxY,QAAU,mCCChB,SAASyY,EAAMha,IACZ,SAAWA,GACV,IAAIia,EAAc,6BACdC,EAAY,CACd,mBAAoB,CAClBnrB,QAASkrB,EACTj2G,MAAO,UAGXg8F,EAAMW,UAAUqZ,MAAQ,CACtBhkF,QAAS,MAETG,MAAO,CACL44D,QACE,mEACFuS,YAAY,GAMd6Y,SAAU,CACR,CACEprB,QACE,0FACF4S,OAAQuY,EACRl2G,MAAO,UAET,CACE+qF,QACE,4FACFuS,YAAY,EACZK,OAAQuY,EACRl2G,MAAO,WAOX+yB,QAAS,CACPg4D,QACE,wFACFuS,YAAY,GAEdvnG,IAAK,CACHg1F,QAAS,uBACTuS,YAAY,GAMd8Y,SAAU,CACRrrB,QACE,4JACFuS,YAAY,EACZt9F,MAAO,cAET8yB,SAAU,CACRi4D,QAASkrB,EACTj2G,MAAO,YAEToyB,YAAa,YAEf4pE,EAAMW,UAAU0Z,IAAMra,EAAMW,UAAUqZ,MACtCha,EAAMW,UAAU/zG,QAAUozG,EAAMW,UAAUqZ,KAC3C,CAlEA,CAkEEha,EACL,CAvEAtpH,EAAO7C,QAAUmmI,EACjBA,EAAMtgI,YAAc,QACpBsgI,EAAMzY,QAAU,CAAC,MAAO,8CCHxB,IAAIiL,EAA4B,EAAQ,OACpC8N,EAAe,EAAQ,OAI3B,SAASC,EAAMva,GACbA,EAAMS,SAAS+L,GACfxM,EAAMS,SAAS6Z,GACd,SAAWta,GACVA,EAAMW,UAAU4Z,MAAQ,CACtBvkF,QAAS,eACT,YAAa,CAEX+4D,QAAS,kDACTuS,YAAY,EACZt9F,MAAO,aAETyiG,UAAW,CACT1X,QAAS,aACT/qF,MAAO,eAETw2G,IAAK,CACHzrB,QAAS,mBACT/qF,MAAO,eACP29F,OAAQ3B,EAAMW,UAAU6Z,MAG5B,IAAIC,EAAcza,EAAMW,UAAUhqH,OAAO,SAAU,CAAC,GACpDqpH,EAAMW,UAAUh3B,aACd,SACA,aACA,CACE,SAAU,CACRolB,QAAS,qDACT4S,OAAQ,CACN,YAAa,CACX5S,QAAS,WACT/qF,MAAO,aAET,aAAc,CACZ+qF,QAAS,WACT4S,OAAQ,CACNvrE,YAAa,CACX,KACA,CACE24D,QAAS,mBACTuS,YAAY,IAGhBkZ,IAAK,CACHzrB,QAAS,mBACT4S,OAAQ3B,EAAMW,UAAU6Z,UAOpCC,EAAYl8H,KAEdyhH,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAC3C,GAAqB,UAAjBA,EAAIpxE,SAAR,CAKAowE,EAAMW,UAAU,qBAAqBgM,kBACnC3L,EACA,QAHA,wHAMFA,EAAIN,QAAU+Z,CARd,CASF,IACAza,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1ChB,EAAMW,UAAU,qBAAqBiM,qBAAqB5L,EAAK,QACjE,GACD,CApEA,CAoEEhB,EACL,CA3EAtpH,EAAO7C,QAAU0mI,EACjBA,EAAM7gI,YAAc,QACpB6gI,EAAMhZ,QAAU,mCCAhB,SAASmZ,EAAK1a,GAQZA,EAAMW,UAAU+Z,KAAO1a,EAAMW,UAAUhqH,OAAO,MAAO,CACnDq/C,QAAS,CACP,mBACA,CACE+4D,QAAS,kBACTuS,YAAY,IAGhBzqE,OAAQ,CACNk4D,QACE,0EACF4S,OAAQ,CACNvrE,YAAa,UAIjB3G,SAAU,CACRs/D,QACE,0GACF4S,OAAQ,CAEN/qE,SAAU,aAGd9b,SAAU,0CACV4b,SAAU,aAEZspE,EAAMW,UAAUh3B,aAAa,OAAQ,WAAY,CAC/C/yC,SAAU,CAER,CACEm4D,QAAS,cACT4S,OAAQ,CACNvrE,YAAa,MAGjB,aAEF,cAAe,CACb24D,QAAS,sCACTuS,YAAY,EACZt9F,MAAO,aAGb,CAvDAttB,EAAO7C,QAAU6mI,EACjBA,EAAKhhI,YAAc,OACnBghI,EAAKnZ,QAAU,sCCHf,IAAIoZ,EAAkB,EAAQ,OAI9B,SAASC,EAAS5a,GAChBA,EAAMS,SAASka,GACd,SAAW3a,GAMV,IALA,IAAI6a,EACF,mGACG/hI,OAGI7B,EAAI,EAAGA,EADQ,EACeA,IACrC4jI,EAAmBA,EAAiBr6H,QAAQ,WAAW,WACrD,OAAOq6H,CACT,IAEFA,EAAmBA,EAAiBr6H,QAAQ,UAAW,UAAU1H,QACjE,IAAI8hI,EAAY5a,EAAMW,UAAUia,SAAW,CACzC5kF,QAAS,8BACT,kBAAmB,CACjB+4D,QAAS72G,OACP,8DAA8DY,OAAO0H,QACnE,WACA,WACE,OAAOq6H,CACT,IAEF,KAEFvZ,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN7P,OAAQ,CACN/C,QAAS,eACTuS,YAAY,EACZt9F,MAAO,kBACP29F,OAAQ,CACN,oBAAqB,CACnB5S,QAAS,iBACT2S,QAAQ,EACRC,OAAQ,CACNvrE,YAAa,YACbwkF,SAAU,CACR7rB,QAAS,UACT/qF,MAAO,oBACP29F,OAAQ,QAIdzlH,KAAM8jH,EAAMW,UAAU7O,SAG1B17D,YAAa,MAGjB5vC,OAAQ,CACNuoG,QAAS,oBACT2S,QAAQ,GAEV,aAAc,CACZ3S,QAAS,mBACTuS,YAAY,GAEdvqE,QAAS,CACPg4D,QAAS,iBACT4S,OAAQ,CACNvrE,YAAa,QAGjBM,SAAU,aACVN,YAAa,CACX24D,QACE,uGACFuS,YAAY,GAEd9oH,OAAQ,qBAEVoiI,EAAS,mBAAmBjZ,OAAe,OAAEA,OAC3C,qBACAA,OAAiB,SAAEA,OAASiZ,EAC9B5a,EAAMW,UAAUma,GAAKF,CACtB,CA5EA,CA4EE5a,EACL,CAlFAtpH,EAAO7C,QAAU+mI,EACjBA,EAASlhI,YAAc,WACvBkhI,EAASrZ,QAAU,uCCHnB,IAAIiL,EAA4B,EAAQ,OAIxC,SAASuO,EAAO/a,GACdA,EAAMS,SAAS+L,GACfxM,EAAMW,UAAUoa,OAAS,CACvB/kF,QAAS,CACP+4D,QAAS,2DACTuS,YAAY,GAEdmF,UAAW,CACT1X,QAAS,0CACT/qF,MAAO,eAETxd,OAAQ,CACNuoG,QAAS,kBACT2S,QAAQ,GAEV3qE,QACE,oOACFt2C,OACE,ywBACFq2C,SAAU,CACR,CACEi4D,QAAS,aACTuS,YAAY,EACZt9F,MAAO,UAET,CAEE+qF,QAAS,6BACTuS,YAAY,IAGhBrmG,QAAS,yBACT2mG,MAAO,CACL7S,QAAS,OACT/qF,MAAO,YAGTxrB,OAAQ,oBACRk+C,SAAU,wDACVN,YAAa,aACbjiD,MAAO,CACL46G,QAAS,YACT/qF,MAAO,YAGXg8F,EAAMkB,MAAMr7G,IAAI,mBAAmB,SAAUm7G,GAC3C,IAEIga,GAAY,EAChBhb,EAAMW,UAAU,qBAAqBgM,kBACnC3L,EACA,SAJA,uGAMA,SAAUzoH,GACR,IAAI0iI,EAAW,iBAAiB76H,KAAK7H,GACrC,GAAI0iI,EAAU,CACZ,IAAI18H,EAAM08H,EAAS,GACnB,GAAY,QAAR18H,IAAkBy8H,EAEpB,OADAA,GAAY,GACL,EACF,GAAY,WAARz8H,EAET,OADAy8H,GAAY,GACL,CAEX,CACA,OAAQA,CACV,GAEJ,IACAhb,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GAC1ChB,EAAMW,UAAU,qBAAqBiM,qBAAqB5L,EAAK,SACjE,GACF,CA3EAtqH,EAAO7C,QAAUknI,EACjBA,EAAOrhI,YAAc,SACrBqhI,EAAOxZ,QAAU,mCCCjB,SAAS2Z,EAAKlb,IACX,SAAWA,GAQV,SAASmb,EAAY/kI,GACnB,OAAO8B,OAAO,OAAOY,OAAS,MAAQ1C,EAAO,IAAM,aAAa0C,OAClE,CAOA,SAASsiI,EAAUrsB,GACjB,OAAO72G,OACL,WAAWY,OAAS,MAAQi2G,EAAU,IAAM,YAAYj2G,OAE5D,CAGA,IAAIqK,EAAS,6BAA6BrK,OACtCk9E,EAAS,IAAM7yE,EACfk4H,EAAM,QAENxmI,EAAQ,UACRymI,EACF,oFACGxiI,OACD82C,EAAW,CAGb2N,QAAS,CACPwxD,QAAS,QACT/qF,MAAO,CAAC,UAAW,UAErBgyB,QAAS,MACTxvC,OAAQ,CACNuoG,QAAS,oBACT2S,QAAQ,EACRC,OAAQ,CACNqD,SAAU,oBACV7hH,OAAQjL,OAAO,IAAMiL,EAAS,OAGlC,gBAAiB,CACf4rG,QAAS72G,OAAO,MAAQiL,GACxB6gB,MAAO,CAAC,WAAY,WAEtB,gBAAiB,CACf+qF,QAAS72G,OAAO,IAAMiL,GACtB6gB,MAAO,YAETzkB,OAAQ,CACNwvG,QAAS72G,OAAO,MAAQiL,GACxB6gB,MAAO,CAAC,SAAU,aAEpB+yB,QAAS,CACP,CACEg4D,QAAS72G,OACPmjI,EACE,8IACAxmI,GAEJysH,YAAY,GAEd,CACEvS,QAAS72G,OACPmjI,EACE,wDACAxmI,GAEJysH,YAAY,IAGhB1Q,QAAS,CACP7B,QAASosB,EAAY,UAAUriI,QAC/BwoH,YAAY,EACZt9F,MAAO,WAETo6D,YAAa,CACX2wB,QAASosB,EAAY,cAAcriI,QACnCwoH,YAAY,EACZt9F,MAAO,WAET/I,QAAS,CACP8zF,QAASqsB,EAAU,QAAQtiI,QAC3BwoH,YAAY,GAEd9oH,OAAQ,CACNu2G,QAASqsB,EAAU,qBAAqBtiI,QACxCwoH,YAAY,GAEdia,OAAQ,CACNxsB,QAAS72G,OAAOmjI,EAAM,oCAAsCl4H,GAC5Dm+G,YAAY,EACZK,OAAQ,CACN5qE,QAAS,aACTH,SAAU1+C,OAAOiL,KAGrBq4H,MAAO,CACLzsB,QAAS72G,OACPmjI,EACE,mCAAmCviI,OACnCqK,EACA,QAAQrK,OACRwiI,EACA,KAAKxiI,QAETwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN5qE,QAAS,kBAGT//C,UAAW,KACX8/C,SAAU,CACRi4D,QAAS72G,OAAO,SAAWiL,GAC3Bm+G,YAAY,GAEdlrE,YAAa,SAGjBqlF,OAAQ,CACN1sB,QAAS72G,OACPmjI,EACE,yBACAl4H,EACA,YACAA,EACA,eAEJm+G,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN5qE,QAAS,UAGT//C,UAAW,KACXo/C,YAAa,SAGjBslF,IAAK,CACH3sB,QAAS72G,OAAOmjI,EAAMl4H,GACtBm+G,YAAY,GAEdlrE,YAAa,CAEX,uBACA,CACE24D,QAAS,eACTuS,YAAY,KAIdziH,EAAM,CACR,cAAe3G,OAAO89E,GACtB2lD,QAAS,CACP5sB,QAAS72G,OACP,KAAKY,OAASqK,EAAS,YAAYrK,OAASwiI,EAAY,KAAKxiI,QAE/D6oH,OAAQ/xE,GAEVo1E,SAAU,CACRjW,QAAS72G,OAAO,YAAYY,OAASqK,GACrCm+G,YAAY,EACZt9F,MAAO,YAET9nB,KAAM0zC,GAEJgsF,EAAQ,oBACRC,EAAU,CACZ9sB,QAAS72G,OAAOmjI,EAAMC,EArJX,WAsJXha,YAAY,EACZK,OAAQ,CACN,YAAa,CACX5S,QAAS72G,OAAO,qBAAuB0jI,GACvCja,OAAQ9iH,GAEV,oBAAqB,CACnBkwG,QAAS72G,OAAO,wBAA0B0jI,GAC1Cja,OAAQ9iH,GAEVzH,KAAM,CACJ23G,QAAS72G,OAAO,WAAa0jI,EAAQ,8BACrCja,OAAQ9iH,GAEVmmH,SAAU,CACRjW,QAAS72G,OAAOiL,GAChB6gB,MAAO,YAEToyB,YAAa,SAGjBxG,EAAiB,OAAE+xE,OAAO3qH,UAAY6kI,EACtCjsF,EAAgB,MAAE+xE,OAAO3qH,UAAYgpH,EAAMa,KAAK9pH,MAAM8kI,GACtDjsF,EAAgB,MAAE+xE,OAAO3qH,UAAU2qH,OAAOma,QAAUD,EACpD7b,EAAMW,UAAUua,KAAOtrF,EACvBowE,EAAMW,UAAUob,MAAQnsF,EACxBowE,EAAMW,UAAUqb,MAAQpsF,EACxBowE,EAAMW,UAAU,cAAgB/wE,CACjC,CA7MA,CA6MEowE,EACL,CAlNAtpH,EAAO7C,QAAUqnI,EACjBA,EAAKxhI,YAAc,OACnBwhI,EAAK3Z,QAAU,mCCCf,SAAS0a,EAAWjc,GAClBA,EAAMW,UAAUsb,WAAa,CAC3BjmF,QAAS,CACP,CACE+4D,QAAS,4BACTuS,YAAY,GAEd,CACEvS,QAAS,eACTuS,YAAY,IAGhB,sBAAuB,CAGrBvS,QAAS,kDACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACN/qE,SAAU,CACRm4D,QAAS,sCACTuS,YAAY,GAEd4E,cAAe,CACbnX,QAAS,uBACTuS,YAAY,EACZK,OAAQ,CACN,4BAA6B,CAC3B5S,QAAS,WACT/qF,MAAO,cAIbxd,OAAQ,YAGZA,OAAQ,CACN,CACEuoG,QAAS,qCACT2S,QAAQ,GAEV,CACE3S,QAAS,iBACT2S,QAAQ,GAEV,kBAEF17F,MAAO,CACL,CACE+oF,QAAS,8DACT2S,QAAQ,EACRC,OAAQ,CACN3rE,QAAS,CACP+4D,QAAS,eACTuS,YAAY,KAIlB,CACEvS,QAAS,uDACT2S,QAAQ,IAGZ3qE,QAAS,CACPg4D,QACE,wQACFuS,YAAY,GAEd,mBAAoB,CAClBvS,QACE,+JACFuS,YAAY,EACZt9F,MAAO,YAET/I,QAAS,CACP8zF,QAAS,iDACTuS,YAAY,GAEd0D,SAAU,CAERjW,QAAS,8BACTuS,YAAY,EACZt9F,MAAO,YAETxrB,OAAQ,2DACR0kD,WAAY,4BACZxG,SAAU,CAER,CACEq4D,QAAS,aACTuS,YAAY,GAwBd,qLAEFlrE,YAAa,oBAEf4pE,EAAMW,UAAUsb,WAAW,uBAAuBta,OAElD,cAAEA,OAAOzlH,KAAO8jH,EAAMW,UAAUsb,UAClC,CA5HAvlI,EAAO7C,QAAUooI,EACjBA,EAAWviI,YAAc,aACzBuiI,EAAW1a,QAAU,mCCCrB,SAAS2a,EAAKlc,IACX,SAAWA,GACVA,EAAMW,UAAUub,KAAO,CACrBlmF,QAAS,MACTxvC,OAAQ,CACNuoG,QAAS,UACT2S,QAAQ,GAEVzmG,QAAS,qBACT27B,SAAU,iDACVj+B,MAAO,oCACP1Y,KAAM,CACJ8uG,QACE,iGACF/qF,MAAO,cAET+yB,QAAS,uBACTv+C,OACE,gIACF49C,YAAa,oBAEhB,CApBA,CAoBE4pE,EACL,CAzBAtpH,EAAO7C,QAAUqoI,EACjBA,EAAKxiI,YAAc,OACnBwiI,EAAK3a,QAAU,mCCCf,SAASltF,EAAI2rF,GAKXA,EAAMW,UAAUtsF,IAAM,CACpB7tB,OAAQ,CAENuoG,QAAS,2DACT2S,QAAQ,GAEVya,UAAW,CACTptB,QACE,uIACFuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,CAAC,iBAAkB,2BAC1B29F,OAAQ3B,EAAMW,UAA0B,gBAAK,CAC3C5pE,QAAS,SACTD,SAAU,qBACVV,YAAa,WAGjBnhB,MAAO,CACL,CACE85E,QACE,6EACF/qF,MAAO,CAAC,QAAS,cAEnB,CACE+qF,QAAS,2BACT/qF,MAAO,CAAC,UAAW,cAErB,CACE+qF,QAAS,yCACT/qF,MAAO,CAAC,OAAQ,YAElB,CACE+qF,QAAS,yBACT/qF,MAAO,CAAC,QAAS,YAEnB,CACE+qF,QAAS,6CACT/qF,MAAO,CAAC,QAAS,aAGrB8W,SAAU,CACRi0E,QACE,wFACFuS,YAAY,GAEdv/E,UAAW,CACTgtE,QAAS,oCACTuS,YAAY,EACZt9F,MAAO,WAETjK,IAAK,oDACLD,MAAO,CACLi1F,QAAS,6DACTuS,YAAY,EACZt9F,MAAO,OAET,aAAc,CACZ+qF,QAAS,kCACT/qF,MAAO,YAET,cAAe,CACb+qF,QAAS,sCACT/qF,MAAO,YAETo4G,OAAQ,CACNrtB,QACE,qEACFuS,YAAY,EACZt9F,MAAO,YAEThK,KAAM,CACJ+0F,QACE,oEACF/qF,MAAO,YAETmnG,KAAM,CACJpc,QAAS,6BACT/qF,MAAO,YAET,YAAa,CACX+qF,QACE,qFACFuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,UAETrJ,KAAM,CACJo0F,QAAS72G,OACP,4DAA4DY,OAC1D,IACA,4FACGA,OACH,IACA,uKACGA,OACL,KAEFkrB,MAAO,UAET+rC,KAAM,CACJg/C,QACE,qEACF/qF,MAAO,UAET/I,QAAS,2BACTziB,OAAQ,CACNu2G,QACE,yGACFuS,YAAY,GAEd5qE,SAAU,6BACVN,YAAa,WAEjB,CA1HA1/C,EAAO7C,QAAUwgC,EACjBA,EAAI36B,YAAc,MAClB26B,EAAIktF,QAAU,kCCCd,SAAS8a,EAAQrc,GACfA,EAAMW,UAAU0b,QAAU,CACxBrmF,QAAS,CAAC,2BAA4B,WACtCxvC,OAAQ,CACNuoG,QAAS,kBACT4S,OAAQ,CACN/qE,SAAU,aACVzzC,OAAQ,CAAC,iBAAkB,cAAe,aAE5Cu+G,QAAQ,GAEVlpH,OAAQ,sCACR2K,OAAQ,CACN4rG,QAAS,iEACTuS,YAAY,EACZK,OAAQ,CACN5qE,QAAS,YAGbp+B,MAAO,CACLo2F,QAAS,iDACTuS,YAAY,EACZt9F,MAAO,UAET8yB,SAAU,CACRi4D,QAAS,6CACTuS,YAAY,GAEdvqE,QAAS,CACP,CACEg4D,QACE,sRACFuS,YAAY,GAEd,gBAEFrmG,QAAS,CACP8zF,QAAS,+BACTuS,YAAY,GAEd1qE,SAAU,CACRm4D,QAAS,qBACTuS,YAAY,GAEd5qE,SAAU,CACRq4D,QACE,uHACFuS,YAAY,GAEdlrE,YAAa,cAEjB,CAtDA1/C,EAAO7C,QAAUwoI,EACjBA,EAAQ3iI,YAAc,UACtB2iI,EAAQ9a,QAAU,mCCClB,SAASkN,EAAIzO,GACXA,EAAMW,UAAU8N,IAAM,CACpBz4E,QAAS,yCAETxvC,OAAQ,CACNuoG,QACE,qFACF2S,QAAQ,GAEVlpH,OACE,gHACFu+C,QACE,0HACFD,SAAU,2BACVJ,SAAU,CACR,wCACA,CAEEq4D,QAAS,qBACTuS,YAAY,IAGhBlrE,YAAa,sBAEjB,CA3BA1/C,EAAO7C,QAAU46H,EACjBA,EAAI/0H,YAAc,MAClB+0H,EAAIlN,QAAU,mCCCd,SAAS+a,EAAMtc,GACbA,EAAMW,UAAU2b,MAAQ,CACtBn9E,OAAQ,CACN4vD,QACE,2GACFuS,YAAY,EACZI,QAAQ,GAEV1rE,QAAS,CACP+4D,QAAS,0BACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,kCACTuS,YAAY,EACZI,QAAQ,GAGV3qE,QACE,ggBACF97B,QAAS,qBACTshH,UAAW,CACTxtB,QAAS,uBACT/qF,MAAO,cAET8yB,SAAU,wBACVt+C,OAAQ,CACNu2G,QACE,uFACFuS,YAAY,GAEd5qE,SAAU,0BACVN,YAAa,kBAEjB,CArCA1/C,EAAO7C,QAAUyoI,EACjBA,EAAM5iI,YAAc,QACpB4iI,EAAM/a,QAAU,mCCChB,SAASib,EAASxc,GAChBA,EAAMW,UAAU6b,SAAW,CACzBxmF,QAAS,CACP+4D,QAAS,6CACTuS,YAAY,GAEd96G,OAAQ,CACNuoG,QAAS,iDACT2S,QAAQ,GAEV,iBAAkB,CAChB3S,QAAS,gCACT/qF,MAAO,WAET9tB,OAAQ,CACN64G,QAAS,8CACT/qF,MAAO,SACP29F,OAAQ,CACN/qE,SAAU,wCAGdA,SAAU,wDAEVG,QACE,6HACFD,SAAU,CACRi4D,QACE,wQACFuS,YAAY,GAEd5qE,SAAU,uBACVN,YAAa,WAEjB,CApCA1/C,EAAO7C,QAAU2oI,EACjBA,EAAS9iI,YAAc,WACvB8iI,EAASjb,QAAU,mCCCnB,SAAS/2E,EAASw1E,IACf,SAAWA,GAEV,IAAI7yG,EAAQ,2CAA2CrU,OAWvD,SAAS2jI,EAAa1tB,GAIpB,OAHAA,EAAUA,EAAQvuG,QAAQ,YAAY,WACpC,OAAO2M,CACT,IACOjV,OAAO,0BAA0BY,OAAS,MAAQi2G,EAAU,IACrE,CACA,IAAI2tB,EAAY,4DACb5jI,OACCg3H,EACF,+CAA+Ch3H,OAAO0H,QACpD,OACA,WACE,OAAOk8H,CACT,IAEAC,EACF,sEACG7jI,OACLknH,EAAMW,UAAUn2E,SAAWw1E,EAAMW,UAAUhqH,OAAO,SAAU,CAAC,GAC7DqpH,EAAMW,UAAUh3B,aAAa,WAAY,SAAU,CACjD,qBAAsB,CACpBolB,QAAS,kDACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNvrE,YAAa,YACb,eAAgB,CACd24D,QAAS,iBACT/qF,MAAO,CAAC,OAAQ,iBAChB29F,OAAQ3B,EAAMW,UAAUic,QAI9BC,WAAY,CAEV9tB,QAAS,kBACT/qF,MAAO,eAETm6B,MAAO,CACL4wD,QAAS72G,OACP,IAAM43H,EAAW6M,EAAY,MAAQ7M,EAAW,KAChD,KAEFnO,OAAQ,CACN,kBAAmB,CACjB5S,QAAS72G,OACP,KAAO43H,EAAW6M,EAAY,OAAS7M,EAAW,OAEpDxO,YAAY,EACZK,OAAQ,CACN,aAAc,CACZ5S,QAAS72G,OAAOwkI,GAChB/a,OAAQ3B,EAAMW,UAAUn2E,UAE1B4L,YAAa,OAGjB,aAAc,CACZ24D,QAAS72G,OAAO,KAAO43H,EAAW,IAAM6M,EAAY,KACpDrb,YAAY,EACZK,OAAQ,CACNvrE,YAAa,iBAGjB,mBAAoB,CAClB24D,QAAS72G,OAAO,IAAM43H,EAAW,KACjCnO,OAAQ,CACN,eAAgB,CACd5S,QAAS72G,OAAOwkI,GAChB14G,MAAO,YACP29F,OAAQ3B,EAAMW,UAAUn2E,UAE1B4L,YAAa,SAKrBne,KAAM,CACJ,CAEE82E,QACE,uFACFuS,YAAY,EACZt9F,MAAO,WAET,CAIE+qF,QAAS,qBACT2S,QAAQ,EACRC,OAAQ,CACN,aAAc,CACZ5S,QAAS,qDACTuS,YAAY,GAEd,gBAAiB,CACfvS,QAAS,WACTuS,YAAY,GAEdlrE,YAAa,SAInBpqB,MAAO,CACL,CAKE+iF,QAAS,0CACT/qF,MAAO,YACP29F,OAAQ,CACNvrE,YAAa,cAGjB,CAGE24D,QAAS,aACTuS,YAAY,EACZt9F,MAAO,YACP29F,OAAQ,CACNvrE,YAAa,aAInBkK,GAAI,CAKFyuD,QAAS,wCACTuS,YAAY,EACZt9F,MAAO,eAETJ,KAAM,CAKJmrF,QAAS,mCACTuS,YAAY,EACZt9F,MAAO,eAET,gBAAiB,CAKf+qF,QACE,qHACF4S,OAAQ,CACN/qE,SAAU,CACRm4D,QAAS,gBACTuS,YAAY,GAEd96G,OACE,+DACF4vC,YAAa,kBAEfpyB,MAAO,OAETizB,KAAM,CAIJ83D,QAAS0tB,EACP,kGACG3jI,QAELwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNvoF,QAAS,CACP21E,QAAS,sBACTuS,YAAY,EACZK,OAAQ,CAAC,GAEXvrE,YAAa,YAGjBc,OAAQ,CAIN63D,QAAS0tB,EACP,kGACG3jI,QAELwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNvoF,QAAS,CACP21E,QAAS,oBACTuS,YAAY,EACZK,OAAQ,CAAC,GAEXvrE,YAAa,SAGjB0mF,OAAQ,CAIN/tB,QAAS0tB,EAAa,2BAA2B3jI,QACjDwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNvoF,QAAS,CACP21E,QAAS,uBACTuS,YAAY,EACZK,OAAQ,CAAC,GAEXvrE,YAAa,QAGjB,eAAgB,CAGd24D,QACE,mEACFuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,CAAC,OAAQ,YAElBjK,IAAK,CAIHg1F,QAAS0tB,EACP,mGACG3jI,QAELwoH,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNjrE,SAAU,KACVtd,QAAS,CACP21E,QAAS,oBACTuS,YAAY,EACZK,OAAQ,CAAC,GAEX/qE,SAAU,CACRm4D,QAAS,6BACTuS,YAAY,GAEdvnG,IAAK,CACHg1F,QAAS,iBACTuS,YAAY,GAEd96G,OAAQ,CACNuoG,QAAS,oCACTuS,YAAY,OAKnB,CAAC,MAAO,OAAQ,SAAU,UAAUjkH,SAAQ,SAAUotF,GACpD,CAAC,MAAO,OAAQ,SAAU,SAAU,gBAAgBptF,SAAQ,SAC3DskH,GAEIl3B,IAAUk3B,IACZ3B,EAAMW,UAAUn2E,SAASigD,GAAOk3B,OAAOvoF,QAAQuoF,OAAOA,GACpD3B,EAAMW,UAAUn2E,SAASm3E,GAE/B,GACF,IACA3B,EAAMkB,MAAMr7G,IAAI,kBAAkB,SAAUm7G,GACrB,aAAjBA,EAAIpxE,UAA4C,OAAjBoxE,EAAIpxE,UAGvC,SAAS6nF,EAAWjtC,GAClB,GAAKA,GAA4B,iBAAXA,EAGtB,IAAK,IAAIvzF,EAAI,EAAGiiC,EAAIsxD,EAAO/1F,OAAQwC,EAAIiiC,EAAGjiC,IAAK,CAC7C,IAAIwzF,EAAQD,EAAOvzF,GACnB,GAAmB,SAAfwzF,EAAMxqF,KAAV,CAiBA,IAAI88H,EAAWtyC,EAAMrxD,QAAQ,GACzBwjB,EAAY6tC,EAAMrxD,QAAQ,GAC9B,GACE2jG,GACAngF,GACkB,kBAAlBmgF,EAAS98H,MACU,eAAnB28C,EAAU38C,MACkB,iBAArB88H,EAAS3jG,QAChB,CAGA,IAAIkB,EAAOyiG,EAAS3jG,QACjB54B,QAAQ,OAAQ,SAChBA,QAAQ,UAAW,MAElBwjB,EAAQ,aADZsW,GAAQ,eAAel6B,KAAKk6B,IAAS,CAAC,KAAK,GAAGhU,eAEzCs2B,EAAU54B,MAEuB,iBAApB44B,EAAU54B,MAC1B44B,EAAU54B,MAAQ,CAAC44B,EAAU54B,MAAOA,GAEpC44B,EAAU54B,MAAMpvB,KAAKovB,GAJrB44B,EAAU54B,MAAQ,CAACA,EAMvB,CArCA,MAFEyzG,EAAWhtC,EAAMrxD,QAwCrB,CACF,CACAq+F,CAAWzW,EAAIx2B,OACjB,IACAw1B,EAAMkB,MAAMr7G,IAAI,QAAQ,SAAUm7G,GAChC,GAAiB,eAAbA,EAAI/gH,KAAR,CAIA,IADA,IAAI88H,EAAW,GACN9lI,EAAI,EAAGiiC,EAAI8nF,EAAIxxE,QAAQ/6C,OAAQwC,EAAIiiC,EAAGjiC,IAAK,CAClD,IAAI+lI,EAAMhc,EAAIxxE,QAAQv4C,GAClBsB,EAAQ,gBAAgB6H,KAAK48H,GACjC,GAAIzkI,EAAO,CACTwkI,EAAWxkI,EAAM,GACjB,KACF,CACF,CACA,IAiDmBsmG,EAjDf6hB,EAAUV,EAAMW,UAAUoc,GAC9B,GAAKrc,EAoBHM,EAAI5nF,QAAU4mF,EAAMlmF,WA4BH+kE,EA3BHmiB,EAAI5nF,QAAQtlC,MA6BjB+qG,EAAKr+F,QAAQy8H,EAAY,IACxBz8H,QAAQ,iCAAiC,SAAUo3C,EAAG3f,GAG9D,IAAInkC,EADN,GAAgB,OADhBmkC,EAAOA,EAAK3R,eACH,GAOP,OAJExyB,EADc,MAAZmkC,EAAK,GACCxjB,SAASwjB,EAAKvjC,MAAM,GAAI,IAExBsT,OAAOiwB,EAAKvjC,MAAM,IAErBwoI,EAAcppI,GAErB,IAAIg3B,EAAQqyG,EAAmBllG,GAC/B,OAAInN,GAGG8sB,CAEX,KA9CI8oE,EACAqc,QAtBF,GAAIA,GAAyB,SAAbA,GAAuB/c,EAAMod,QAAQC,WAAY,CAC/D,IAAIntH,EACF,OACA,IAAIpY,MAAO6M,UACX,IACAmD,KAAKC,MAAsB,KAAhBD,KAAKygD,UAClBy4D,EAAI1Z,WAAe,GAAIp3F,EACvB8vG,EAAMod,QAAQC,WAAWC,cAAcP,GAAU,WAC/C,IAAIQ,EAAM1pH,SAAS0lE,eAAerpE,GAC9BqtH,IACFA,EAAIxzC,UAAYi2B,EAAMlmF,UACpByjG,EAAIp+B,YACJ6gB,EAAMW,UAAUoc,GAChBA,GAGN,GACF,CA7BF,CAqCF,IACA,IAAIE,EAAa/kI,OAAO8nH,EAAMW,UAAUP,OAAO7hH,IAAIwwG,QAAQj2G,OAAQ,MAQ/DqkI,EAAqB,CACvB/lF,IAAK,IACLG,GAAI,IACJD,GAAI,IACJG,KAAM,KAEJylF,EAAgBhpI,OAAOgpI,eAAiBhpI,OAAO+sG,aA8BnD+e,EAAMW,UAAU6c,GAAKxd,EAAMW,UAAUn2E,QACtC,CAtaA,CAsaEw1E,EACL,CA3aAtpH,EAAO7C,QAAU22C,EACjBA,EAAS9wC,YAAc,WACvB8wC,EAAS+2E,QAAU,CAAC,sCCCpB,SAASmL,EAAiB1M,IACvB,SAAWA,GAQV,SAAS4W,EAAehnF,EAAUx7C,GAChC,MAAO,MAAQw7C,EAASrpB,cAAgBnyB,EAAQ,KAClD,CACAW,OAAOq5C,iBAAkB4xE,EAAMW,UAAU,qBAAuB,CAAC,EAAI,CACnEgM,kBAAmB,CAYjB74H,MAAO,SAAUktH,EAAKpxE,EAAU6tF,EAAoBC,GAClD,GAAI1c,EAAIpxE,WAAaA,EAArB,CAGA,IAAI+tF,EAAc3c,EAAI2c,WAAa,GACnC3c,EAAI/oF,KAAO+oF,EAAI/oF,KAAKz3B,QAAQi9H,GAAoB,SAAUllI,GACxD,GAA6B,mBAAlBmlI,IAAiCA,EAAcnlI,GACxD,OAAOA,EAIT,IAFA,IACIs5B,EADA56B,EAAI0mI,EAAWlpI,QAIhB,IADDusH,EAAI/oF,KAAK5jC,QAASw9B,EAAc+kG,EAAehnF,EAAU34C,OAGvDA,EAGJ,OADA0mI,EAAW1mI,GAAKsB,EACTs5B,CACT,IACAmvF,EAAIN,QAAUV,EAAMW,UAAUP,MAjB9B,CAkBF,GAEFwM,qBAAsB,CAOpB94H,MAAO,SAAUktH,EAAKpxE,GACpB,GAAIoxE,EAAIpxE,WAAaA,GAAaoxE,EAAI2c,WAAtC,CAGA3c,EAAIN,QAAUV,EAAMW,UAAU/wE,GAC9B,IAAI+I,EAAI,EACJvhD,EAAOrC,OAAOqC,KAAK4pH,EAAI2c,aAC3B,SAASlG,EAAWjtC,GAClB,IAAK,IAAIvzF,EAAI,EAAGA,EAAIuzF,EAAO/1F,UAErBkkD,GAAKvhD,EAAK3C,QAFmBwC,IAAK,CAKtC,IAAIwzF,EAAQD,EAAOvzF,GACnB,GACmB,iBAAVwzF,GACNA,EAAMrxD,SAAoC,iBAAlBqxD,EAAMrxD,QAC/B,CACA,IAAI7vB,EAAInS,EAAKuhD,GACT5yB,EAAIi7F,EAAI2c,WAAWp0H,GACnB0W,EAAqB,iBAAVwqE,EAAqBA,EAAQA,EAAMrxD,QAC9CvH,EAAc+kG,EAAehnF,EAAUrmC,GACvCnV,EAAQ6rB,EAAE5rB,QAAQw9B,GACtB,GAAIz9B,GAAS,EAAG,GACZukD,EACF,IAAIt4B,EAASJ,EAAE6E,UAAU,EAAG1wB,GACxB0sF,EAAS,IAAIk/B,EAAMe,MACrBnxE,EACAowE,EAAM+W,SAAShxG,EAAGi7F,EAAIN,SACtB,YAAc9wE,EACd7pB,GAEE2xG,EAAQz3G,EAAE6E,UAAU1wB,EAAQy9B,EAAYp9B,QACxCwvH,EAAc,GACd5jG,GACF4jG,EAAYrvH,KAAKmE,MAAMkrH,EAAawT,EAAW,CAACp3G,KAElD4jG,EAAYrvH,KAAKksF,GACb42C,GACFzT,EAAYrvH,KAAKmE,MAAMkrH,EAAawT,EAAW,CAACC,KAE7B,iBAAVjtC,EACTD,EAAOjrF,OAAOxG,MAAMyxF,EAAQ,CAACvzF,EAAG,GAAG8F,OAAOknH,IAE1Cx5B,EAAMrxD,QAAU6qF,CAEpB,CACF,MACEx5B,EAAMrxD,SAGNq+F,EAAWhtC,EAAMrxD,QAErB,CACA,OAAOoxD,CACT,CACAitC,CAAWzW,EAAIx2B,OArDf,CAsDF,IAGL,CAlHA,CAkHEw1B,EACL,CAvHAtpH,EAAO7C,QAAU64H,EACjBA,EAAiBhzH,YAAc,mBAC/BgzH,EAAiBnL,QAAU,mCCC3B,SAASnB,EAAOJ,GACdA,EAAMW,UAAUP,OAAS,CACvBpqE,QAAS,CACP+4D,QAAS,8BACT2S,QAAQ,GAEVzrE,OAAQ,CACN84D,QAAS,iBACT2S,QAAQ,GAEVxrE,QAAS,CAEP64D,QACE,uHACF2S,QAAQ,EACRC,OAAQ,CACN,kBAAmB,CACjB5S,QAAS,6BACTuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,MAEVn7G,OAAQ,CACNuoG,QAAS,kBACT2S,QAAQ,GAEVtrE,YAAa,eACb,cAAe,YACfhgD,KAAM,eAGV+/C,MAAO,CACL44D,QAAS,4BACT2S,QAAQ,GAEVnjH,IAAK,CACHwwG,QACE,uHACF2S,QAAQ,EACRC,OAAQ,CACNpjH,IAAK,CACHwwG,QAAS,iBACT4S,OAAQ,CACNvrE,YAAa,QACbuxE,UAAW,iBAGf,eAAgB,GAChB,aAAc,CACZ5Y,QAAS,qCACT4S,OAAQ,CACNvrE,YAAa,CACX,CACE24D,QAAS,KACT/qF,MAAO,eAET,SAINoyB,YAAa,OACb,YAAa,CACX24D,QAAS,YACT4S,OAAQ,CACNgG,UAAW,mBAKnBhxE,OAAQ,CACN,CACEo4D,QAAS,kBACT/qF,MAAO,gBAET,uBAGJg8F,EAAMW,UAAUP,OAAY,IAAEuB,OAAO,cAAcA,OAAe,OAChE3B,EAAMW,UAAUP,OAAe,OACjCJ,EAAMW,UAAUP,OAAgB,QAAEuB,OAAO,mBAAmBA,OAC1D3B,EAAMW,UAAUP,OAClBJ,EAAMkB,MAAMr7G,IAAI,QAAQ,SAAUm7G,GACf,WAAbA,EAAI/gH,OACN+gH,EAAI1Z,WAAkB,MAAI0Z,EAAI5nF,QAAQtlC,MAAM0M,QAAQ,QAAS,KAEjE,IACAzL,OAAOK,eAAe4qH,EAAMW,UAAUP,OAAO7hH,IAAK,aAAc,CAY9DzK,MAAO,SAAoBq7C,EAAS7U,GAClC,IAAIsjG,EAAsB,CAAC,EAC3BA,EAAoB,YAActjG,GAAQ,CACxCy0E,QAAS,oCACTuS,YAAY,EACZK,OAAQ3B,EAAMW,UAAUrmF,IAE1BsjG,EAA2B,MAAI,uBAC/B,IAAIjc,EAAS,CACX,iBAAkB,CAChB5S,QAAS,4BACT4S,OAAQic,IAGZjc,EAAO,YAAcrnF,GAAQ,CAC3By0E,QAAS,UACT4S,OAAQ3B,EAAMW,UAAUrmF,IAE1B,IAAI9xB,EAAM,CAAC,EACXA,EAAI2mC,GAAW,CACb4/D,QAAS72G,OACP,wFAAwFY,OAAO0H,QAC7F,OACA,WACE,OAAO2uC,CACT,IAEF,KAEFmyE,YAAY,EACZI,QAAQ,EACRC,OAAQA,GAEV3B,EAAMW,UAAUh3B,aAAa,SAAU,QAASnhF,EAClD,IAEFzT,OAAOK,eAAe4qH,EAAMW,UAAUP,OAAO7hH,IAAK,eAAgB,CAYhEzK,MAAO,SAAU+pI,EAAUvjG,GACzB0lF,EAAMW,UAAUP,OAAO7hH,IAAIojH,OAAO,gBAAgB/sH,KAAK,CACrDm6G,QAAS72G,OACP,aAAaY,OACX,MACA+kI,EACA,IACA,iDAAiD/kI,OACnD,KAEFwoH,YAAY,EACZK,OAAQ,CACN,YAAa,WACb,aAAc,CACZ5S,QAAS,WACT4S,OAAQ,CACN7tH,MAAO,CACLi7G,QAAS,yCACTuS,YAAY,EACZt9F,MAAO,CAACsW,EAAM,YAAcA,GAC5BqnF,OAAQ3B,EAAMW,UAAUrmF,IAE1B8b,YAAa,CACX,CACE24D,QAAS,KACT/qF,MAAO,eAET,WAMZ,IAEFg8F,EAAMW,UAAU9hB,KAAOmhB,EAAMW,UAAUP,OACvCJ,EAAMW,UAAUmd,OAAS9d,EAAMW,UAAUP,OACzCJ,EAAMW,UAAU9kD,IAAMmkD,EAAMW,UAAUP,OACtCJ,EAAMW,UAAUxc,IAAM6b,EAAMW,UAAUhqH,OAAO,SAAU,CAAC,GACxDqpH,EAAMW,UAAUod,KAAO/d,EAAMW,UAAUxc,IACvC6b,EAAMW,UAAUuN,KAAOlO,EAAMW,UAAUxc,IACvC6b,EAAMW,UAAUqd,IAAMhe,EAAMW,UAAUxc,GACxC,CA/LAztG,EAAO7C,QAAUusH,EACjBA,EAAO1mH,YAAc,SACrB0mH,EAAOmB,QAAU,CAAC,OAAQ,SAAU,MAAO,MAAO,OAAQ,OAAQ,sCCClE,SAAS0c,EAAOje,GACdA,EAAMW,UAAUsd,OAAS,CACvBjoF,QAAS,CAAC,iBAAkB,OAC5BxvC,OAAQ,CACNuoG,QAAS,uBACT2S,QAAQ,GAGVlpH,OAAQ,iEACRu+C,QACE,8HACFD,SAAU,uBACVJ,SAAU,0CACVN,YAAa,uBAEjB,CAlBA1/C,EAAO7C,QAAUoqI,EACjBA,EAAOvkI,YAAc,SACrBukI,EAAO1c,QAAU,mCCCjB,SAAS2c,EAAUle,IAChB,SAAWA,GACV,IAAI2C,EACF,2SACF3C,EAAMW,UAAUud,UAAY,CAC1BloF,QAAS,CACP+4D,QAAS,8BACT2S,QAAQ,GAEVl7G,OAAQ,CACNuoG,QAAS,iDACTuS,YAAY,EACZI,QAAQ,GAEVj5G,KAAM,CACJsmG,QAAS,4BACT2S,QAAQ,EACR19F,MAAO,UAET,gBAAiB,CACf+qF,QAAS72G,OACP,OACG,IAAIY,OACH,IACA,mBAAmBA,OACnB,IACA,6FACGA,OANP,cASE6pH,EAAS7pH,OACT,IACA,cAAcA,OAXhB,kBAcI6pH,EAAS7pH,OACT,IACA,SAASA,OACT,IACA,YAAYA,OACZ,IACA,aAAaA,OACf,KACF,MAEFwoH,YAAY,EACZI,QAAQ,EACR19F,MAAO,YAET,sBAAuB,CACrB+qF,QAAS,+BACTuS,YAAY,EACZt9F,MAAO,YAETghG,SAAU,CACRjW,QAAS,oBACT/qF,MAAO,aAET+yB,QAAS4rE,EACT1nG,QAAS,qBACT80C,KAAM,CACJg/C,QACE,sGACFuS,YAAY,EACZt9F,MAAO,UAETxrB,OAAQ,CACN,CACEu2G,QACE,wFACFuS,YAAY,GAEd,gBAEFjrE,SAAU,0DACVj8C,MAAO,CACL20G,QAAS,+DACT/qF,MAAO,YAET0yB,SAAU,6BACVN,YAAa,8BAEhB,CAjFA,CAiFE4pE,EACL,CAtFAtpH,EAAO7C,QAAUqqI,EACjBA,EAAUxkI,YAAc,YACxBwkI,EAAU3c,QAAU,mCCCpB,SAAS4c,EAAIne,GACXA,EAAMW,UAAUwd,IAAM,CACpBnoF,QAAS,SACT/d,KAAM,CACJ82E,QAAS,wBACT2S,QAAQ,EACR19F,MAAO,SACP29F,OAAQ,CACN8E,UAAW,CACT1X,QAAS,QACT/qF,MAAO,iBAIbxd,OAAQ,CACNuoG,QAAS,wBACT2S,QAAQ,GAEV9qE,SAAU,QACVp+C,OAAQ,4CACR4lI,KAAM,CACJrvB,QAAS,cACT/qF,MAAO,YAET+yB,QACE,uHACFD,SACE,2ufACFJ,SAAU,CACR,8CACA,CAEEq4D,QAAS,iBACTuS,YAAY,GAEd,CAEEvS,QAAS,iBACTuS,YAAY,IAGhBlrE,YAAa,yBAEf4pE,EAAMW,UAAUwd,IAAU,KAAExc,OAAOzlH,KAAO8jH,EAAMW,UAAUwd,GAC5D,CA/CAznI,EAAO7C,QAAUsqI,EACjBA,EAAIzkI,YAAc,MAClBykI,EAAI5c,QAAU,mCCCd,SAAS8c,EAAQre,GACfA,EAAMW,UAAU0d,QAAU,CACxBroF,QAAS,CACP+4D,QAAS,OACT2S,QAAQ,GAEVvmH,MAAO,CACL4zG,QACE,sEACFuS,YAAY,EACZK,OAAQ,CACN7mF,SAAU,wBACV4b,SAAU,IACVN,YAAa,MAGjB,oBAAqB,CACnB24D,QACE,4IACFuS,YAAY,EACZI,QAAQ,EACRC,OAAQ,CACNuU,MAAO,CACLnnB,QAAS,8BACT/qF,MAAO,YAETrL,MAAO,CACLo2F,QAAS,qCACTuS,YAAY,EACZt9F,MAAO,YAET,aAAc,CACZ+qF,QAAS,OACT/qF,MAAO,CAAC,QAAS,eAIvBkyG,MAAO,CAML,CAEEnnB,QAAS,uDACTuS,YAAY,EACZt9F,MAAO,YAET,CAGE+qF,QACE,qGACFuS,YAAY,EACZt9F,MAAO,YAET,CAEE+qF,QACE,mEACFuS,YAAY,EACZt9F,MAAO,YAET,CAEE+qF,QACE,uFACFuS,YAAY,EACZt9F,MAAO,aAGXrL,MAAO,CACLo2F,QAAS,0CACTuS,YAAY,EACZI,QAAQ,EACR19F,MAAO,YAET0P,KAAM,CACJq7E,QAAS,gEACT/qF,MAAO,UAETxd,OAAQ,CACNuoG,QAAS,cACT2S,QAAQ,GAEVY,WAAY,CACVvT,QACE,gGACF/qF,MAAO,aAET+yB,QAAS,CAEP,CACEg4D,QACE,yOACFuS,YAAY,EACZI,QAAQ,GAEV,CACE3S,QACE,2KACFuS,YAAY,EACZI,QAAQ,IAGZ/qE,OAAQ,cACRD,SAAU,CACRq4D,QAAS,gCACTuS,YAAY,GAEdlrE,YAAa,UAEjB,CApHA1/C,EAAO7C,QAAUwqI,EACjBA,EAAQ3kI,YAAc,UACtB2kI,EAAQ9c,QAAU,mCCClB,SAAS+c,EAAMte,GACbA,EAAMW,UAAU2d,MAAQ,CACtBtoF,QAAS,OACTe,QACE,s0BACF+uE,UAAW,CACT/W,QAAS,cACT/qF,MAAO,YAET4yB,SAAU,aACVp+C,OAAQ,gBACRk+C,SAAU,mBACVN,YAAa,wBAEjB,CAjBA1/C,EAAO7C,QAAUyqI,EACjBA,EAAM5kI,YAAc,QACpB4kI,EAAM/c,QAAU,mCCChB,SAASgd,EAAQve,IACd,SAAWA,GACV,IAAIwe,EAAY,CAEd,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,UACA,QACA,QACA,cACA,OACA,SACA,QACA,SACA,iBACA,aACA,QACA,cACA,OACA,aACA,QACA,gBACA,cACA,gBACA,cACA,WACA,aACA,QACA,SACA,eACA,OACA,OACA,OACA,OACA,UACA,OACA,eACA,SACA,YACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,OACA,aACA,UACA,cACA,aACA,SACA,aACA,SACA,WACA,eACA,SACA,cACA,SACA,qBACA,gBACA,UACA,SACA,SACA,OACA,kBACA,WACA,UACA,eACA,eACA,UACA,OACA,QACA,QACA,eACA,aACA,SACA,UACA,mBACA,OACA,eACA,QACA,SACA,OACA,YACA,mBACA,OACA,kBACA,eACA,iBACA,QACA,SACA,QACA,SACA,SACA,OACA,cACA,YACA,QACA,OACA,UACA,gBACA,QACA,WACA,OACA,iBACA,eACA,kBACA,gBACA,cACA,aACA,aACA,oBACA,UACA,MACA,OACA,UACA,SACA,SACA,YACA,MACA,OACA,QACA,UACA,MACA,gBACA,gBACA,aACA,WACA,YACA,gBACA,WACA,eACA,QACA,QACA,OACA,WACA,MACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,gBACA,QACA,OACA,eACA,UACA,OACA,SACA,YACA,MACA,OACA,iBACA,MACA,OACA,QACA,oBACA,SACA,UACA,aACA,gBACA,cACA,cACA,cACA,gBACA,SACA,SACA,UACA,iBACA,aACA,mBACA,eACA,YACA,QACA,OACA,SACA,SACA,QACA,aACA,cACA,cACA,eACA,YACA,UACA,eACA,YACA,YACA,OACA,UACA,OACA,UACA,UACA,aACA,YACA,SACA,UACA,cACA,YACA,WACA,WACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,WACA,YACA,gBACA,aACA,YACA,QACA,cACA,YACA,cACA,WACA,WACA,QACA,OACA,aACA,OACA,WACA,SACA,aACA,eACA,YAmBEC,EAAkB,OAHtBD,EAAYA,EAAUxhI,KAAI,SAAU05C,GAClC,OAAOA,EAASl2C,QAAQ,IAAK,MAC/B,KACwCijB,KAAK,KAAO,OACpDu8F,EAAMW,UAAU4d,QAAUve,EAAMW,UAAUh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","sources":["webpack://hpe-dev-portal/./node_modules/comma-separated-tokens/index.js","webpack://hpe-dev-portal/./node_modules/extend/index.js","webpack://hpe-dev-portal/./node_modules/formik/node_modules/react-fast-compare/index.js","webpack://hpe-dev-portal/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/Github.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/Download.js","webpack://hpe-dev-portal/./src/components/Aside/index.js","webpack://hpe-dev-portal/./src/components/Content/index.js","webpack://hpe-dev-portal/./node_modules/formik/node_modules/deepmerge/dist/es.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_freeGlobal.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_root.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_Symbol.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getRawTag.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_objectToString.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseGetTag.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_overArg.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getPrototype.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isObjectLike.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isPlainObject.js","webpack://hpe-dev-portal/./node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_listCacheClear.js","webpack://hpe-dev-portal/./node_modules/lodash-es/eq.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_assocIndexOf.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_listCacheDelete.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_listCacheGet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_listCacheHas.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_listCacheSet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_ListCache.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_stackClear.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_stackDelete.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_stackGet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_stackHas.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isObject.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isFunction.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_isMasked.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_coreJsData.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_toSource.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseIsNative.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getValue.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getNative.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_Map.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_nativeCreate.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_hashClear.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_hashDelete.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_hashGet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_hashHas.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_hashSet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_Hash.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_mapCacheClear.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_isKeyable.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getMapData.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_mapCacheDelete.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_mapCacheGet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_mapCacheHas.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_mapCacheSet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_MapCache.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_stackSet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_Stack.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_arrayEach.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_defineProperty.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseAssignValue.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_assignValue.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_copyObject.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseTimes.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseIsArguments.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isArguments.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isArray.js","webpack://hpe-dev-portal/./node_modules/lodash-es/stubFalse.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isBuffer.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_isIndex.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isLength.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseUnary.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_nodeUtil.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isTypedArray.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_isPrototype.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_nativeKeys.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseKeys.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isArrayLike.js","webpack://hpe-dev-portal/./node_modules/lodash-es/keys.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseAssign.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_nativeKeysIn.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseKeysIn.js","webpack://hpe-dev-portal/./node_modules/lodash-es/keysIn.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseAssignIn.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_cloneBuffer.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_copyArray.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_arrayFilter.js","webpack://hpe-dev-portal/./node_modules/lodash-es/stubArray.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getSymbols.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_copySymbols.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_arrayPush.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getSymbolsIn.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_copySymbolsIn.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getAllKeys.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getAllKeysIn.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_DataView.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_Promise.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_Set.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_WeakMap.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_getTag.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_initCloneArray.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_Uint8Array.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_cloneDataView.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_cloneRegExp.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_cloneSymbol.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_cloneTypedArray.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_initCloneByTag.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseCreate.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_initCloneObject.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseIsMap.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isMap.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseIsSet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isSet.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseClone.js","webpack://hpe-dev-portal/./node_modules/lodash-es/clone.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_arrayMap.js","webpack://hpe-dev-portal/./node_modules/lodash-es/isSymbol.js","webpack://hpe-dev-portal/./node_modules/lodash-es/memoize.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_memoizeCapped.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_stringToPath.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_toKey.js","webpack://hpe-dev-portal/./node_modules/lodash-es/_baseToString.js","webpack://hpe-dev-portal/./node_modules/lodash-es/toString.js","webpack://hpe-dev-portal/./node_modules/lodash-es/toPath.js","webpack://hpe-dev-portal/./node_modules/lodash-es/cloneDeep.js","webpack://hpe-dev-portal/./node_modules/formik/dist/formik.esm.js","webpack://hpe-dev-portal/./node_modules/yup/index.esm.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/ChatOption.js","webpack://hpe-dev-portal/./src/components/Feedback/FeedbackButton/FeedbackButton.js","webpack://hpe-dev-portal/./src/components/Feedback/FeedbackHeader/FeedbackHeader.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TextArea/StyledTextArea.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TextArea/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TextArea/TextArea.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/FormNextLink.js","webpack://hpe-dev-portal/./src/components/Feedback/FeedbackBody/FeedbackBody.js","webpack://hpe-dev-portal/./src/components/Feedback/FeedbackForm/FeedbackForm.js","webpack://hpe-dev-portal/./src/components/Feedback/index.js","webpack://hpe-dev-portal/./src/components/Footer/index.js","webpack://hpe-dev-portal/./src/components/Hero/index.js","webpack://hpe-dev-portal/./src/components/Header/UserMenu.js","webpack://hpe-dev-portal/./src/components/Header/index.js","webpack://hpe-dev-portal/./src/components/HighlightedText/index.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Main/Main.js","webpack://hpe-dev-portal/./src/components/Layout/theme.js","webpack://hpe-dev-portal/./src/components/Layout/index.js","webpack://hpe-dev-portal/./src/components/Seo/index.js","webpack://hpe-dev-portal/./src/components/Share/index.js","webpack://hpe-dev-portal/./src/components/PageDescription/index.js","webpack://hpe-dev-portal/./src/components/EventCard/index.js","webpack://hpe-dev-portal/./src/components/ResponsiveGrid/index.js","webpack://hpe-dev-portal/./src/components/PlatformCard/index.js","webpack://hpe-dev-portal/./src/components/OpenSourceCard/index.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/Star.js","webpack://hpe-dev-portal/./src/components/NewsletterCard/index.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CardBody/CardBody.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Footer/Footer.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CardFooter/CardFooter.js","webpack://hpe-dev-portal/./src/components/CommunityCard/index.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Menu/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Menu/Menu.js","webpack://hpe-dev-portal/./src/components/BlogTabs/index.js","webpack://hpe-dev-portal/./src/components/BlogCard/index.js","webpack://hpe-dev-portal/./src/components/BlogTabContent/index.js","webpack://hpe-dev-portal/./src/components/Questions/index.js","webpack://hpe-dev-portal/./src/components/Card/index.js","webpack://hpe-dev-portal/./src/components/Link/index.js","webpack://hpe-dev-portal/./node_modules/react-syntax-highlighter/dist/esm/create-element.js","webpack://hpe-dev-portal/./node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","webpack://hpe-dev-portal/./node_modules/react-syntax-highlighter/dist/esm/highlight.js","webpack://hpe-dev-portal/./node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","webpack://hpe-dev-portal/./node_modules/react-syntax-highlighter/dist/esm/prism.js","webpack://hpe-dev-portal/./node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","webpack://hpe-dev-portal/./src/components/Markdown/markdownTheme.js","webpack://hpe-dev-portal/./node_modules/markdown-to-jsx/dist/index.modern.js","webpack://hpe-dev-portal/./src/components/Markdown/Markdown.js","webpack://hpe-dev-portal/./src/components/Markdown/index.js","webpack://hpe-dev-portal/./src/hooks/use-params/index.js","webpack://hpe-dev-portal/./src/containers/SearchContainer/index.js","webpack://hpe-dev-portal/./src/containers/EmailCapture/index.js","webpack://hpe-dev-portal/./src/hooks/use-local-storage/index.js","webpack://hpe-dev-portal/./src/hooks/use-site-metadata/index.js","webpack://hpe-dev-portal/./src/services/auth.service.js","webpack://hpe-dev-portal/./node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://hpe-dev-portal/./node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://hpe-dev-portal/./node_modules/gatsby/node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://hpe-dev-portal/./node_modules/gatsby/node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://hpe-dev-portal/./node_modules/gatsby/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://hpe-dev-portal/./node_modules/gatsby/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://hpe-dev-portal/./node_modules/gatsby/node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://hpe-dev-portal/./node_modules/gatsby/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/StyledIcon.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/default-props.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/default-props.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/themes/base.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/StyledIcon.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/FormDown.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/FormPreviousLink.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/Link.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/LinkNext.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/Linkedin.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/Menu.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/Search.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/icons/Twitter.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/es6/utils.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Actions.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Ascending.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/AssistListening.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Blank.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/CircleAlert.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/CircleInformation.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/ClosedCaption.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Descending.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Expand.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/FormClose.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/FormDown.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/FormNext.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/FormPin.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/FormPrevious.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/FormUp.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Next.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Pause.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Play.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Previous.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/StatusCriticalSmall.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/StatusGoodSmall.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/StatusUnknownSmall.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/StatusWarningSmall.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Subtract.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Unsorted.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/Volume.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/icons/VolumeLow.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/themes/base.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/themes/index.js","webpack://hpe-dev-portal/./node_modules/grommet-icons/utils.js","webpack://hpe-dev-portal/./node_modules/grommet-theme-hpe/dist/es6/index.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Anchor/StyledAnchor.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Anchor/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Anchor/Anchor.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Avatar/StyledAvatar.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Avatar/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Avatar/Avatar.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Box/StyledBox.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/animation.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Box/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Box/Box.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Button/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Button/Badge.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Button/StyledButton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Button/StyledButtonKind.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Button/Button.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Card/Card.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CardHeader/CardHeader.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CheckBox/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CheckBox/StyledCheckBox.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CheckBox/CheckBox.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Drop/StyledDrop.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Drop/DropContainer.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/general-prop-types.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Drop/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Drop/Drop.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/DropButton/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/DropButton/DropButton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/FocusedContainer.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Form/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Form/Form.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Form/FormContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CheckBoxGroup/StyledCheckBoxGroup.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CheckBoxGroup/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/CheckBoxGroup/CheckBoxGroup.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/RadioButton/StyledRadioButton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/RadioButton/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/RadioButton/RadioButton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/RadioButtonGroup/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/RadioButtonGroup/RadioButtonGroup.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/FormField/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/FormField/FormField.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Grid/StyledGrid.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Grid/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Grid/Grid.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Grommet/StyledGrommet.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Grommet/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Grommet/Grommet.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Header/Header.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Heading/StyledHeading.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Heading/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Heading/HeadingSkeleton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Heading/Heading.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Image/StyledImage.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Image/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Image/Image.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/InfiniteScroll/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/InfiniteScroll/InfiniteScroll.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Keyboard/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Keyboard/Keyboard.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Layer/StyledLayer.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Layer/LayerContainer.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Layer/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Layer/Layer.js","webpack://hpe-dev-portal/./node_modules/grommet/node_modules/markdown-to-jsx/dist/index.modern.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Markdown/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Markdown/Markdown.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Nav/Nav.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Paragraph/StyledParagraph.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Paragraph/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Paragraph/ParagraphSkeleton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Paragraph/Paragraph.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Skeleton/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Skeleton/StyledSkeleton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Skeleton/Skeleton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Skeleton/SkeletonContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Stack/StyledStack.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Stack/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Stack/Stack.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tab/StyledTab.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tab/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tab/Tab.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Table/StyledTable.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Table/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Table/Table.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Table/TableContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TableBody/TableBody.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TableCell/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TableCell/TableCell.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TableFooter/TableFooter.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TableHeader/TableHeader.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TableRow/TableRow.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tabs/StyledTabs.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tabs/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tabs/Tabs.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tabs/TabsContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Text/StyledText.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Text/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Text/TextSkeleton.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Text/Text.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Text/TextContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TextInput/StyledTextInput.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TextInput/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/TextInput/TextInput.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tip/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/components/Tip/Tip.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/AnalyticsContext/AnalyticsContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/AnnounceContext/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/AnnounceContext/AnnounceContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/ContainerTargetContext/ContainerTargetContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/MessageContext/MessageContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/OptionsContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/ResponsiveContext/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/ResponsiveContext/ResponsiveContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/RootsContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/ThemeContext/propTypes.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/contexts/ThemeContext/ThemeContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/default-props.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/themes/base.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/DOM.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/PortalContext.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/background.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/border.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/colors.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/icon.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/mixins.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/object.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/refs.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/responsive.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/styles.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/use-isomorphic-layout-effect.js","webpack://hpe-dev-portal/./node_modules/grommet/es6/utils/use-keyboard.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/DOM.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/PortalContext.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/animation.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/background.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/border.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/colors.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/dates.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/graphics.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/icon.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/index.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/mixins.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/object.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/pagination.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/refs.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/responsive.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/styles.js","webpack://hpe-dev-portal/./node_modules/grommet/utils/use-keyboard.js","webpack://hpe-dev-portal/./node_modules/hast-util-parse-selector/index.js","webpack://hpe-dev-portal/./node_modules/hastscript/factory.js","webpack://hpe-dev-portal/./node_modules/hastscript/html.js","webpack://hpe-dev-portal/./node_modules/hastscript/index.js","webpack://hpe-dev-portal/./node_modules/is-alphabetical/index.js","webpack://hpe-dev-portal/./node_modules/is-alphanumerical/index.js","webpack://hpe-dev-portal/./node_modules/is-buffer/index.js","webpack://hpe-dev-portal/./node_modules/is-decimal/index.js","webpack://hpe-dev-portal/./node_modules/is-hexadecimal/index.js","webpack://hpe-dev-portal/./node_modules/parse-entities/decode-entity.browser.js","webpack://hpe-dev-portal/./node_modules/parse-entities/index.js","webpack://hpe-dev-portal/./node_modules/property-expr/index.js","webpack://hpe-dev-portal/./node_modules/property-information/find.js","webpack://hpe-dev-portal/./node_modules/property-information/html.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/aria.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/html.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/util/create.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/util/defined-info.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/util/info.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/util/merge.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/util/schema.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/util/types.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/xlink.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/xml.js","webpack://hpe-dev-portal/./node_modules/property-information/lib/xmlns.js","webpack://hpe-dev-portal/./node_modules/property-information/normalize.js","webpack://hpe-dev-portal/./node_modules/react-fast-compare/index.js","webpack://hpe-dev-portal/./node_modules/react-helmet/es/Helmet.js","webpack://hpe-dev-portal/./node_modules/react-side-effect/lib/index.js","webpack://hpe-dev-portal/./node_modules/refractor/core.js","webpack://hpe-dev-portal/./node_modules/refractor/index.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/abap.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/abnf.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/actionscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ada.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/agda.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/al.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/antlr4.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/apacheconf.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/apex.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/apl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/applescript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/aql.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/arduino.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/arff.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/asciidoc.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/asm6502.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/asmatmel.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/aspnet.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/autohotkey.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/autoit.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/avisynth.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/avro-idl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/bash.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/basic.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/batch.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/bbcode.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/bicep.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/birb.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/bison.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/bnf.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/brainfuck.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/brightscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/bro.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/bsl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/c.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/cfscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/chaiscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/cil.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/clike.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/clojure.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/cmake.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/cobol.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/coffeescript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/concurnas.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/coq.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/cpp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/crystal.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/csharp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/cshtml.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/csp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/css-extras.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/css.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/csv.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/cypher.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/d.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/dart.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/dataweave.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/dax.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/dhall.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/diff.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/django.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/dns-zone-file.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/docker.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/dot.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ebnf.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/editorconfig.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/eiffel.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ejs.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/elixir.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/elm.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/erb.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/erlang.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/etlua.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/excel-formula.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/factor.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/false.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/firestore-security-rules.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/flow.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/fortran.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/fsharp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ftl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/gap.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/gcode.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/gdscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/gedcom.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/gherkin.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/git.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/glsl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/gml.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/gn.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/go-module.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/go.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/graphql.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/groovy.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/haml.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/handlebars.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/haskell.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/haxe.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/hcl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/hlsl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/hoon.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/hpkp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/hsts.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/http.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ichigojam.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/icon.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/icu-message-format.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/idris.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/iecst.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ignore.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/inform7.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ini.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/io.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/j.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/java.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/javadoc.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/javadoclike.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/javascript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/javastacktrace.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/jexl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/jolie.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/jq.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/js-extras.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/js-templates.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/jsdoc.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/json.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/json5.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/jsonp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/jsstacktrace.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/jsx.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/julia.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/keepalived.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/keyman.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/kotlin.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/kumir.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/kusto.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/latex.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/latte.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/less.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/lilypond.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/liquid.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/lisp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/livescript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/llvm.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/log.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/lolcode.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/lua.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/magma.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/makefile.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/markdown.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/markup-templating.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/markup.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/matlab.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/maxscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/mel.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/mermaid.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/mizar.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/mongodb.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/monkey.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/moonscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/n1ql.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/n4js.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/nand2tetris-hdl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/naniscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/nasm.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/neon.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/nevod.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/nginx.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/nim.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/nix.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/nsis.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/objectivec.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ocaml.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/opencl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/openqasm.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/oz.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/parigp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/parser.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/pascal.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/pascaligo.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/pcaxis.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/peoplecode.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/perl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/php-extras.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/php.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/phpdoc.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/plsql.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/powerquery.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/powershell.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/processing.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/prolog.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/promql.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/properties.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/protobuf.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/psl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/pug.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/puppet.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/pure.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/purebasic.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/purescript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/python.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/q.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/qml.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/qore.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/qsharp.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/r.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/racket.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/reason.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/regex.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/rego.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/renpy.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/rest.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/rip.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/roboconf.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/robotframework.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/ruby.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/rust.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/sas.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/sass.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/scala.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/scheme.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/scss.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/shell-session.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/smali.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/smalltalk.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/smarty.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/sml.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/solidity.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/solution-file.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/soy.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/sparql.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/splunk-spl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/sqf.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/sql.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/squirrel.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/stan.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/stylus.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/swift.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/systemd.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/t4-cs.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/t4-templating.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/t4-vb.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/tap.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/tcl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/textile.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/toml.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/tremor.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/tsx.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/tt2.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/turtle.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/twig.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/typescript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/typoscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/unrealscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/uorazor.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/uri.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/v.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/vala.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/vbnet.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/velocity.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/verilog.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/vhdl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/vim.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/visual-basic.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/warpscript.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/wasm.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/web-idl.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/wiki.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/wolfram.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/wren.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/xeora.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/xml-doc.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/xojo.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/xquery.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/yaml.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/yang.js","webpack://hpe-dev-portal/./node_modules/refractor/lang/zig.js","webpack://hpe-dev-portal/./node_modules/refractor/node_modules/prismjs/components/prism-core.js","webpack://hpe-dev-portal/./node_modules/space-separated-tokens/index.js","webpack://hpe-dev-portal/./node_modules/tiny-case/index.js","webpack://hpe-dev-portal/./node_modules/toposort/index.js","webpack://hpe-dev-portal/./node_modules/xtend/immutable.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/bind.js","webpack://hpe-dev-portal/./node_modules/axios/lib/utils.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/AxiosError.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/toFormData.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/buildURL.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/InterceptorManager.js","webpack://hpe-dev-portal/./node_modules/axios/lib/defaults/transitional.js","webpack://hpe-dev-portal/./node_modules/axios/lib/platform/browser/index.js","webpack://hpe-dev-portal/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://hpe-dev-portal/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://hpe-dev-portal/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://hpe-dev-portal/./node_modules/axios/lib/platform/common/utils.js","webpack://hpe-dev-portal/./node_modules/axios/lib/platform/index.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://hpe-dev-portal/./node_modules/axios/lib/defaults/index.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/transformData.js","webpack://hpe-dev-portal/./node_modules/axios/lib/cancel/isCancel.js","webpack://hpe-dev-portal/./node_modules/axios/lib/cancel/CanceledError.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/cookies.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/buildFullPath.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/combineURLs.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/speedometer.js","webpack://hpe-dev-portal/./node_modules/axios/lib/adapters/xhr.js","webpack://hpe-dev-portal/./node_modules/axios/lib/adapters/adapters.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/null.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/settle.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/dispatchRequest.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/mergeConfig.js","webpack://hpe-dev-portal/./node_modules/axios/lib/env/data.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/validator.js","webpack://hpe-dev-portal/./node_modules/axios/lib/core/Axios.js","webpack://hpe-dev-portal/./node_modules/axios/lib/cancel/CancelToken.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://hpe-dev-portal/./node_modules/axios/lib/axios.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/spread.js","webpack://hpe-dev-portal/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/bail/index.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/is-plain-obj/index.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/trough/lib/index.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/unist-util-stringify-position/lib/index.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/vfile-message/lib/index.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/vfile/lib/minpath.browser.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/vfile/lib/minproc.browser.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/vfile/lib/minurl.shared.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/vfile/lib/minurl.browser.js","webpack://hpe-dev-portal/./node_modules/unified/node_modules/vfile/lib/index.js","webpack://hpe-dev-portal/./node_modules/unified/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-string/lib/index.js","webpack://hpe-dev-portal/./node_modules/micromark-util-chunked/index.js","webpack://hpe-dev-portal/./node_modules/micromark-util-combine-extensions/index.js","webpack://hpe-dev-portal/./node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","webpack://hpe-dev-portal/./node_modules/micromark-util-character/index.js","webpack://hpe-dev-portal/./node_modules/micromark-factory-space/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/initialize/content.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/initialize/document.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/blank-line.js","webpack://hpe-dev-portal/./node_modules/micromark-util-subtokenize/index.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/content.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/initialize/flow.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/initialize/text.js","webpack://hpe-dev-portal/./node_modules/micromark-util-resolve-all/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/create-tokenizer.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/list.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/block-quote.js","webpack://hpe-dev-portal/./node_modules/micromark-factory-destination/index.js","webpack://hpe-dev-portal/./node_modules/micromark-factory-label/index.js","webpack://hpe-dev-portal/./node_modules/micromark-factory-title/index.js","webpack://hpe-dev-portal/./node_modules/micromark-factory-whitespace/index.js","webpack://hpe-dev-portal/./node_modules/micromark-util-normalize-identifier/index.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/definition.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/code-indented.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack://hpe-dev-portal/./node_modules/micromark-util-html-tag-name/index.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/html-flow.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack://hpe-dev-portal/./node_modules/decode-named-character-reference/index.dom.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/character-reference.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/character-escape.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/line-ending.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/label-end.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack://hpe-dev-portal/./node_modules/micromark-util-classify-character/index.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/attention.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/autolink.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/html-text.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack://hpe-dev-portal/./node_modules/micromark-core-commonmark/lib/code-text.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/constructs.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/parse.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/preprocess.js","webpack://hpe-dev-portal/./node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack://hpe-dev-portal/./node_modules/micromark-util-decode-string/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/unist-util-stringify-position/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-from-markdown/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/micromark/lib/postprocess.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/zwitch/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/configure.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/break.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/code.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-quote.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/unist-util-is/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/unist-util-visit-parents/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/unist-util-visit/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/html.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/image.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/link.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-rule.js","webpack://hpe-dev-portal/./node_modules/mdast-util-phrasing/node_modules/unist-util-is/lib/index.js","webpack://hpe-dev-portal/./node_modules/mdast-util-phrasing/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/strong.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-strong.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-fence.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/longest-streak/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/definition.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/heading.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/list.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered-other.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/list-item.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/root.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/text.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/join.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/unsafe.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/association.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/container-flow.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/safe.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/track.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","webpack://hpe-dev-portal/./node_modules/remark/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/remark-parse/lib/index.js","webpack://hpe-dev-portal/./node_modules/remark/node_modules/remark-stringify/lib/index.js","webpack://hpe-dev-portal/./node_modules/strip-markdown/lib/index.js"],"sourcesContent":["'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n var values = []\n var input = String(value || empty)\n var index = input.indexOf(comma)\n var lastIndex = 0\n var end = false\n var val\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n val = input.slice(lastIndex, index).trim()\n\n if (val || !end) {\n values.push(val)\n }\n\n lastIndex = index + 1\n index = input.indexOf(comma, lastIndex)\n }\n\n return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n var settings = options || {}\n var left = settings.padLeft === false ? empty : space\n var right = settings.padRight ? space : empty\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === empty) {\n values = values.concat(empty)\n }\n\n return values.join(right + comma + left).trim()\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","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar Github = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Github\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#333\",\n fillRule: \"evenodd\",\n d: \"M11.999 1C5.926 1 1 5.925 1 12c0 4.86 3.152 8.983 7.523 10.437.55.102.75-.238.75-.53 0-.26-.009-.952-.014-1.87-3.06.664-3.706-1.475-3.706-1.475-.5-1.27-1.221-1.61-1.221-1.61-.999-.681.075-.668.075-.668 1.105.078 1.685 1.134 1.685 1.134.981 1.68 2.575 1.195 3.202.914.1-.71.384-1.195.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.428-2.183 1.132-2.952-.114-.278-.491-1.397.108-2.91 0 0 .923-.297 3.025 1.127A10.536 10.536 0 0 1 12 6.32a10.49 10.49 0 0 1 2.754.37c2.1-1.424 3.022-1.128 3.022-1.128.6 1.514.223 2.633.11 2.911.705.769 1.13 1.751 1.13 2.952 0 4.226-2.572 5.156-5.022 5.428.395.34.747 1.01.747 2.037 0 1.47-.014 2.657-.014 3.017 0 .295.199.637.756.53C19.851 20.979 23 16.859 23 12c0-6.075-4.926-11-11.001-11\"\n }));\n});\nGithub.displayName = 'Github';\nexport { Github };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar Download = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Download\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M1 17v6h22v-6M12 2v17m-7-7 7 7 7-7\"\n }));\n});\nDownload.displayName = 'Download';\nexport { Download };","/* eslint-disable max-classes-per-file */\nimport React from 'react';\nimport {\n Anchor,\n ThemeContext,\n Image as GrommetImage,\n Markdown as GrommetMarkdown,\n Paragraph,\n} from 'grommet';\nimport { Link as GatsbyLink } from 'gatsby';\nimport { Download, Github } from 'grommet-icons';\nimport PropTypes from 'prop-types';\n\nclass Image extends React.Component {\n render() {\n const { src } = this.props;\n if (src === 'Github') {\n return <Github color=\"brand\" />;\n }\n if (src === 'Download') {\n return <Download color=\"brand\" />;\n }\n return <GrommetImage {...this.props} />;\n }\n}\n\nImage.propTypes = {\n src: PropTypes.string,\n};\n\nclass Link extends React.Component {\n render() {\n const { href, theme } = this.props;\n const { color, fontWeight, textDecoration } = theme.anchor;\n const linkStyle = {\n color: color.light,\n fontWeight,\n textDecoration,\n };\n const internal = /^\\/(?!\\/)/.test(href);\n if (internal) {\n return (\n <GatsbyLink\n to={href}\n {...this.props}\n activeStyle={{ textDecoration: 'underline' }}\n style={linkStyle}\n />\n );\n }\n return <Anchor {...this.props} />;\n }\n}\n\nLink.propTypes = {\n href: PropTypes.string,\n theme: PropTypes.object,\n};\n\nconst components = {\n p: {\n component: Paragraph,\n props: {\n size: 'xlarge',\n style: {\n maxWidth: '100%',\n },\n },\n },\n img: {\n component: Image,\n props: {\n style: {},\n },\n },\n a: {\n component: (props) => (\n <ThemeContext.Consumer>\n {(theme) => <Link {...props} theme={theme} />}\n </ThemeContext.Consumer>\n ),\n },\n};\n\nclass Aside extends React.Component {\n render() {\n return <GrommetMarkdown components={components} {...this.props} />;\n }\n}\n\nexport default Aside;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from 'grommet';\n\nexport const Content = ({ children, pad, width, ...rest }) => (\n <Box\n width={width || 'xxlarge'}\n // pad={{ horizontal: 'medium', ...pad }}\n {...rest}\n >\n {children}\n </Box>\n);\n\nContent.propTypes = {\n children: PropTypes.node.isRequired,\n width: PropTypes.string,\n pad: PropTypes.shape({\n horizontal: PropTypes.string,\n vertical: PropTypes.string,\n }),\n};\n\nexport default Content;\n","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport { createContext, useContext, Children, useRef, useEffect, useState, useCallback, useMemo, useImperativeHandle, createElement, useLayoutEffect, forwardRef, Component } from 'react';\nimport isEqual from 'react-fast-compare';\nimport invariant from 'tiny-warning';\nimport clone from 'lodash-es/clone';\nimport toPath from 'lodash-es/toPath';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport cloneDeep from 'lodash-es/cloneDeep';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _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\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nvar FormikContext = /*#__PURE__*/createContext(undefined);\nFormikContext.displayName = 'FormikContext';\nvar FormikProvider = FormikContext.Provider;\nvar FormikConsumer = FormikContext.Consumer;\nfunction useFormikContext() {\n var formik = useContext(FormikContext);\n !!!formik ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Formik context is undefined, please verify you are calling useFormikContext() as child of a <Formik> component.\") : invariant(false) : void 0;\n return formik;\n}\n\n/** @private is the value an empty array? */\n\nvar isEmptyArray = function isEmptyArray(value) {\n return Array.isArray(value) && value.length === 0;\n};\n/** @private is the given object a Function? */\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n/** @private is the given object an Object? */\n\nvar isObject = function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n};\n/** @private is the given object an integer? */\n\nvar isInteger = function isInteger(obj) {\n return String(Math.floor(Number(obj))) === obj;\n};\n/** @private is the given object a string? */\n\nvar isString = function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n};\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\n\nvar isNaN$1 = function isNaN(obj) {\n return obj !== obj;\n};\n/** @private Does a React component have exactly 0 children? */\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return Children.count(children) === 0;\n};\n/** @private is the given object/value a promise? */\n\nvar isPromise = function isPromise(value) {\n return isObject(value) && isFunction(value.then);\n};\n/** @private is the given object/value a type of synthetic event? */\n\nvar isInputEvent = function isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n};\n/**\r\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\r\n * not safe to call document.activeElement if there is nothing focused.\r\n *\r\n * The activeElement will be null only if the document or document body is not\r\n * yet defined.\r\n *\r\n * @param {?Document} doc Defaults to current document.\r\n * @return {Element | null}\r\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\r\n */\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n/**\r\n * Deeply get a value from an object via its path.\r\n */\n\nfunction getIn(obj, key, def, p) {\n if (p === void 0) {\n p = 0;\n }\n\n var path = toPath(key);\n\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n } // check if path is not in the end\n\n\n if (p !== path.length && !obj) {\n return def;\n }\n\n return obj === undefined ? def : obj;\n}\n/**\r\n * Deeply set a value from in object via it's path. If the value at `path`\r\n * has changed, return a shallow copy of obj with `value` set at `path`.\r\n * If `value` has not changed, return the original `obj`.\r\n *\r\n * Existing objects / arrays along `path` are also shallow copied. Sibling\r\n * objects along path retain the same internal js reference. Since new\r\n * objects / arrays are only created along `path`, we can test if anything\r\n * changed in a nested structure by comparing the object's reference in\r\n * the old and new object, similar to how russian doll cache invalidation\r\n * works.\r\n *\r\n * In earlier versions of this function, which used cloneDeep, there were\r\n * issues whereby settings a nested value would mutate the parent\r\n * instead of creating a new object. `clone` avoids that bug making a\r\n * shallow copy of the objects along the update path\r\n * so no object is mutated in place.\r\n *\r\n * Before changing this function, please read through the following\r\n * discussions.\r\n *\r\n * @see https://github.com/developit/linkstate\r\n * @see https://github.com/jaredpalmer/formik/pull/123\r\n */\n\nfunction setIn(obj, path, value) {\n var res = clone(obj); // this keeps inheritance when obj is a class\n\n var resVal = res;\n var i = 0;\n var pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n var currentPath = pathArray[i];\n var currentObj = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n var nextPath = pathArray[i + 1];\n resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n } // Return original object if new value is the same as current\n\n\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n } // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n\n\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n/**\r\n * Recursively a set the same value for all keys and arrays nested object, cloning\r\n * @param object\r\n * @param value\r\n * @param visited\r\n * @param response\r\n */\n\nfunction setNestedObjectValues(object, value, visited, response) {\n if (visited === void 0) {\n visited = new WeakMap();\n }\n\n if (response === void 0) {\n response = {};\n }\n\n for (var _i = 0, _Object$keys = Object.keys(object); _i < _Object$keys.length; _i++) {\n var k = _Object$keys[_i];\n var val = object[k];\n\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true); // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n\nfunction formikReducer(state, msg) {\n switch (msg.type) {\n case 'SET_VALUES':\n return _extends({}, state, {\n values: msg.payload\n });\n\n case 'SET_TOUCHED':\n return _extends({}, state, {\n touched: msg.payload\n });\n\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return _extends({}, state, {\n errors: msg.payload\n });\n\n case 'SET_STATUS':\n return _extends({}, state, {\n status: msg.payload\n });\n\n case 'SET_ISSUBMITTING':\n return _extends({}, state, {\n isSubmitting: msg.payload\n });\n\n case 'SET_ISVALIDATING':\n return _extends({}, state, {\n isValidating: msg.payload\n });\n\n case 'SET_FIELD_VALUE':\n return _extends({}, state, {\n values: setIn(state.values, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_TOUCHED':\n return _extends({}, state, {\n touched: setIn(state.touched, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_ERROR':\n return _extends({}, state, {\n errors: setIn(state.errors, msg.payload.field, msg.payload.value)\n });\n\n case 'RESET_FORM':\n return _extends({}, state, msg.payload);\n\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n\n case 'SUBMIT_ATTEMPT':\n return _extends({}, state, {\n touched: setNestedObjectValues(state.values, true),\n isSubmitting: true,\n submitCount: state.submitCount + 1\n });\n\n case 'SUBMIT_FAILURE':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n case 'SUBMIT_SUCCESS':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n default:\n return state;\n }\n} // Initial empty states // objects\n\n\nvar emptyErrors = {};\nvar emptyTouched = {};\nfunction useFormik(_ref) {\n var _ref$validateOnChange = _ref.validateOnChange,\n validateOnChange = _ref$validateOnChange === void 0 ? true : _ref$validateOnChange,\n _ref$validateOnBlur = _ref.validateOnBlur,\n validateOnBlur = _ref$validateOnBlur === void 0 ? true : _ref$validateOnBlur,\n _ref$validateOnMount = _ref.validateOnMount,\n validateOnMount = _ref$validateOnMount === void 0 ? false : _ref$validateOnMount,\n isInitialValid = _ref.isInitialValid,\n _ref$enableReinitiali = _ref.enableReinitialize,\n enableReinitialize = _ref$enableReinitiali === void 0 ? false : _ref$enableReinitiali,\n onSubmit = _ref.onSubmit,\n rest = _objectWithoutPropertiesLoose(_ref, [\"validateOnChange\", \"validateOnBlur\", \"validateOnMount\", \"isInitialValid\", \"enableReinitialize\", \"onSubmit\"]);\n\n var props = _extends({\n validateOnChange: validateOnChange,\n validateOnBlur: validateOnBlur,\n validateOnMount: validateOnMount,\n onSubmit: onSubmit\n }, rest);\n\n var initialValues = useRef(props.initialValues);\n var initialErrors = useRef(props.initialErrors || emptyErrors);\n var initialTouched = useRef(props.initialTouched || emptyTouched);\n var initialStatus = useRef(props.initialStatus);\n var isMounted = useRef(false);\n var fieldRegistry = useRef({});\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n !(typeof isInitialValid === 'undefined') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.') : invariant(false) : void 0; // eslint-disable-next-line\n }, []);\n }\n\n useEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n\n var _React$useState = useState(0),\n setIteration = _React$useState[1];\n\n var stateRef = useRef({\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0\n });\n var state = stateRef.current;\n var dispatch = useCallback(function (action) {\n var prev = stateRef.current;\n stateRef.current = formikReducer(prev, action); // force rerender\n\n if (prev !== stateRef.current) setIteration(function (x) {\n return x + 1;\n });\n }, []);\n var runValidateHandler = useCallback(function (values, field) {\n return new Promise(function (resolve, reject) {\n var maybePromisedErrors = props.validate(values, field);\n\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n maybePromisedErrors.then(function (errors) {\n resolve(errors || emptyErrors);\n }, function (actualException) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Warning: An unhandled error was caught during validation in <Formik validate />\", actualException);\n }\n\n reject(actualException);\n });\n } else {\n resolve(maybePromisedErrors);\n }\n });\n }, [props.validate]);\n /**\r\n * Run validation against a Yup schema and optionally run a function if successful\r\n */\n\n var runValidationSchema = useCallback(function (values, field) {\n var validationSchema = props.validationSchema;\n var schema = isFunction(validationSchema) ? validationSchema(field) : validationSchema;\n var promise = field && schema.validateAt ? schema.validateAt(field, values) : validateYupSchema(values, schema);\n return new Promise(function (resolve, reject) {\n promise.then(function () {\n resolve(emptyErrors);\n }, function (err) {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Warning: An unhandled error was caught during validation in <Formik validationSchema />\", err);\n }\n\n reject(err);\n }\n });\n });\n }, [props.validationSchema]);\n var runSingleFieldLevelValidation = useCallback(function (field, value) {\n return new Promise(function (resolve) {\n return resolve(fieldRegistry.current[field].validate(value));\n });\n }, []);\n var runFieldLevelValidations = useCallback(function (values) {\n var fieldKeysWithValidation = Object.keys(fieldRegistry.current).filter(function (f) {\n return isFunction(fieldRegistry.current[f].validate);\n }); // Construct an array with all of the field validation functions\n\n var fieldValidations = fieldKeysWithValidation.length > 0 ? fieldKeysWithValidation.map(function (f) {\n return runSingleFieldLevelValidation(f, getIn(values, f));\n }) : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then(function (fieldErrorsList) {\n return fieldErrorsList.reduce(function (prev, curr, index) {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n\n return prev;\n }, {});\n });\n }, [runSingleFieldLevelValidation]); // Run all validations and return the result\n\n var runAllValidations = useCallback(function (values) {\n return Promise.all([runFieldLevelValidations(values), props.validationSchema ? runValidationSchema(values) : {}, props.validate ? runValidateHandler(values) : {}]).then(function (_ref2) {\n var fieldErrors = _ref2[0],\n schemaErrors = _ref2[1],\n validateErrors = _ref2[2];\n var combinedErrors = deepmerge.all([fieldErrors, schemaErrors, validateErrors], {\n arrayMerge: arrayMerge\n });\n return combinedErrors;\n });\n }, [props.validate, props.validationSchema, runFieldLevelValidations, runValidateHandler, runValidationSchema]); // Run all validations methods and update state accordingly\n\n var validateFormWithHighPriority = useEventCallback(function (values) {\n if (values === void 0) {\n values = state.values;\n }\n\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runAllValidations(values).then(function (combinedErrors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n dispatch({\n type: 'SET_ERRORS',\n payload: combinedErrors\n });\n }\n\n return combinedErrors;\n });\n });\n useEffect(function () {\n if (validateOnMount && isMounted.current === true && isEqual(initialValues.current, props.initialValues)) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n var resetForm = useCallback(function (nextState) {\n var values = nextState && nextState.values ? nextState.values : initialValues.current;\n var errors = nextState && nextState.errors ? nextState.errors : initialErrors.current ? initialErrors.current : props.initialErrors || {};\n var touched = nextState && nextState.touched ? nextState.touched : initialTouched.current ? initialTouched.current : props.initialTouched || {};\n var status = nextState && nextState.status ? nextState.status : initialStatus.current ? initialStatus.current : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n var dispatchFn = function dispatchFn() {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors: errors,\n touched: touched,\n status: status,\n values: values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount: !!nextState && !!nextState.submitCount && typeof nextState.submitCount === 'number' ? nextState.submitCount : 0\n }\n });\n };\n\n if (props.onReset) {\n var maybePromisedOnReset = props.onReset(state.values, imperativeMethods);\n\n if (isPromise(maybePromisedOnReset)) {\n maybePromisedOnReset.then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n }, [props.initialErrors, props.initialStatus, props.initialTouched, props.onReset]);\n useEffect(function () {\n if (isMounted.current === true && !isEqual(initialValues.current, props.initialValues)) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }\n }, [enableReinitialize, props.initialValues, resetForm, validateOnMount, validateFormWithHighPriority]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialErrors.current, props.initialErrors)) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialTouched.current, props.initialTouched)) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialStatus.current, props.initialStatus)) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n var validateField = useEventCallback(function (name) {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n if (fieldRegistry.current[name] && isFunction(fieldRegistry.current[name].validate)) {\n var value = getIn(state.values, name);\n var maybePromise = fieldRegistry.current[name].validate(value);\n\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return maybePromise.then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise\n }\n });\n return Promise.resolve(maybePromise);\n }\n } else if (props.validationSchema) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runValidationSchema(state.values, name).then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: getIn(error, name)\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n }\n\n return Promise.resolve();\n });\n var registerField = useCallback(function (name, _ref3) {\n var validate = _ref3.validate;\n fieldRegistry.current[name] = {\n validate: validate\n };\n }, []);\n var unregisterField = useCallback(function (name) {\n delete fieldRegistry.current[name];\n }, []);\n var setTouched = useEventCallback(function (touched, shouldValidate) {\n dispatch({\n type: 'SET_TOUCHED',\n payload: touched\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var setErrors = useCallback(function (errors) {\n dispatch({\n type: 'SET_ERRORS',\n payload: errors\n });\n }, []);\n var setValues = useEventCallback(function (values, shouldValidate) {\n var resolvedValues = isFunction(values) ? values(state.values) : values;\n dispatch({\n type: 'SET_VALUES',\n payload: resolvedValues\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(resolvedValues) : Promise.resolve();\n });\n var setFieldError = useCallback(function (field, value) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: field,\n value: value\n }\n });\n }, []);\n var setFieldValue = useEventCallback(function (field, value, shouldValidate) {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field: field,\n value: value\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(setIn(state.values, field, value)) : Promise.resolve();\n });\n var executeChange = useCallback(function (eventOrTextValue, maybePath) {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n var field = maybePath;\n var val = eventOrTextValue;\n var parsed; // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if (eventOrTextValue.persist) {\n eventOrTextValue.persist();\n }\n\n var target = eventOrTextValue.target ? eventOrTextValue.target : eventOrTextValue.currentTarget;\n var type = target.type,\n name = target.name,\n id = target.id,\n value = target.value,\n checked = target.checked,\n outerHTML = target.outerHTML,\n options = target.options,\n multiple = target.multiple;\n field = maybePath ? maybePath : name ? name : id;\n\n if (!field && process.env.NODE_ENV !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange'\n });\n }\n\n val = /number|range/.test(type) ? (parsed = parseFloat(value), isNaN(parsed) ? '' : parsed) : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field), checked, value) : options && multiple // <select multiple>\n ? getSelectedValues(options) : value;\n }\n\n if (field) {\n // Set form fields by name\n setFieldValue(field, val);\n }\n }, [setFieldValue, state.values]);\n var handleChange = useEventCallback(function (eventOrPath) {\n if (isString(eventOrPath)) {\n return function (event) {\n return executeChange(event, eventOrPath);\n };\n } else {\n executeChange(eventOrPath);\n }\n });\n var setFieldTouched = useEventCallback(function (field, touched, shouldValidate) {\n if (touched === void 0) {\n touched = true;\n }\n\n dispatch({\n type: 'SET_FIELD_TOUCHED',\n payload: {\n field: field,\n value: touched\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var executeBlur = useCallback(function (e, path) {\n if (e.persist) {\n e.persist();\n }\n\n var _e$target = e.target,\n name = _e$target.name,\n id = _e$target.id,\n outerHTML = _e$target.outerHTML;\n var field = path ? path : name ? name : id;\n\n if (!field && process.env.NODE_ENV !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handleblur-e-any--void',\n handlerName: 'handleBlur'\n });\n }\n\n setFieldTouched(field, true);\n }, [setFieldTouched]);\n var handleBlur = useEventCallback(function (eventOrString) {\n if (isString(eventOrString)) {\n return function (event) {\n return executeBlur(event, eventOrString);\n };\n } else {\n executeBlur(eventOrString);\n }\n });\n var setFormikState = useCallback(function (stateOrCb) {\n if (isFunction(stateOrCb)) {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: stateOrCb\n });\n } else {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: function payload() {\n return stateOrCb;\n }\n });\n }\n }, []);\n var setStatus = useCallback(function (status) {\n dispatch({\n type: 'SET_STATUS',\n payload: status\n });\n }, []);\n var setSubmitting = useCallback(function (isSubmitting) {\n dispatch({\n type: 'SET_ISSUBMITTING',\n payload: isSubmitting\n });\n }, []);\n var submitForm = useEventCallback(function () {\n dispatch({\n type: 'SUBMIT_ATTEMPT'\n });\n return validateFormWithHighPriority().then(function (combinedErrors) {\n // In case an error was thrown and passed to the resolved Promise,\n // `combinedErrors` can be an instance of an Error. We need to check\n // that and abort the submit.\n // If we don't do that, calling `Object.keys(new Error())` yields an\n // empty array, which causes the validation to pass and the form\n // to be submitted.\n var isInstanceOfError = combinedErrors instanceof Error;\n var isActuallyValid = !isInstanceOfError && Object.keys(combinedErrors).length === 0;\n\n if (isActuallyValid) {\n // Proceed with submit...\n //\n // To respect sync submit fns, we can't simply wrap executeSubmit in a promise and\n // _always_ dispatch SUBMIT_SUCCESS because isSubmitting would then always be false.\n // This would be fine in simple cases, but make it impossible to disable submit\n // buttons where people use callbacks or promises as side effects (which is basically\n // all of v1 Formik code). Instead, recall that we are inside of a promise chain already,\n // so we can try/catch executeSubmit(), if it returns undefined, then just bail.\n // If there are errors, throw em. Otherwise, wrap executeSubmit in a promise and handle\n // cleanup of isSubmitting on behalf of the consumer.\n var promiseOrUndefined;\n\n try {\n promiseOrUndefined = executeSubmit(); // Bail if it's sync, consumer is responsible for cleaning up\n // via setSubmitting(false)\n\n if (promiseOrUndefined === undefined) {\n return;\n }\n } catch (error) {\n throw error;\n }\n\n return Promise.resolve(promiseOrUndefined).then(function (result) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_SUCCESS'\n });\n }\n\n return result;\n })[\"catch\"](function (_errors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // This is a legit error rejected by the onSubmit fn\n // so we don't want to break the promise chain\n\n throw _errors;\n }\n });\n } else if (!!isMounted.current) {\n // ^^^ Make sure Formik is still mounted before updating state\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // throw combinedErrors;\n\n if (isInstanceOfError) {\n throw combinedErrors;\n }\n }\n\n return;\n });\n });\n var handleSubmit = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n } // Warn if form submission is triggered by a <button> without a\n // specified `type` attribute during development. This mitigates\n // a common gotcha in forms with both reset and submit buttons,\n // where the dev forgets to add type=\"button\" to the reset button.\n\n\n if (process.env.NODE_ENV !== \"production\" && typeof document !== 'undefined') {\n // Safely get the active element (works with IE)\n var activeElement = getActiveElement();\n\n if (activeElement !== null && activeElement instanceof HTMLButtonElement) {\n !(activeElement.attributes && activeElement.attributes.getNamedItem('type')) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'You submitted a Formik form using a button with an unspecified `type` attribute. Most browsers default button elements to `type=\"submit\"`. If this is not a submit button, please add `type=\"button\"`.') : invariant(false) : void 0;\n }\n }\n\n submitForm()[\"catch\"](function (reason) {\n console.warn(\"Warning: An unhandled error was caught from submitForm()\", reason);\n });\n });\n var imperativeMethods = {\n resetForm: resetForm,\n validateForm: validateFormWithHighPriority,\n validateField: validateField,\n setErrors: setErrors,\n setFieldError: setFieldError,\n setFieldTouched: setFieldTouched,\n setFieldValue: setFieldValue,\n setStatus: setStatus,\n setSubmitting: setSubmitting,\n setTouched: setTouched,\n setValues: setValues,\n setFormikState: setFormikState,\n submitForm: submitForm\n };\n var executeSubmit = useEventCallback(function () {\n return onSubmit(state.values, imperativeMethods);\n });\n var handleReset = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n }\n\n resetForm();\n });\n var getFieldMeta = useCallback(function (name) {\n return {\n value: getIn(state.values, name),\n error: getIn(state.errors, name),\n touched: !!getIn(state.touched, name),\n initialValue: getIn(initialValues.current, name),\n initialTouched: !!getIn(initialTouched.current, name),\n initialError: getIn(initialErrors.current, name)\n };\n }, [state.errors, state.touched, state.values]);\n var getFieldHelpers = useCallback(function (name) {\n return {\n setValue: function setValue(value, shouldValidate) {\n return setFieldValue(name, value, shouldValidate);\n },\n setTouched: function setTouched(value, shouldValidate) {\n return setFieldTouched(name, value, shouldValidate);\n },\n setError: function setError(value) {\n return setFieldError(name, value);\n }\n };\n }, [setFieldValue, setFieldTouched, setFieldError]);\n var getFieldProps = useCallback(function (nameOrOptions) {\n var isAnObject = isObject(nameOrOptions);\n var name = isAnObject ? nameOrOptions.name : nameOrOptions;\n var valueState = getIn(state.values, name);\n var field = {\n name: name,\n value: valueState,\n onChange: handleChange,\n onBlur: handleBlur\n };\n\n if (isAnObject) {\n var type = nameOrOptions.type,\n valueProp = nameOrOptions.value,\n is = nameOrOptions.as,\n multiple = nameOrOptions.multiple;\n\n if (type === 'checkbox') {\n if (valueProp === undefined) {\n field.checked = !!valueState;\n } else {\n field.checked = !!(Array.isArray(valueState) && ~valueState.indexOf(valueProp));\n field.value = valueProp;\n }\n } else if (type === 'radio') {\n field.checked = valueState === valueProp;\n field.value = valueProp;\n } else if (is === 'select' && multiple) {\n field.value = field.value || [];\n field.multiple = true;\n }\n }\n\n return field;\n }, [handleBlur, handleChange, state.values]);\n var dirty = useMemo(function () {\n return !isEqual(initialValues.current, state.values);\n }, [initialValues.current, state.values]);\n var isValid = useMemo(function () {\n return typeof isInitialValid !== 'undefined' ? dirty ? state.errors && Object.keys(state.errors).length === 0 : isInitialValid !== false && isFunction(isInitialValid) ? isInitialValid(props) : isInitialValid : state.errors && Object.keys(state.errors).length === 0;\n }, [isInitialValid, dirty, state.errors, props]);\n\n var ctx = _extends({}, state, {\n initialValues: initialValues.current,\n initialErrors: initialErrors.current,\n initialTouched: initialTouched.current,\n initialStatus: initialStatus.current,\n handleBlur: handleBlur,\n handleChange: handleChange,\n handleReset: handleReset,\n handleSubmit: handleSubmit,\n resetForm: resetForm,\n setErrors: setErrors,\n setFormikState: setFormikState,\n setFieldTouched: setFieldTouched,\n setFieldValue: setFieldValue,\n setFieldError: setFieldError,\n setStatus: setStatus,\n setSubmitting: setSubmitting,\n setTouched: setTouched,\n setValues: setValues,\n submitForm: submitForm,\n validateForm: validateFormWithHighPriority,\n validateField: validateField,\n isValid: isValid,\n dirty: dirty,\n unregisterField: unregisterField,\n registerField: registerField,\n getFieldProps: getFieldProps,\n getFieldMeta: getFieldMeta,\n getFieldHelpers: getFieldHelpers,\n validateOnBlur: validateOnBlur,\n validateOnChange: validateOnChange,\n validateOnMount: validateOnMount\n });\n\n return ctx;\n}\nfunction Formik(props) {\n var formikbag = useFormik(props);\n var component = props.component,\n children = props.children,\n render = props.render,\n innerRef = props.innerRef; // This allows folks to pass a ref to <Formik />\n\n useImperativeHandle(innerRef, function () {\n return formikbag;\n });\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n !!props.render ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Formik render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Formik render={(props) => ...} /> with <Formik>{(props) => ...}</Formik>\") : invariant(false) : void 0; // eslint-disable-next-line\n }, []);\n }\n\n return createElement(FormikProvider, {\n value: formikbag\n }, component ? createElement(component, formikbag) : render ? render(formikbag) : children // children come last, always called\n ? isFunction(children) ? children(formikbag) : !isEmptyChildren(children) ? Children.only(children) : null : null);\n}\n\nfunction warnAboutMissingIdentifier(_ref4) {\n var htmlContent = _ref4.htmlContent,\n documentationAnchorLink = _ref4.documentationAnchorLink,\n handlerName = _ref4.handlerName;\n console.warn(\"Warning: Formik called `\" + handlerName + \"`, but you forgot to pass an `id` or `name` attribute to your input:\\n \" + htmlContent + \"\\n Formik cannot determine which value to update. For more info see https://formik.org/docs/api/formik#\" + documentationAnchorLink + \"\\n \");\n}\n/**\r\n * Transform Yup ValidationError to a more usable object\r\n */\n\n\nfunction yupToFormErrors(yupError) {\n var errors = {};\n\n if (yupError.inner) {\n if (yupError.inner.length === 0) {\n return setIn(errors, yupError.path, yupError.message);\n }\n\n for (var _iterator = yupError.inner, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref5;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref5 = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref5 = _i.value;\n }\n\n var err = _ref5;\n\n if (!getIn(errors, err.path)) {\n errors = setIn(errors, err.path, err.message);\n }\n }\n }\n\n return errors;\n}\n/**\r\n * Validate a yup schema.\r\n */\n\nfunction validateYupSchema(values, schema, sync, context) {\n if (sync === void 0) {\n sync = false;\n }\n\n var normalizedValues = prepareDataForValidation(values);\n return schema[sync ? 'validateSync' : 'validate'](normalizedValues, {\n abortEarly: false,\n context: context || normalizedValues\n });\n}\n/**\r\n * Recursively prepare values.\r\n */\n\nfunction prepareDataForValidation(values) {\n var data = Array.isArray(values) ? [] : {};\n\n for (var k in values) {\n if (Object.prototype.hasOwnProperty.call(values, k)) {\n var key = String(k);\n\n if (Array.isArray(values[key]) === true) {\n data[key] = values[key].map(function (value) {\n if (Array.isArray(value) === true || isPlainObject(value)) {\n return prepareDataForValidation(value);\n } else {\n return value !== '' ? value : undefined;\n }\n });\n } else if (isPlainObject(values[key])) {\n data[key] = prepareDataForValidation(values[key]);\n } else {\n data[key] = values[key] !== '' ? values[key] : undefined;\n }\n }\n }\n\n return data;\n}\n/**\r\n * deepmerge array merging algorithm\r\n * https://github.com/KyleAMathews/deepmerge#combine-array\r\n */\n\nfunction arrayMerge(target, source, options) {\n var destination = target.slice();\n source.forEach(function merge(e, i) {\n if (typeof destination[i] === 'undefined') {\n var cloneRequested = options.clone !== false;\n var shouldClone = cloneRequested && options.isMergeableObject(e);\n destination[i] = shouldClone ? deepmerge(Array.isArray(e) ? [] : {}, e, options) : e;\n } else if (options.isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, options);\n } else if (target.indexOf(e) === -1) {\n destination.push(e);\n }\n });\n return destination;\n}\n/** Return multi select values based on an array of options */\n\n\nfunction getSelectedValues(options) {\n return Array.from(options).filter(function (el) {\n return el.selected;\n }).map(function (el) {\n return el.value;\n });\n}\n/** Return the next value for a checkbox */\n\n\nfunction getValueForCheckbox(currentValue, checked, valueProp) {\n // If the current value was a boolean, return a boolean\n if (typeof currentValue === 'boolean') {\n return Boolean(checked);\n } // If the currentValue was not a boolean we want to return an array\n\n\n var currentArrayOfValues = [];\n var isValueInArray = false;\n var index = -1;\n\n if (!Array.isArray(currentValue)) {\n // eslint-disable-next-line eqeqeq\n if (!valueProp || valueProp == 'true' || valueProp == 'false') {\n return Boolean(checked);\n }\n } else {\n // If the current value is already an array, use it\n currentArrayOfValues = currentValue;\n index = currentValue.indexOf(valueProp);\n isValueInArray = index >= 0;\n } // If the checkbox was checked and the value is not already present in the aray we want to add the new value to the array of values\n\n\n if (checked && valueProp && !isValueInArray) {\n return currentArrayOfValues.concat(valueProp);\n } // If the checkbox was unchecked and the value is not in the array, simply return the already existing array of values\n\n\n if (!isValueInArray) {\n return currentArrayOfValues;\n } // If the checkbox was unchecked and the value is in the array, remove the value and return the array\n\n\n return currentArrayOfValues.slice(0, index).concat(currentArrayOfValues.slice(index + 1));\n} // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\n// @see https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction useEventCallback(fn) {\n var ref = useRef(fn); // we copy a ref to the callback scoped to the current state/props on each render\n\n useIsomorphicLayoutEffect(function () {\n ref.current = fn;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current.apply(void 0, args);\n }, []);\n}\n\nfunction useField(propsOrFieldName) {\n var formik = useFormikContext();\n var getFieldProps = formik.getFieldProps,\n getFieldMeta = formik.getFieldMeta,\n getFieldHelpers = formik.getFieldHelpers,\n registerField = formik.registerField,\n unregisterField = formik.unregisterField;\n var isAnObject = isObject(propsOrFieldName); // Normalize propsOrFieldName to FieldHookConfig<Val>\n\n var props = isAnObject ? propsOrFieldName : {\n name: propsOrFieldName\n };\n var fieldName = props.name,\n validateFn = props.validate;\n useEffect(function () {\n if (fieldName) {\n registerField(fieldName, {\n validate: validateFn\n });\n }\n\n return function () {\n if (fieldName) {\n unregisterField(fieldName);\n }\n };\n }, [registerField, unregisterField, fieldName, validateFn]);\n\n if (process.env.NODE_ENV !== \"production\") {\n !formik ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'useField() / <Field /> must be used underneath a <Formik> component or withFormik() higher order component') : invariant(false) : void 0;\n }\n\n !fieldName ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid field name. Either pass `useField` a string or an object containing a `name` key.') : invariant(false) : void 0;\n var fieldHelpers = useMemo(function () {\n return getFieldHelpers(fieldName);\n }, [getFieldHelpers, fieldName]);\n return [getFieldProps(props), getFieldMeta(fieldName), fieldHelpers];\n}\nfunction Field(_ref) {\n var validate = _ref.validate,\n name = _ref.name,\n render = _ref.render,\n children = _ref.children,\n is = _ref.as,\n component = _ref.component,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, [\"validate\", \"name\", \"render\", \"children\", \"as\", \"component\", \"className\"]);\n\n var _useFormikContext = useFormikContext(),\n formik = _objectWithoutPropertiesLoose(_useFormikContext, [\"validate\", \"validationSchema\"]);\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n !!render ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Field render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Field name=\\\"\" + name + \"\\\" render={({field, form}) => ...} /> with <Field name=\\\"\" + name + \"\\\">{({field, form, meta}) => ...}</Field>\") : invariant(false) : void 0;\n !!(is && children && isFunction(children)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'You should not use <Field as> and <Field children> as a function in the same <Field> component; <Field as> will be ignored.') : invariant(false) : void 0;\n !!(component && children && isFunction(children)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'You should not use <Field component> and <Field children> as a function in the same <Field> component; <Field component> will be ignored.') : invariant(false) : void 0;\n !!(render && children && !isEmptyChildren(children)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'You should not use <Field render> and <Field children> in the same <Field> component; <Field children> will be ignored') : invariant(false) : void 0; // eslint-disable-next-line\n }, []);\n } // Register field and field-level validation with parent <Formik>\n\n\n var registerField = formik.registerField,\n unregisterField = formik.unregisterField;\n useEffect(function () {\n registerField(name, {\n validate: validate\n });\n return function () {\n unregisterField(name);\n };\n }, [registerField, unregisterField, name, validate]);\n var field = formik.getFieldProps(_extends({\n name: name\n }, props));\n var meta = formik.getFieldMeta(name);\n var legacyBag = {\n field: field,\n form: formik\n };\n\n if (render) {\n return render(_extends({}, legacyBag, {\n meta: meta\n }));\n }\n\n if (isFunction(children)) {\n return children(_extends({}, legacyBag, {\n meta: meta\n }));\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n var innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return createElement(component, _extends({\n ref: innerRef\n }, field, rest, {\n className: className\n }), children);\n } // We don't pass `meta` for backwards compat\n\n\n return createElement(component, _extends({\n field: field,\n form: formik\n }, props, {\n className: className\n }), children);\n } // default to input here so we can check for both `as` and `children` above\n\n\n var asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n var _innerRef = props.innerRef,\n _rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return createElement(asElement, _extends({\n ref: _innerRef\n }, field, _rest, {\n className: className\n }), children);\n }\n\n return createElement(asElement, _extends({}, field, props, {\n className: className\n }), children);\n}\n\nvar Form = /*#__PURE__*/forwardRef(function (props, ref) {\n // iOS needs an \"action\" attribute for nice input: https://stackoverflow.com/a/39485162/406725\n // We default the action to \"#\" in case the preventDefault fails (just updates the URL hash)\n var action = props.action,\n rest = _objectWithoutPropertiesLoose(props, [\"action\"]);\n\n var _action = action != null ? action : '#';\n\n var _useFormikContext = useFormikContext(),\n handleReset = _useFormikContext.handleReset,\n handleSubmit = _useFormikContext.handleSubmit;\n\n return createElement(\"form\", _extends({\n onSubmit: handleSubmit,\n ref: ref,\n onReset: handleReset,\n action: _action\n }, rest));\n});\nForm.displayName = 'Form';\n\n/**\r\n * A public higher-order component to access the imperative API\r\n */\n\nfunction withFormik(_ref) {\n var _ref$mapPropsToValues = _ref.mapPropsToValues,\n mapPropsToValues = _ref$mapPropsToValues === void 0 ? function (vanillaProps) {\n var val = {};\n\n for (var k in vanillaProps) {\n if (vanillaProps.hasOwnProperty(k) && typeof vanillaProps[k] !== 'function') {\n // @todo TypeScript fix\n val[k] = vanillaProps[k];\n }\n }\n\n return val;\n } : _ref$mapPropsToValues,\n config = _objectWithoutPropertiesLoose(_ref, [\"mapPropsToValues\"]);\n\n return function createFormik(Component$1) {\n var componentDisplayName = Component$1.displayName || Component$1.name || Component$1.constructor && Component$1.constructor.name || 'Component';\n /**\r\n * We need to use closures here for to provide the wrapped component's props to\r\n * the respective withFormik config methods.\r\n */\n\n var C = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(C, _React$Component);\n\n function C() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.validate = function (values) {\n return config.validate(values, _this.props);\n };\n\n _this.validationSchema = function () {\n return isFunction(config.validationSchema) ? config.validationSchema(_this.props) : config.validationSchema;\n };\n\n _this.handleSubmit = function (values, actions) {\n return config.handleSubmit(values, _extends({}, actions, {\n props: _this.props\n }));\n };\n\n _this.renderFormComponent = function (formikProps) {\n return createElement(Component$1, _extends({}, _this.props, formikProps));\n };\n\n return _this;\n }\n\n var _proto = C.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\"]);\n\n return createElement(Formik, _extends({}, props, config, {\n validate: config.validate && this.validate,\n validationSchema: config.validationSchema && this.validationSchema,\n initialValues: mapPropsToValues(this.props),\n initialStatus: config.mapPropsToStatus && config.mapPropsToStatus(this.props),\n initialErrors: config.mapPropsToErrors && config.mapPropsToErrors(this.props),\n initialTouched: config.mapPropsToTouched && config.mapPropsToTouched(this.props),\n onSubmit: this.handleSubmit,\n children: this.renderFormComponent\n }));\n };\n\n return C;\n }(Component);\n\n C.displayName = \"WithFormik(\" + componentDisplayName + \")\";\n return hoistNonReactStatics(C, Component$1 // cast type to ComponentClass (even if SFC)\n );\n };\n}\n\n/**\r\n * Connect any component to Formik context, and inject as a prop called `formik`;\r\n * @param Comp React Component\r\n */\n\nfunction connect(Comp) {\n var C = function C(props) {\n return createElement(FormikConsumer, null, function (formik) {\n !!!formik ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Formik context is undefined, please verify you are rendering <Form>, <Field>, <FastField>, <FieldArray>, or your custom context-using component as a child of a <Formik> component. Component name: \" + Comp.name) : invariant(false) : void 0;\n return createElement(Comp, _extends({}, props, {\n formik: formik\n }));\n });\n };\n\n var componentDisplayName = Comp.displayName || Comp.name || Comp.constructor && Comp.constructor.name || 'Component'; // Assign Comp to C.WrappedComponent so we can access the inner component in tests\n // For example, <Field.WrappedComponent /> gets us <FieldInner/>\n\n C.WrappedComponent = Comp;\n C.displayName = \"FormikConnect(\" + componentDisplayName + \")\";\n return hoistNonReactStatics(C, Comp // cast type to ComponentClass (even if SFC)\n );\n}\n\n/**\r\n * Some array helpers!\r\n */\n\nvar move = function move(array, from, to) {\n var copy = copyArrayLike(array);\n var value = copy[from];\n copy.splice(from, 1);\n copy.splice(to, 0, value);\n return copy;\n};\nvar swap = function swap(arrayLike, indexA, indexB) {\n var copy = copyArrayLike(arrayLike);\n var a = copy[indexA];\n copy[indexA] = copy[indexB];\n copy[indexB] = a;\n return copy;\n};\nvar insert = function insert(arrayLike, index, value) {\n var copy = copyArrayLike(arrayLike);\n copy.splice(index, 0, value);\n return copy;\n};\nvar replace = function replace(arrayLike, index, value) {\n var copy = copyArrayLike(arrayLike);\n copy[index] = value;\n return copy;\n};\n\nvar copyArrayLike = function copyArrayLike(arrayLike) {\n if (!arrayLike) {\n return [];\n } else if (Array.isArray(arrayLike)) {\n return [].concat(arrayLike);\n } else {\n var maxIndex = Object.keys(arrayLike).map(function (key) {\n return parseInt(key);\n }).reduce(function (max, el) {\n return el > max ? el : max;\n }, 0);\n return Array.from(_extends({}, arrayLike, {\n length: maxIndex + 1\n }));\n }\n};\n\nvar createAlterationHandler = function createAlterationHandler(alteration, defaultFunction) {\n var fn = typeof alteration === 'function' ? alteration : defaultFunction;\n return function (data) {\n if (Array.isArray(data) || isObject(data)) {\n var clone = copyArrayLike(data);\n return fn(clone);\n } // This can be assumed to be a primitive, which\n // is a case for top level validation errors\n\n\n return data;\n };\n};\n\nvar FieldArrayInner = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(FieldArrayInner, _React$Component);\n\n function FieldArrayInner(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // We need TypeScript generics on these, so we'll bind them in the constructor\n // @todo Fix TS 3.2.1\n\n _this.updateArrayField = function (fn, alterTouched, alterErrors) {\n var _this$props = _this.props,\n name = _this$props.name,\n setFormikState = _this$props.formik.setFormikState;\n setFormikState(function (prevState) {\n var updateErrors = createAlterationHandler(alterErrors, fn);\n var updateTouched = createAlterationHandler(alterTouched, fn); // values fn should be executed before updateErrors and updateTouched,\n // otherwise it causes an error with unshift.\n\n var values = setIn(prevState.values, name, fn(getIn(prevState.values, name)));\n var fieldError = alterErrors ? updateErrors(getIn(prevState.errors, name)) : undefined;\n var fieldTouched = alterTouched ? updateTouched(getIn(prevState.touched, name)) : undefined;\n\n if (isEmptyArray(fieldError)) {\n fieldError = undefined;\n }\n\n if (isEmptyArray(fieldTouched)) {\n fieldTouched = undefined;\n }\n\n return _extends({}, prevState, {\n values: values,\n errors: alterErrors ? setIn(prevState.errors, name, fieldError) : prevState.errors,\n touched: alterTouched ? setIn(prevState.touched, name, fieldTouched) : prevState.touched\n });\n });\n };\n\n _this.push = function (value) {\n return _this.updateArrayField(function (arrayLike) {\n return [].concat(copyArrayLike(arrayLike), [cloneDeep(value)]);\n }, false, false);\n };\n\n _this.handlePush = function (value) {\n return function () {\n return _this.push(value);\n };\n };\n\n _this.swap = function (indexA, indexB) {\n return _this.updateArrayField(function (array) {\n return swap(array, indexA, indexB);\n }, true, true);\n };\n\n _this.handleSwap = function (indexA, indexB) {\n return function () {\n return _this.swap(indexA, indexB);\n };\n };\n\n _this.move = function (from, to) {\n return _this.updateArrayField(function (array) {\n return move(array, from, to);\n }, true, true);\n };\n\n _this.handleMove = function (from, to) {\n return function () {\n return _this.move(from, to);\n };\n };\n\n _this.insert = function (index, value) {\n return _this.updateArrayField(function (array) {\n return insert(array, index, value);\n }, function (array) {\n return insert(array, index, null);\n }, function (array) {\n return insert(array, index, null);\n });\n };\n\n _this.handleInsert = function (index, value) {\n return function () {\n return _this.insert(index, value);\n };\n };\n\n _this.replace = function (index, value) {\n return _this.updateArrayField(function (array) {\n return replace(array, index, value);\n }, false, false);\n };\n\n _this.handleReplace = function (index, value) {\n return function () {\n return _this.replace(index, value);\n };\n };\n\n _this.unshift = function (value) {\n var length = -1;\n\n _this.updateArrayField(function (array) {\n var arr = array ? [value].concat(array) : [value];\n length = arr.length;\n return arr;\n }, function (array) {\n return array ? [null].concat(array) : [null];\n }, function (array) {\n return array ? [null].concat(array) : [null];\n });\n\n return length;\n };\n\n _this.handleUnshift = function (value) {\n return function () {\n return _this.unshift(value);\n };\n };\n\n _this.handleRemove = function (index) {\n return function () {\n return _this.remove(index);\n };\n };\n\n _this.handlePop = function () {\n return function () {\n return _this.pop();\n };\n };\n\n _this.remove = _this.remove.bind(_assertThisInitialized(_this));\n _this.pop = _this.pop.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = FieldArrayInner.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.validateOnChange && this.props.formik.validateOnChange && !isEqual(getIn(prevProps.formik.values, prevProps.name), getIn(this.props.formik.values, this.props.name))) {\n this.props.formik.validateForm(this.props.formik.values);\n }\n };\n\n _proto.remove = function remove(index) {\n // We need to make sure we also remove relevant pieces of `touched` and `errors`\n var result;\n this.updateArrayField( // so this gets call 3 times\n function (array) {\n var copy = array ? copyArrayLike(array) : [];\n\n if (!result) {\n result = copy[index];\n }\n\n if (isFunction(copy.splice)) {\n copy.splice(index, 1);\n } // if the array only includes undefined values we have to return an empty array\n\n\n return isFunction(copy.every) ? copy.every(function (v) {\n return v === undefined;\n }) ? [] : copy : copy;\n }, true, true);\n return result;\n };\n\n _proto.pop = function pop() {\n // Remove relevant pieces of `touched` and `errors` too!\n var result;\n this.updateArrayField( // so this gets call 3 times\n function (array) {\n var tmp = array.slice();\n\n if (!result) {\n result = tmp && tmp.pop && tmp.pop();\n }\n\n return tmp;\n }, true, true);\n return result;\n };\n\n _proto.render = function render() {\n var arrayHelpers = {\n push: this.push,\n pop: this.pop,\n swap: this.swap,\n move: this.move,\n insert: this.insert,\n replace: this.replace,\n unshift: this.unshift,\n remove: this.remove,\n handlePush: this.handlePush,\n handlePop: this.handlePop,\n handleSwap: this.handleSwap,\n handleMove: this.handleMove,\n handleInsert: this.handleInsert,\n handleReplace: this.handleReplace,\n handleUnshift: this.handleUnshift,\n handleRemove: this.handleRemove\n };\n\n var _this$props2 = this.props,\n component = _this$props2.component,\n render = _this$props2.render,\n children = _this$props2.children,\n name = _this$props2.name,\n _this$props2$formik = _this$props2.formik,\n restOfFormik = _objectWithoutPropertiesLoose(_this$props2$formik, [\"validate\", \"validationSchema\"]);\n\n var props = _extends({}, arrayHelpers, {\n form: restOfFormik,\n name: name\n });\n\n return component ? createElement(component, props) : render ? render(props) : children // children come last, always called\n ? typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? Children.only(children) : null : null;\n };\n\n return FieldArrayInner;\n}(Component);\n\nFieldArrayInner.defaultProps = {\n validateOnChange: true\n};\nvar FieldArray = /*#__PURE__*/connect(FieldArrayInner);\n\nvar ErrorMessageImpl = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorMessageImpl, _React$Component);\n\n function ErrorMessageImpl() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ErrorMessageImpl.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n if (getIn(this.props.formik.errors, this.props.name) !== getIn(props.formik.errors, this.props.name) || getIn(this.props.formik.touched, this.props.name) !== getIn(props.formik.touched, this.props.name) || Object.keys(this.props).length !== Object.keys(props).length) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n component = _this$props.component,\n formik = _this$props.formik,\n render = _this$props.render,\n children = _this$props.children,\n name = _this$props.name,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"formik\", \"render\", \"children\", \"name\"]);\n\n var touch = getIn(formik.touched, name);\n var error = getIn(formik.errors, name);\n return !!touch && !!error ? render ? isFunction(render) ? render(error) : null : children ? isFunction(children) ? children(error) : null : component ? createElement(component, rest, error) : error : null;\n };\n\n return ErrorMessageImpl;\n}(Component);\n\nvar ErrorMessage = /*#__PURE__*/connect(ErrorMessageImpl);\n\n/**\r\n * Custom Field component for quickly hooking into Formik\r\n * context and wiring up forms.\r\n */\n\nvar FastFieldInner = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(FastFieldInner, _React$Component);\n\n function FastFieldInner(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n var render = props.render,\n children = props.children,\n component = props.component,\n is = props.as,\n name = props.name;\n !!render ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<FastField render> has been deprecated. Please use a child callback function instead: <FastField name={\" + name + \"}>{props => ...}</FastField> instead.\") : invariant(false) : void 0;\n !!(component && render) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'You should not use <FastField component> and <FastField render> in the same <FastField> component; <FastField component> will be ignored') : invariant(false) : void 0;\n !!(is && children && isFunction(children)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'You should not use <FastField as> and <FastField children> as a function in the same <FastField> component; <FastField as> will be ignored.') : invariant(false) : void 0;\n !!(component && children && isFunction(children)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'You should not use <FastField component> and <FastField children> as a function in the same <FastField> component; <FastField component> will be ignored.') : invariant(false) : void 0;\n !!(render && children && !isEmptyChildren(children)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'You should not use <FastField render> and <FastField children> in the same <FastField> component; <FastField children> will be ignored') : invariant(false) : void 0;\n return _this;\n }\n\n var _proto = FastFieldInner.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n if (this.props.shouldUpdate) {\n return this.props.shouldUpdate(props, this.props);\n } else if (props.name !== this.props.name || getIn(props.formik.values, this.props.name) !== getIn(this.props.formik.values, this.props.name) || getIn(props.formik.errors, this.props.name) !== getIn(this.props.formik.errors, this.props.name) || getIn(props.formik.touched, this.props.name) !== getIn(this.props.formik.touched, this.props.name) || Object.keys(this.props).length !== Object.keys(props).length || props.formik.isSubmitting !== this.props.formik.isSubmitting) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Register the Field with the parent Formik. Parent will cycle through\n // registered Field's validate fns right prior to submit\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.props.formik.unregisterField(prevProps.name);\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n }\n\n if (this.props.validate !== prevProps.validate) {\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.formik.unregisterField(this.props.name);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n name = _this$props.name,\n render = _this$props.render,\n is = _this$props.as,\n children = _this$props.children,\n component = _this$props.component,\n formik = _this$props.formik,\n props = _objectWithoutPropertiesLoose(_this$props, [\"validate\", \"name\", \"render\", \"as\", \"children\", \"component\", \"shouldUpdate\", \"formik\"]);\n\n var restOfFormik = _objectWithoutPropertiesLoose(formik, [\"validate\", \"validationSchema\"]);\n\n var field = formik.getFieldProps(_extends({\n name: name\n }, props));\n var meta = {\n value: getIn(formik.values, name),\n error: getIn(formik.errors, name),\n touched: !!getIn(formik.touched, name),\n initialValue: getIn(formik.initialValues, name),\n initialTouched: !!getIn(formik.initialTouched, name),\n initialError: getIn(formik.initialErrors, name)\n };\n var bag = {\n field: field,\n meta: meta,\n form: restOfFormik\n };\n\n if (render) {\n return render(bag);\n }\n\n if (isFunction(children)) {\n return children(bag);\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n var innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return createElement(component, _extends({\n ref: innerRef\n }, field, rest), children);\n } // We don't pass `meta` for backwards compat\n\n\n return createElement(component, _extends({\n field: field,\n form: formik\n }, props), children);\n } // default to input here so we can check for both `as` and `children` above\n\n\n var asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n var _innerRef = props.innerRef,\n _rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return createElement(asElement, _extends({\n ref: _innerRef\n }, field, _rest), children);\n }\n\n return createElement(asElement, _extends({}, field, props), children);\n };\n\n return FastFieldInner;\n}(Component);\n\nvar FastField = /*#__PURE__*/connect(FastFieldInner);\n\nexport { ErrorMessage, FastField, Field, FieldArray, Form, Formik, FormikConsumer, FormikContext, FormikProvider, connect, getActiveElement, getIn, insert, isEmptyArray, isEmptyChildren, isFunction, isInputEvent, isInteger, isNaN$1 as isNaN, isObject, isPromise, isString, move, prepareDataForValidation, replace, setIn, setNestedObjectValues, swap, useField, useFormik, useFormikContext, validateYupSchema, withFormik, yupToFormErrors };\n//# sourceMappingURL=formik.esm.js.map\n","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet _Symbol$toStringTag, _Symbol$hasInstance, _Symbol$toStringTag2;\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n_Symbol$toStringTag = Symbol.toStringTag;\nclass ValidationErrorNoStack {\n constructor(errorOrErrors, value, field, type) {\n this.name = void 0;\n this.message = void 0;\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = void 0;\n this.inner = void 0;\n this[_Symbol$toStringTag] = 'Error';\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n const innerErrors = err.inner.length ? err.inner : [err];\n this.inner.push(...innerErrors);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n }\n}\n_Symbol$hasInstance = Symbol.hasInstance;\n_Symbol$toStringTag2 = Symbol.toStringTag;\nclass ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = Object.assign({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type, disableStack) {\n const errorNoStack = new ValidationErrorNoStack(errorOrErrors, value, field, type);\n if (disableStack) {\n return errorNoStack;\n }\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = [];\n this.inner = [];\n this[_Symbol$toStringTag2] = 'Error';\n this.name = errorNoStack.name;\n this.message = errorNoStack.message;\n this.type = errorNoStack.type;\n this.value = errorNoStack.value;\n this.path = errorNoStack.path;\n this.errors = errorNoStack.errors;\n this.inner = errorNoStack.inner;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ValidationError);\n }\n }\n static [_Symbol$hasInstance](inst) {\n return ValidationErrorNoStack[Symbol.hasInstance](inst) || super[Symbol.hasInstance](inst);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n datetime: '${path} must be a valid ISO date-time',\n datetime_precision: '${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits',\n datetime_offset: '${path} must be a valid ISO date-time with UTC \"Z\" timezone',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean,\n tuple\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly,\n disableStackTrace = schema.spec.disableStackTrace\n } = options;\n function resolve(item) {\n return Reference.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n function createError(overrides = {}) {\n const nextParams = Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec,\n disableStackTrace: overrides.disableStackTrace || disableStackTrace\n }, params, overrides.params);\n for (const key of Object.keys(nextParams)) nextParams[key] = resolve(nextParams[key]);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name, nextParams.disableStackTrace);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve,\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (shouldSkip) {\n return handleResult(true);\n }\n let result;\n try {\n var _result;\n result = test.call(ctx, value, ctx);\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n if (options.sync) {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n return Promise.resolve(result).then(handleResult, handleError);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\n// If `CustomSchemaMeta` isn't extended with any keys, we'll fall back to a\n// loose Record definition allowing free form usage.\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n disableStackTrace: false,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive, _options$disableStack;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive,\n disableStackTrace: (_options$disableStack = options.disableStackTrace) != null ? _options$disableStack : this.spec.disableStackTrace\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({\n value\n }, options));\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n Array.isArray(err) ? nestedErrors.push(...err) : nestedErrors.push(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${isIndex ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n var _options$disableStack2;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let disableStackTrace = (_options$disableStack2 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack2 : schema.spec.disableStackTrace;\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated, undefined, undefined, disableStackTrace));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n var _options$disableStack3;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n let disableStackTrace = (_options$disableStack3 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack3 : schema.spec.disableStackTrace;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value, undefined, undefined, disableStackTrace);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this, options) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (ctx.spec.coerce && !ctx.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n/**\n * This file is a modified version of the file from the following repository:\n * Date.parse with progressive enhancement for ISO 8601 <https://github.com/csnover/js-iso8601>\n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover <http://zetafleet.com>\n * Released under MIT license.\n */\n\n// prettier-ignore\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nconst isoReg = /^(\\d{4}|[+-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,.](\\d{1,}))?)?(?:(Z)|([+-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction parseIsoDate(date) {\n const struct = parseDateStruct(date);\n if (!struct) return Date.parse ? Date.parse(date) : Number.NaN;\n\n // timestamps without timezone identifiers should be considered local time\n if (struct.z === undefined && struct.plusMinus === undefined) {\n return new Date(struct.year, struct.month, struct.day, struct.hour, struct.minute, struct.second, struct.millisecond).valueOf();\n }\n let totalMinutesOffset = 0;\n if (struct.z !== 'Z' && struct.plusMinus !== undefined) {\n totalMinutesOffset = struct.hourOffset * 60 + struct.minuteOffset;\n if (struct.plusMinus === '+') totalMinutesOffset = 0 - totalMinutesOffset;\n }\n return Date.UTC(struct.year, struct.month, struct.day, struct.hour, struct.minute + totalMinutesOffset, struct.second, struct.millisecond);\n}\nfunction parseDateStruct(date) {\n var _regexResult$7$length, _regexResult$;\n const regexResult = isoReg.exec(date);\n if (!regexResult) return null;\n\n // use of toNumber() avoids NaN timestamps caused by “undefinedâ€\n // values being passed to Date constructor\n return {\n year: toNumber(regexResult[1]),\n month: toNumber(regexResult[2], 1) - 1,\n day: toNumber(regexResult[3], 1),\n hour: toNumber(regexResult[4]),\n minute: toNumber(regexResult[5]),\n second: toNumber(regexResult[6]),\n millisecond: regexResult[7] ?\n // allow arbitrary sub-second precision beyond milliseconds\n toNumber(regexResult[7].substring(0, 3)) : 0,\n precision: (_regexResult$7$length = (_regexResult$ = regexResult[7]) == null ? void 0 : _regexResult$.length) != null ? _regexResult$7$length : undefined,\n z: regexResult[8] || undefined,\n plusMinus: regexResult[9] || undefined,\n hourOffset: toNumber(regexResult[10]),\n minuteOffset: toNumber(regexResult[11])\n };\n}\nfunction toNumber(str, defaultValue = 0) {\n return Number(str) || defaultValue;\n}\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet yearMonthDay = '^\\\\d{4}-\\\\d{2}-\\\\d{2}';\nlet hourMinuteSecond = '\\\\d{2}:\\\\d{2}:\\\\d{2}';\nlet zOrOffset = '(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)';\nlet rIsoDateTime = new RegExp(`${yearMonthDay}T${hourMinuteSecond}(\\\\.\\\\d+)?${zOrOffset}$`);\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce || ctx.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n datetime(options) {\n let message = '';\n let allowOffset;\n let precision;\n if (options) {\n if (typeof options === 'object') {\n ({\n message = '',\n allowOffset = false,\n precision = undefined\n } = options);\n } else {\n message = options;\n }\n }\n return this.matches(rIsoDateTime, {\n name: 'datetime',\n message: message || string.datetime,\n excludeEmptyString: true\n }).test({\n name: 'datetime_offset',\n message: message || string.datetime_offset,\n params: {\n allowOffset\n },\n skipAbsent: true,\n test: value => {\n if (!value || allowOffset) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return !!struct.z;\n }\n }).test({\n name: 'datetime_precision',\n message: message || string.datetime_precision,\n params: {\n precision\n },\n skipAbsent: true,\n test: value => {\n if (!value || precision == undefined) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return struct.precision === precision;\n }\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (ctx.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!ctx.spec.coerce || ctx.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, ctx) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return ctx.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n if (field) {\n let fieldValue;\n let inputValue = value[prop];\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ?\n // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked, this._excludedEdges.filter(([a, b]) => keys.includes(a) && keys.includes(b)));\n }\n omit(keys) {\n const remaining = [];\n for (const key of Object.keys(this.fields)) {\n if (keys.includes(key)) continue;\n remaining.push(key);\n }\n return this.pick(remaining);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(next.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array<typeof T>\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n if (next.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = next.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.innerType = next.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return this._resolve(value, options).validate(value, options);\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return this._resolve(value, options).validateAt(path, value, options);\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n return this._resolve(value, options).isValid(value, options);\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, printValue, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar ChatOption = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"ChatOption\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M9 7V1h14v10h-3v5l-5-4M1 7h14v11H9l-5 4v-4H1V7z\"\n }));\n});\nChatOption.displayName = 'ChatOption';\nexport { ChatOption };","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from 'grommet';\nimport { ChatOption } from 'grommet-icons';\n\nconst defaultButtonStyles = {\n color: '#fff',\n fontWeight: 'bold',\n padding: '10px 15px',\n position: 'fixed',\n borderRadius: '5px 5px 0 0',\n border: 'none',\n bottom: 0,\n width: 'auto',\n zIndex: 10,\n backgroundColor:'#01A982',\n};\n\nconst FeedBackButton = (props) => {\n const { handleButtonClick, styles, position, handleCustomPosition } = props;\n return (\n <Button\n plain={false}\n icon={<ChatOption />}\n onClick={handleButtonClick}\n style={handleCustomPosition(position, styles)}\n title=\"Feedback\"\n primary\n />\n );\n};\n\nFeedBackButton.propTypes = {\n handleCustomPosition: PropTypes.func,\n handleButtonClick: PropTypes.func,\n styles: PropTypes.object,\n position: PropTypes.string,\n};\n\nFeedBackButton.defaultProps = {\n position: PropTypes.string,\n styles: defaultButtonStyles,\n handleButtonClick: () => this.handleButtonClick,\n};\n\nexport default FeedBackButton;\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { Box, Button } from 'grommet';\n\nconst defaultButtonStyles = {\n position: 'absolute',\n fontSize: '20px',\n right: '15px',\n color: '#ffffff',\n background: 'none',\n border: 0,\n fontWeight: 'bold',\n lineHeight: '40px',\n height: '40px',\n};\n\nconst defaultHeaderStyles = {\n lineHeight: '40px',\n paddingLeft: '15px',\n height: '40px',\n borderRadius: '6px 6px 0 0',\n backgroundColor: '#263040',\n color: '#FFFFFF',\n fontSize: '18px',\n fontWeight: '500',\n overflow: 'hidden',\n};\n\nconst FeedbackHeader = ({\n headerText,\n headerBtnText,\n handleClose,\n headerStyles,\n headerBtnStyles,\n}) => (\n <Box style={headerStyles}>\n {headerText}\n <Button onClick={handleClose} style={headerBtnStyles} type=\"button\">\n {headerBtnText}\n </Button>\n </Box>\n);\n\nFeedbackHeader.defaultProps = {\n headerText: 'Have Feedback? ðŸ“',\n headerBtnText: 'X',\n headerBtnStyles: defaultButtonStyles,\n headerStyles: defaultHeaderStyles,\n};\n\nexport default FeedbackHeader;\n","import styled, { css } from 'styled-components';\nimport { disabledStyle, inputStyle } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar plainStyle = css([\"outline:none;border:none;width:100%;-webkit-appearance:none;\"]);\nvar resizeStyle = function resizeStyle(resize) {\n if (resize === 'horizontal') {\n return 'resize: horizontal;';\n }\n if (resize === 'vertical') {\n return 'resize: vertical;';\n }\n if (resize) {\n return 'resize: both;';\n }\n return 'resize: none;';\n};\nvar StyledTextArea = styled.textarea.withConfig({\n displayName: \"StyledTextArea\",\n componentId: \"sc-17i3mwp-0\"\n})([\"\", \" \", \" \", \" \", \" \", \" \", \";\"], inputStyle, function (props) {\n return props.resize !== undefined && resizeStyle(props.resize);\n}, function (props) {\n return props.fillArg && 'height: 100%;';\n}, function (props) {\n return props.plain && plainStyle;\n}, function (props) {\n return props.disabled && disabledStyle(props.theme.textArea.disabled && props.theme.textArea.disabled.opacity);\n}, function (props) {\n return props.theme.textArea && props.theme.textArea.extend;\n});\nStyledTextArea.defaultProps = {};\nObject.setPrototypeOf(StyledTextArea.defaultProps, defaultProps);\nexport { StyledTextArea };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n a11yTitle: PropTypes.string,\n id: PropTypes.string,\n fill: PropTypes.bool,\n focusIndicator: PropTypes.bool,\n name: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n plain: PropTypes.bool,\n value: PropTypes.string,\n resize: PropTypes.oneOfType([PropTypes.oneOf(['vertical', 'horizontal']), PropTypes.bool]),\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge', '2xl', '3xl', '4xl', '5xl', '6xl']), PropTypes.string])\n };\n}\nexport var TextAreaPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"fill\", \"focusIndicator\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"onKeyDown\", \"value\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext, useState } from 'react';\nimport { FormContext } from '../Form/FormContext';\nimport { Keyboard } from '../Keyboard';\nimport { StyledTextArea } from './StyledTextArea';\nimport { TextAreaPropTypes } from './propTypes';\nvar TextArea = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var a11yTitle = _ref.a11yTitle,\n fill = _ref.fill,\n _ref$focusIndicator = _ref.focusIndicator,\n focusIndicator = _ref$focusIndicator === void 0 ? true : _ref$focusIndicator,\n name = _ref.name,\n _onBlur = _ref.onBlur,\n _onChange = _ref.onChange,\n _onFocus = _ref.onFocus,\n onKeyDown = _ref.onKeyDown,\n valueProp = _ref.value,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var formContext = useContext(FormContext);\n var _formContext$useFormI = formContext.useFormInput({\n name: name,\n value: valueProp\n }),\n value = _formContext$useFormI[0],\n setValue = _formContext$useFormI[1];\n var _useState = useState(),\n focus = _useState[0],\n setFocus = _useState[1];\n return /*#__PURE__*/React.createElement(Keyboard, {\n onEsc: function onEsc(event) {\n // we have to stop both synthetic events and native events\n // drop and layer should not close by pressing esc on this input\n event.stopPropagation();\n event.nativeEvent.stopImmediatePropagation();\n },\n onKeyDown: onKeyDown\n }, /*#__PURE__*/React.createElement(StyledTextArea, _extends({\n \"aria-label\": a11yTitle,\n ref: ref,\n name: name,\n fillArg: fill,\n focus: focus,\n value: value,\n focusIndicator: focusIndicator\n }, rest, {\n onFocus: function onFocus(event) {\n setFocus(true);\n if (_onFocus) _onFocus(event);\n },\n onBlur: function onBlur(event) {\n setFocus(false);\n if (_onBlur) _onBlur(event);\n },\n onChange: function onChange(event) {\n setValue(event.target.value);\n if (_onChange) _onChange(event);\n }\n })));\n});\nTextArea.displayName = 'TextArea';\nTextArea.propTypes = TextAreaPropTypes;\nexport { TextArea };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar FormNextLink = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormNextLink\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M6 12.4h12M12.6 7l5.4 5.4-5.4 5.4\"\n }));\n});\nFormNextLink.displayName = 'FormNextLink';\nexport { FormNextLink };","/* eslint-disable react/prop-types */\n/* eslint-disable max-len */\nimport { Box, Button, TextInput, Text, TextArea, Image } from 'grommet';\nimport React, { useState,useContext,useEffect } from 'react';\nimport { FormNextLink, FormPreviousLink } from 'grommet-icons';\nimport { AppContext } from '../../../providers/AppProvider';\n\nconst defaultBodyStyles = {\n padding: '10px',\n fontSize: '14px',\n display: 'block !important',\n};\nconst defaultMessageStyles = {\n boxSizing: 'border-box',\n padding: '10px 10px 10px 10px',\n overflow: 'hidden',\n // width: '300px',\n fontFamily: 'arial',\n};\nconst FeedbackBody = ({\n bodyText,\n feedbackFromik,\n selQuestion,\n changeQuestion,\n cancelQuestion,\n successClose,\n isSubmissionSuccess,\n}) => {\n const [emailDis, setEmailDis] = useState(false);\n const [ishovered,setIshovered]=useState(null);\n const handleMouseEnter=(button)=>{\n setIshovered(button);\n };\n const handleMouseLeave=()=>{\n setIshovered(null);\n };\n const backHandler = () => {\n if (emailDis) {\n setEmailDis(false);\n } else {\n feedbackFromik.resetForm();\n cancelQuestion();\n }\n };\n const { user }=useContext(AppContext);\n useEffect(() => {\n if (user?.email) {\n // Update the email value in the Formik form\n feedbackFromik.setFieldValue('email', user.email);\n }\n }, [user?.email]);\n return (\n <Box gap=\"small\" style={{ height: 300, width: 350 }}>\n {selQuestion === undefined &&\n (isSubmissionSuccess === undefined ? (\n <Box style={{ marginBottom: 60 }}>\n <Box style={defaultMessageStyles}>\n <Text weight=\"bold\" alignSelf=\"center\">\n {bodyText}\n </Text>\n </Box>\n <Button\n alignSelf=\"center\"\n onMouseEnter={()=>handleMouseEnter(1)}\n onMouseLeave={handleMouseLeave}\n style={{ marginTop: 10, padding: 0, paddingInline: 10,\n border: ishovered===1?'3px solid #01A982':'2px solid #01A982',\n backgroundColor:'white',\n }}\n onClick={() => changeQuestion(0)}\n >\n {() => (\n <Box\n pad=\"small\"\n direction=\"row\"\n align=\"center\"\n gap=\"small\"\n style={{ padding: 7 }}\n >\n <Image\n src=\"/img/home/like.png\"\n alt=\"I like something\"\n style={{ height: 22, width: 22 }}\n />\n <Text>I like something</Text>\n </Box>\n )}\n </Button>\n <Button\n alignSelf=\"center\"\n onMouseEnter={()=>handleMouseEnter(2)}\n onMouseLeave={handleMouseLeave}\n style={{ marginTop: 10, padding: 0, paddingInline: 10,\n border: ishovered===2 ? '3px solid #01A982' : '2px solid #01A982',\n backgroundColor:'white',\n }}\n onClick={() => changeQuestion(1)}\n >\n {() => (\n <Box\n pad=\"small\"\n direction=\"row\"\n align=\"center\"\n gap=\"small\"\n style={{ padding: 7 }}\n >\n <Image\n src=\"/img/home/idea.png\"\n alt=\"I have an idea\"\n style={{ height: 24, width: 24 }}\n />\n <Text>I have an idea</Text>\n </Box>\n )}\n </Button>\n <Button\n alignSelf=\"center\"\n onMouseEnter={()=>handleMouseEnter(3)}\n onMouseLeave={handleMouseLeave}\n style={{ marginTop: 10, padding: 0, paddingInline: 10,\n border: ishovered===3 ? '3px solid #01A982' : '2px solid #01A982',\n backgroundColor:'white',\n }}\n onClick={() => changeQuestion(2)}\n >\n {() => (\n <Box\n pad=\"small\"\n direction=\"row\"\n align=\"center\"\n gap=\"small\"\n style={{ padding: 7 }}\n >\n <Image\n src=\"/img/home/something-wrong.png\"\n alt=\"Something's not working\"\n style={{ height: 24, width: 24 }}\n />\n <Text>Something's not working</Text>\n </Box>\n )}\n </Button>\n </Box>\n ) : (\n <Box style={{ marginBottom: 60, marginInline: 20 }}>\n {isSubmissionSuccess === true ? (\n <>\n <Image\n height={60}\n width={60}\n alignSelf=\"center\"\n src=\"https://pbs.twimg.com/profile_images/1060682187232600065/SotJzj_4_400x400.jpg\"\n style={{ marginTop: 20 }}\n />\n <Text\n style={{\n fontWeight: 'bold',\n textAlign: 'center',\n marginTop: 25,\n fontSize: 22,\n }}\n >\n Thank You!\n </Text>\n <Text\n style={{\n textAlign: 'center',\n fontSize: 16,\n fontWeight: '500',\n }}\n >\n We value your feedback and we will use it to improve our\n websites and services.\n </Text>\n <Button\n label=\"Close\"\n style={{ marginTop: 30,backgroundColor:'#01A982' }}\n onClick={() => {\n successClose();\n }}\n alignSelf=\"center\"\n primary\n />\n </>\n ) : (\n <>\n <div style={{ textAlign: 'center', marginTop: 40 }}>\n Please try again later\n </div>\n <Button\n label=\"Close\"\n style={{ marginTop: 30,backgroundColor:'#01A982' }}\n onClick={() => {\n successClose();\n }}\n alignSelf=\"center\"\n primary\n />\n </>\n )}\n </Box>\n ))}\n {selQuestion && (\n <Box style={{ marginInline: 20, marginTop: 20, marginBottom: 20 }}>\n <Box style={{ marginBottom: 20 }} onClick={() => backHandler()}>\n <FormPreviousLink />\n </Box>\n {!emailDis ? (\n <>\n <Text weight=\"bold\">{selQuestion.title}</Text>\n <Text style={{ fontSize: 14 }}>{selQuestion.subTitle}</Text>\n <TextArea\n rows=\"5\"\n name=\"value\"\n value={feedbackFromik.values.value}\n placeholder=\"Type here...\"\n required\n style={{ marginTop: 10 }}\n onChange={(val) => {\n feedbackFromik.handleChange(val);\n }}\n onBlur={feedbackFromik.handleBlur}\n onSubmit={() => {}}\n />\n {feedbackFromik.errors.value && (\n <Text style={{ fontSize: 14 }}>\n {feedbackFromik.errors.value}\n </Text>\n )}\n <Button\n label=\"Next\"\n style={ feedbackFromik.errors.value || feedbackFromik.values.value.trim().length===0? \n { marginTop: 20,backgroundColor:'white' }:\n { marginTop: 20,backgroundColor:'#01A982' }} \n icon={<FormNextLink />}\n onClick={() => setEmailDis(true)}\n alignSelf=\"end\"\n reverse\n primary\n disabled={\n !!feedbackFromik.errors.value || feedbackFromik.values.value.trim().length===0}\n />\n </>\n ) : (\n <>\n <Text weight=\"bold\">Can we get back to you?</Text>\n <Text style={{ fontSize: 14 }}>\n If yes, please share your email\n </Text>\n <TextInput\n name=\"email\"\n rows=\"5\"\n value={feedbackFromik.values.email}\n style={{ marginTop: 10 }}\n placeholder=\"Enter Your Email\"\n onChange={feedbackFromik.handleChange}\n onBlur={feedbackFromik.handleBlur}\n />\n {feedbackFromik.errors.email && (\n <Text style={{ fontSize: 14 }}>\n {feedbackFromik.errors.email}\n </Text>\n )}\n <Button\n label=\"Send Feedback\"\n style={ feedbackFromik.errors.email ? \n { marginTop: 20,backgroundColor:'#fffa' }:\n { marginTop: 20,backgroundColor:'#01A982' }} \n onClick={() => {\n feedbackFromik.submitForm();\n }}\n alignSelf=\"end\"\n primary\n disabled={!!feedbackFromik.errors.email} \n />\n </>\n )}\n </Box>\n )}\n </Box>\n );\n};\nFeedbackBody.defaultProps = {\n bodyText:\n \"Need help? Have feedback? I'm a human so please be nice and I'll fix it!\",\n bodyStyles: defaultBodyStyles,\n showEmailInput: true,\n showMessageInput: true,\n showNameInput: true,\n numberOfStars: 5,\n};\nexport default FeedbackBody;\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { Card } from 'grommet';\nimport FeedbackHeader from '../FeedbackHeader/FeedbackHeader';\nimport FeedbackBody from '../FeedbackBody/FeedbackBody';\n\nconst formStyles = {\n position: 'fixed',\n backgroundColor: '#FAFAFA',\n border: '1px solid #dcdcdc',\n borderRadius: '6px 6px 0 0',\n zIndex: '50000',\n bottom: '0px',\n height: 'auto',\n width: 'auto',\n};\n\nconst FeedbackForm = (props) => {\n const {\n headerStyles,\n headerText,\n position,\n handleClose,\n handleCustomPosition,\n bodyText,\n nextHandler,\n feedbackFromik,\n ansQuestion,\n changeAnsQue,\n selQuestion,\n changeQuestion,\n cancelQuestion,\n successClose,\n isSubmissionSuccess,\n } = props;\n\n const customFormStyles = handleCustomPosition(position, formStyles);\n return (\n <Card\n height=\"small\"\n width=\"small\"\n background=\"light-1\"\n style={customFormStyles}\n >\n <FeedbackHeader\n styles={headerStyles}\n headerText={headerText}\n handleClose={handleClose}\n />\n <FeedbackBody\n bodyText={bodyText}\n feedbackFromik={feedbackFromik}\n ansQuestion={ansQuestion}\n nextHandler={nextHandler}\n changeAnsQue={changeAnsQue}\n selQuestion={selQuestion}\n changeQuestion={changeQuestion}\n cancelQuestion={cancelQuestion}\n successClose={successClose}\n isSubmissionSuccess={isSubmissionSuccess}\n />\n </Card>\n );\n};\n\nexport default FeedbackForm;\n","/* eslint-disable no-use-before-define */\n/* eslint-disable max-len */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable no-alert */\n/* eslint-disable react/prop-types */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box } from 'grommet';\nimport { useFormik } from 'formik';\nimport * as yup from 'yup';\nimport FeedBackButton from './FeedbackButton/FeedbackButton';\nimport FeedbackForm from './FeedbackForm/FeedbackForm';\n\nconst isEmpty = (str) => !str.trim().length;\n\nconst handleCustomPosition = (position, formStyles) => {\n let customFormStyles;\n if (position === 'left') {\n customFormStyles = { ...formStyles, left: '5%' };\n } else {\n customFormStyles = { ...formStyles, right: '3%' };\n }\n return customFormStyles;\n};\n\nconst questions = [\n {\n id: 1,\n display: 'I like something',\n title: 'What did you like?',\n subTitle: 'Help us improve by giving us more detail.',\n },\n {\n id: 2,\n display: 'I have an idea',\n title: 'What is your suggestion?',\n subTitle: 'Give us more details about it.',\n },\n {\n id: 3,\n display: \"Something's not working\",\n title: 'What did you find?',\n subTitle: 'Give us more details so we can look into it.',\n },\n];\n\nconst Feedback = (props) => {\n const [showButton, setShowButton] = useState(true);\n const [showForm, setShowForm] = useState(false);\n const [selQuestion, setSelQuestion] = useState(undefined);\n const {\n headerText,\n buttonText,\n position,\n buttonStyles,\n headerStyles,\n headerBtnStyles,\n headerBtnText,\n bodyText,\n style,\n handleClose,\n handleButtonClick,\n handleSubmit,\n isSubmissionSuccess,\n } = props;\n useEffect(() => {\n if (isSubmissionSuccess !== undefined) {\n setSelQuestion(undefined);\n feedbackFromik.resetForm();\n }\n }, [isSubmissionSuccess]);\n\n const submithandler = (values) => {\n if (isEmpty(values.value)) {\n alert('Please provide the feeback');\n } \n else{handleSubmit({\n message: values.value,\n email: values?.email || '',\n proxy: 'hackshack',\n });\n };\n };\n const successClose = () => {\n handleClose();\n setShowForm(false);\n setShowButton(true);\n };\n\n const validationSchema = yup.object({\n value: yup.string().required('Required'),\n email: yup.string().email('Invalid email format'),\n });\n const initialState = {\n value: '',\n email: '',\n };\n const feedbackFromik = useFormik({\n initialValues: initialState,\n onSubmit: submithandler,\n validationSchema,\n });\n const buttonClickHandler = () => {\n setShowButton(false);\n setShowForm(true);\n handleButtonClick();\n };\n const nextHandler = () => {\n if (!selQuestion) {\n setSelQuestion(questions[0]);\n }\n };\n\n const changeQuestion = (value) => {\n setSelQuestion(questions[value]);\n };\n\n const closeHandler = () => {\n setShowButton(true);\n setSelQuestion(undefined);\n feedbackFromik.resetForm();\n setShowForm(false);\n handleClose();\n };\n\n const cancelQuestion = () => {\n setSelQuestion(undefined);\n feedbackFromik.resetForm();\n };\n\n return (\n <Box>\n {showForm && (\n <Box>\n <FeedbackForm\n style={style}\n headerText={headerText}\n position={position}\n headerStyles={headerStyles}\n headerBtnStyles={headerBtnStyles}\n headerBtnText={headerBtnText}\n handleClose={closeHandler}\n bodyText={bodyText}\n feedbackFromik={feedbackFromik}\n selQuestion={selQuestion}\n handleCustomPosition={handleCustomPosition}\n changeQuestion={changeQuestion}\n nextHandler={nextHandler}\n questions={questions}\n cancelQuestion={cancelQuestion}\n successClose={successClose}\n isSubmissionSuccess={isSubmissionSuccess}\n />\n </Box>\n )}\n {showButton && (\n <FeedBackButton\n position={position}\n styles={buttonStyles}\n text={buttonText}\n handleButtonClick={buttonClickHandler}\n handleCustomPosition={handleCustomPosition}\n />\n )}\n </Box>\n );\n};\n\nFeedback.propTypes = {\n headerText: PropTypes.string,\n bodyText: PropTypes.string,\n position: PropTypes.string,\n handleClose: PropTypes.func,\n handleSubmit: PropTypes.func,\n handleButtonClick: PropTypes.func,\n buttonStyles: PropTypes.object,\n headerStyles: PropTypes.object,\n headerBtnStyles: PropTypes.object,\n buttonText: PropTypes.string,\n headerBtnText: PropTypes.string,\n};\n\nFeedback.defaultProps = {\n position: 'right',\n handleSubmit: () => {},\n handleClose: () => {},\n handleButtonClick: () => {},\n};\n\nexport default Feedback;\n","/* eslint-disable max-len */\n/* eslint-disable react/jsx-no-undef */\nimport React, { useState } from 'react';\nimport { Box, Heading, Anchor } from 'grommet';\nimport axios from 'axios';\nimport { EmailCapture } from '../../containers';\nimport Feedback from '../Feedback/index';\nimport AuthService from '../../services/auth.service';\n// import { AppContext } from '../../providers/AppProvider';\n\nexport const Footer = () => {\n const [isSubmissionSuccess, setIsSubmissionSuccess] = useState(undefined);\n const sendEmail = (data) => {\n axios({\n method: 'POST',\n url: `${process.env.GATSBY_WORKSHOPCHALLENGE_API_ENDPOINT}/api/email/send-feedback`,\n headers: {\n 'x-access-token': AuthService.getCurrentUser().accessToken,\n },\n data: {\n message: data.message,\n email: data.email,\n proxy: 'hackshack',\n },\n })\n .then((response) => {\n setIsSubmissionSuccess(true);\n console.log('response', response);\n if (response?.data?.status === 200) {\n console.log('success');\n } else {\n console.log('failure');\n }\n })\n .catch((err) => {\n setIsSubmissionSuccess(false);\n if (err.response) {\n if (err.response.status === 401) {\n AuthService.login().then(() => sendEmail());\n } else {\n console.log('err', err);\n }\n }\n });\n };\n return (\n <div>\n <Box\n direction=\"row-responsive\"\n border={{ side: 'top', size: 'small' }}\n justify=\"between\"\n margin={{ horizontal: 'medium' }}\n pad={{ vertical: 'large', horizontal: 'medium' }}\n flex={false}\n gap=\"xlarge\"\n >\n <Box>\n <EmailCapture bodyCopy2 />\n </Box>\n <Box flex={false} direction=\"row\" justify=\"between\" gap=\"large\">\n <Box align=\"start\" gap=\"medium\">\n <Heading margin=\"none\" level=\"4\">\n HPE Developer\n </Heading>\n <Box gap=\"small\">\n <Anchor\n align=\"start\"\n href=\"https://developer.hpe.com/slack-signup\"\n label=\"Slack\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n <Anchor\n align=\"start\"\n href=\"https://twitter.com/HPE_Developer\"\n label=\"X\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n <Anchor\n align=\"start\"\n href=\"https://www.youtube.com/playlist?list=PLtS6YX0YOX4f5TyRI7jUdjm7D9H4laNlF\"\n label=\"YouTube\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n <Anchor\n align=\"start\"\n href=\"mailto:hpedev@hpe.com?\n subject=HPE%20DEV%20Portal%20-%20Contact%20Us\"\n label=\"Contact Us\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n </Box>\n </Box>\n <Box align=\"start\" gap=\"medium\">\n <Heading margin=\"none\" level=\"4\">\n About HPE\n </Heading>\n <Box gap=\"small\">\n <Anchor\n align=\"start\"\n href=\"https://www.hpe.com/\"\n label=\"HPE.com\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n <Anchor\n align=\"start\"\n href=\"https://www.hpe.com/us/en/about/jobs.html\"\n label=\"HPE Careers\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n <Anchor\n align=\"start\"\n href=\"https://community.hpe.com/\"\n label=\"HPE Community\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n <Anchor\n align=\"start\"\n href=\"https://github.com/hewlettpackard/\"\n label=\"HPE GitHub\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n </Box>\n </Box>\n </Box>\n </Box>\n <Feedback\n style={{ zIndex: '100', position: 'fixed', left: '2px!' }}\n position=\"right\"\n headerText=\"Help us improve the Community\"\n bodyText=\"What kind of feedback do you have?\"\n buttonText=\"Feedback\"\n handleClose={() => setIsSubmissionSuccess(undefined)}\n isSubmissionSuccess={isSubmissionSuccess}\n handleSubmit={(data) => {\n sendEmail(data);\n }}\n handleButtonClick={() => console.log('handleButtonClick')}\n />\n </div>\n );\n};\nexport default Footer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Box, Heading, Text, Button } from 'grommet';\n\nexport const Hero = ({ title, desc, bg }) => (\n <Box pad=\"large\" height=\"large\" background={`url(${bg})`} justify=\"center\">\n <Box width=\"large\" gap=\"medium\">\n <Heading size=\"large\" color=\"white\" margin=\"none\">\n {title}\n </Heading>\n <Text color=\"white\">{desc}</Text>\n <Box direction=\"row\" gap=\"small\">\n <Button\n primary\n color=\"brand\"\n label={<Text weight=\"bold\">Learn more</Text>}\n />\n <Button\n color=\"brand\"\n label={\n <Text color=\"light-1\" weight=\"bold\">\n Login\n </Text>\n }\n onClick={() => {}}\n />\n </Box>\n </Box>\n </Box>\n);\n\nHero.propTypes = {\n title: PropTypes.string.isRequired,\n desc: PropTypes.string,\n bg: PropTypes.string.isRequired,\n};\n\nexport default Hero;\n","import React, { useRef, useState } from 'react';\nimport { Avatar, Box, Layer, Text } from 'grommet';\nimport { LinkNext } from 'grommet-icons';\nimport PropTypes from 'prop-types';\nimport { ButtonLink } from '..';\n\n\nfunction getInitials(name) {\n if (!name) {\n return '';\n }\n const chunks = name.toString().split(' ').slice(0, 2);\n return chunks.map((c) => c[0].toUpperCase());\n}\n\nconst width = 250;\n\nexport function UserMenu({ userInfo }) {\n const [open, setOpen] = useState(false);\n const ref = useRef();\n const { name, email } = userInfo || {};\n const onMenuClick = () => {\n setOpen((o) => !o);\n };\n\n // console.log('--user-- UserMenu', userInfo);\n let redirectURI =\n typeof window !== 'undefined'\n ? window.location.href\n : 'https://developer.hpe.com';\n redirectURI += redirectURI.charAt(redirectURI.length - 1) !== '/' ? '/' : '';\n return (\n <Box>\n <Avatar background=\"brand\" size=\"medium\" onClick={onMenuClick}>\n {getInitials(name)}\n </Avatar>\n <div ref={ref} />\n {open && (\n <Layer\n // animate={false}\n // target={ref.current}\n modal={false}\n onClickOutside={() => setOpen(false)}\n position=\"top-right\"\n >\n <div\n style={{\n position: 'absolute',\n top: '16vh',\n right: '60px',\n }}\n >\n <Box\n style={{\n boxShadow: '0px 6px 12px rgba(0, 0, 0, 0.12)',\n }}\n width={width}\n background=\"#fff\"\n >\n <Box style={{ padding: 16 }}>\n <Text size=\"large\" weight=\"bold\">\n {name}\n </Text>\n <Text>{email}</Text>\n </Box>\n <div\n style={{\n borderBottom: '1px solid #ccc',\n height: 1,\n width,\n }}\n />\n {console.log(\n 'sing out +++++',\n `https://www.hpe.com/system/sling/logout.html?redirectUri=${redirectURI}`,\n )}\n <ButtonLink\n align=\"start\"\n icon={<LinkNext />}\n key=\"os\"\n label=\"Sign Out\"\n to={`https://www.hpe.com/system/sling/logout.html?redirectUri=${redirectURI}`}\n />\n ,\n </Box>\n </div>\n </Layer>\n )}\n </Box>\n );\n}\n\nUserMenu.propTypes = {\n userInfo: PropTypes.any,\n};\n","/* eslint-disable max-len */\nimport React, { useContext, useEffect } from 'react';\nimport axios from 'axios';\nimport {\n Box,\n Button,\n DropButton,\n Header as GrommetHeader,\n Nav,\n // Menu as HeaderMenu,\n ResponsiveContext,\n} from 'grommet';\nimport { Menu, Search, FormDown } from 'grommet-icons';\nimport styled from 'styled-components';\nimport { AppContext } from '../../providers/AppProvider';\nimport { ButtonLink } from '..';\nimport { UserMenu } from './UserMenu';\n\nconst TextAlignLeft = styled(Box)`\n & > a {\n text-align: left;\n font-weight: 400;\n padding-right: 30px;\n }\n`;\n\nfunction Header() {\n const { data, user: userDetail } = useContext(AppContext);\n\n const platforms = data?.platform?.edges;\n const opensource = data?.opensource?.edges;\n const greenlake = data?.greenlake?.edges;\n\n const GreenLakeButtonLinks = ({ column }) => {\n /* const leftColumn = greenlake.filter((gl, index) => index % 2 === 0); */\n const leftColumn = greenlake;\n const rightColumn = greenlake.filter((gl, index) => index % 2);\n // const externalLinks = [\n // {\n // title: 'HPE GreenLake API Portal',\n // slug: 'https://developer.greenlake.hpe.com/',\n // },\n // {\n // title: 'HPE GreenLake Test Drive',\n // slug: 'https://testdrive.greenlake.hpe.com/',\n // },\n // ];\n\n // const externalLeftColumn = externalLinks.filter(\n // (el, index) => index % 2 === 0,\n // );\n // const externalRightColumn = externalLinks.filter((el, index) => index % 2);\n // const externalLinksColumn =\n // column === 'left' ? externalLeftColumn : externalRightColumn;\n const greenlakeColumn = column === 'left' ? leftColumn : rightColumn;\n\n const glColumns = greenlakeColumn.map((gl, index) => {\n const { slug } = gl.node.fields;\n const { title } = gl.node.frontmatter;\n\n return (\n <ButtonLink\n key={index}\n label={title}\n to={`/greenlake${slug}`}\n alignSelf=\"start\"\n fill=\"horizontal\"\n />\n );\n });\n\n // const elColumns = externalLinksColumn.map((el, index) => {\n // const { slug, title } = el;\n // return (\n // <ExternalButtonLink\n // key={index}\n // label={title}\n // to={`${slug}`}\n // alignSelf=\"start\"\n // fill=\"horizontal\"\n // />\n // );\n // });\n const allLinks = [/* ...elColumns, */ ...glColumns];\n return allLinks;\n };\n // const iframeRef = useRef();\n\n const PlatformButtonLinks = ({ column }) => {\n const leftColumn = platforms.filter((platform, index) => index % 2 === 0);\n const rightColumn = platforms.filter((platform, index) => index % 2);\n const platformsColumn = column === 'left' ? leftColumn : rightColumn;\n\n return platformsColumn.map((platform, index) => {\n const { slug } = platform.node.fields;\n const { title } = platform.node.frontmatter;\n\n return (\n <ButtonLink\n key={index}\n label={title}\n to={`/platform${slug}`}\n alignSelf=\"start\"\n fill=\"horizontal\"\n />\n );\n });\n };\n\n const OpenSourceButtonLinks = ({ column }) => {\n const leftColumn = opensource.filter((os, index) => index % 2 === 0);\n const rightColumn = opensource.filter((os, index) => index % 2);\n const osColumn = column === 'left' ? leftColumn : rightColumn;\n\n return osColumn.map((os, index) => {\n const { slug } = os.node.fields;\n const s = slug.toLowerCase();\n const { title } = os.node.frontmatter;\n\n return (\n <ButtonLink\n key={index}\n label={title}\n to={`/platform${s}home`}\n alignSelf=\"start\"\n fill=\"horizontal\"\n />\n );\n });\n };\n\n const handleHPESignIn = () => {\n let redirectURI =\n typeof window !== 'undefined'\n ? window.location.href\n : 'https://developer.hpe.com';\n redirectURI +=\n redirectURI.charAt(redirectURI.length - 1) !== '/' ? '/' : '';\n\n console.log(\n 'Sign in URL+++',\n `${process.env.GATSBY_COCKPIT_HPE_OAUTH}?redirectUri=${redirectURI}`,\n );\n window.location.href = `${process.env.GATSBY_COCKPIT_HPE_OAUTH}?redirectUri=${redirectURI}`;\n };\n // const hanldeGitHubSignIn = () => {\n // window.location.href = `${GATSBY_CLIENT_OAUTH}?scope=user&client_id=${GATSBY_CLIENT_ID}&redirect_uri=${GATSBY_REDIRECT_URI}`;\n // };\n\n useEffect(() => {\n // After requesting Github access, Github redirects back to your app with a code parameter\n const url = window.location.href;\n const hasCode = url.includes('?code=');\n // If Github API returns the code parameter\n if (hasCode) {\n const newUrl = url.split('?code=');\n window.history.pushState({}, null, newUrl[0]);\n axios\n .post(\n `${process.env.GATSBY_WORKSHOPCHALLENGE_API_ENDPOINT}/api/users/github-auth`,\n {\n code: newUrl[1],\n },\n )\n .then((result) => {\n localStorage.setItem('userInfo', JSON.stringify(result.data));\n window.location.reload();\n });\n }\n }, []);\n\n // console.log('--user-- Header', userDetail);\n const size = useContext(ResponsiveContext);\n const navLinks = [\n // <ButtonLink align=\"start\" key=\"os\" label=\"Open Source\" to=\"/opensource\" />,\n // <ButtonLink\n // align=\"start\"\n // key=\"os\"\n // label=\"HPE GreenLake\"\n // to=\"/platform/hpe-greenlake/home\"\n // />,\n <DropButton\n label=\"HPE GreenLake cloud\"\n align=\"start\"\n dropAlign={{ top: 'bottom', left: 'left' }}\n icon={<FormDown />}\n reverse\n dropContent={\n <TextAlignLeft>\n {/* <ButtonLink\n key=\"pl\"\n label=\"HPE GreenLake Platform\"\n to=\"/greenlake/hpe-greenlake-platform/home/\"\n state={{ state: { isPlatformHeaderClicked: true } }}\n alignSelf=\"start\"\n fill=\"horizontal\"\n /> */}\n <Box direction=\"row\">\n <TextAlignLeft>\n <GreenLakeButtonLinks column=\"left\" />\n </TextAlignLeft>\n {/* <TextAlignLeft>\n <GreenLakeButtonLinks column=\"right\" />\n </TextAlignLeft> */}\n </Box>\n </TextAlignLeft>\n }\n />,\n <DropButton\n label=\"Products\"\n dropAlign={{ top: 'bottom', left: 'left' }}\n icon={<FormDown />}\n reverse\n dropContent={\n <TextAlignLeft>\n <ButtonLink\n key=\"pl\"\n label=\"All Products\"\n to=\"/platforms\"\n state={{ state: { isPlatformHeaderClicked: true } }}\n alignSelf=\"start\"\n fill=\"horizontal\"\n />\n <Box direction=\"row\">\n <TextAlignLeft>\n <PlatformButtonLinks column=\"left\" />\n </TextAlignLeft>\n <TextAlignLeft>\n <PlatformButtonLinks column=\"right\" />\n </TextAlignLeft>\n </Box>\n </TextAlignLeft>\n }\n />,\n <DropButton\n label=\"OpenSource\"\n align=\"start\"\n dropAlign={{ top: 'bottom', left: 'left' }}\n icon={<FormDown />}\n reverse\n dropContent={\n <TextAlignLeft>\n <ButtonLink\n key=\"pl\"\n label=\"All Open Source\"\n to=\"/opensource\"\n state={{ state: { isPlatformHeaderClicked: true } }}\n alignSelf=\"start\"\n fill=\"horizontal\"\n />\n <Box direction=\"row\">\n <TextAlignLeft>\n <OpenSourceButtonLinks column=\"left\" />\n </TextAlignLeft>\n <TextAlignLeft>\n <OpenSourceButtonLinks column=\"right\" />\n </TextAlignLeft>\n </Box>\n </TextAlignLeft>\n }\n />,\n // <ButtonLink\n // key=\"euc\"\n // label=\"Explore Use Cases\"\n // to=\"/use-cases\"\n // alignSelf=\"start\"\n // />,\n // <ButtonLink align=\"start\" key=\"yr\" label=\"Your Role\" to=\"/role\" />,\n <ButtonLink align=\"start\" key=\"ev\" label=\"Events\" to=\"/events\" />,\n <ButtonLink align=\"start\" key=\"su\" label=\"Skill Up\" to=\"/skillup\" />,\n\n <ButtonLink align=\"start\" key=\"cm\" label=\"Community\" to=\"/community\" />,\n ];\n\n navLinks.push(\n <ButtonLink\n align=\"start\"\n key=\"bl\"\n label=\"Blog\"\n to=\"/blog\"\n state={{ state: { isBlogHeaderClicked: true } }}\n />,\n );\n\n if (!userDetail) {\n navLinks.push(\n <Button\n align=\"start\"\n key=\"os\"\n label=\"SIGN IN\"\n secondary\n onClick={handleHPESignIn}\n />,\n );\n }\n if (size === 'small') {\n navLinks.push(\n <ButtonLink\n align=\"start\"\n to=\"/search\"\n icon={<Search />}\n label=\"Search\"\n reverse\n />,\n );\n }\n\n return (\n <GrommetHeader\n justify=\"between\"\n pad={{ horizontal: 'medium', vertical: 'small' }}\n >\n <Box flex={false}>\n <ButtonLink label=\"HPE Developer\" to=\"/\" />\n </Box>\n {size === 'small' ? (\n <DropButton\n icon={<Menu />}\n dropAlign={{ top: 'bottom' }}\n dropContent={<Nav direction=\"column\">{navLinks}</Nav>}\n />\n ) : (\n <Box flex=\"shrink\" overflow=\"hidden\" pad=\"2px\">\n <Nav direction=\"row\" gap=\"medium\">\n {navLinks.map((l, index) => (\n <Box key={index} flex={false}>\n {l}\n </Box>\n ))}\n </Nav>\n </Box>\n )}\n {size !== 'small' && (\n <ButtonLink\n align=\"start\"\n to=\"/search\"\n icon={<Search />}\n label=\"Search\"\n reverse\n />\n )}\n {userDetail && <UserMenu userInfo={userDetail} />}\n\n {/* <iframe\n title=\"cookie-session\"\n ref={iframeRef}\n id=\"iframe\"\n src=\"https://origin-qa-www-hpe-com.ext.hpe.com/us/en/service-pages/hfws-cookie.html\"\n style={{ display: 'none' }}\n /> */}\n </GrommetHeader>\n );\n}\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Text } from 'grommet';\n\nfunction truncate(chunks, maxLength) {\n if (!maxLength || !chunks || !chunks.length) {\n return chunks;\n }\n\n const results = [];\n let totalLength = 0;\n let text = '';\n let index = 0;\n\n // special case the first bit to truncate the front half of non-highlighted\n // text before the first highlighted piece but leave a little context\n if (\n !chunks[index].isHighlighted &&\n chunks[index].text.length >= maxLength / 4\n ) {\n text = chunks[index].text.substring(chunks[index].text.length - 20);\n results.push({\n text: `...${text}`,\n isHighlighted: chunks[index].isHighlighted,\n });\n totalLength += text.length;\n index += 1;\n\n text = chunks[index].text.substring(0, maxLength - totalLength);\n results.push({ text, isHighlighted: chunks[index].isHighlighted });\n totalLength += text.length;\n index += 1;\n }\n\n // Add in any following bits and other matches if they fit\n for (; index < chunks.length && totalLength < maxLength; index += 1) {\n text =\n chunks[index].text.length + totalLength < maxLength\n ? chunks[index].text\n : chunks[index].text.substring(0, maxLength - totalLength);\n totalLength += text.length;\n if (text !== chunks[index].text) {\n text += '...';\n }\n results.push({ text, isHighlighted: chunks[index].isHighlighted });\n }\n return results;\n}\n\nfunction highlight(content, positions, maxLength) {\n const chunks = [];\n let lastIndex = 0;\n const sortedPositions = positions.slice(); // clone\n sortedPositions.sort((a, b) => a[0] - b[0]); // asscending by start index\n sortedPositions.forEach(([start, length]) => {\n const text = content.substring(lastIndex, start);\n if (text) {\n chunks.push({ text, isHighlighted: false });\n }\n chunks.push({\n text: content.substring(start, start + length),\n isHighlighted: true,\n });\n lastIndex = start + length;\n });\n if (lastIndex < content.length) {\n chunks.push({ text: content.substring(lastIndex), isHighlighted: false });\n }\n return truncate(chunks, maxLength);\n}\n\nconst HighlightedText = ({\n positions,\n content,\n isMarkdown,\n maxLength,\n ...rest\n}) => {\n const chunks = highlight(content, positions, maxLength);\n\n return (\n <Text {...rest}>\n {chunks.map(({ text, isHighlighted }, index) => {\n if (isHighlighted) {\n return <mark key={index}>{text}</mark>;\n }\n return <span key={index}>{text}</span>;\n })}\n </Text>\n );\n};\n\nHighlightedText.propTypes = {\n content: PropTypes.string,\n positions: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n isMarkdown: PropTypes.bool,\n maxLength: PropTypes.number,\n};\nexport default HighlightedText;\n","function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError(\"Cannot destructure \" + obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nimport { Box } from '../Box';\nvar Main = function Main(_ref) {\n var rest = _extends({}, (_objectDestructuringEmpty(_ref), _ref));\n return /*#__PURE__*/React.createElement(Box, _extends({\n as: \"main\",\n fill: \"vertical\",\n flex: \"grow\",\n overflow: \"auto\"\n }, rest));\n};\nexport { Main };","import { hpe } from 'grommet-theme-hpe';\n\nconst theme = hpe;\n\nexport default theme;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grommet, Box, Main } from 'grommet';\nimport theme from './theme';\nimport './reset.css';\nimport { Footer, Header } from '../index';\n\nconst Layout = ({ children }) => {\n return (\n <Grommet theme={theme}>\n <Box direction=\"row\" justify=\"center\">\n <Box basis=\"xxlarge\" flex=\"shrink\">\n <Header />\n <Main flex={false} fill={undefined} overflow=\"visible\">\n {children}\n </Main>\n <Footer />\n </Box>\n </Box>\n </Grommet>\n );\n};\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","/* eslint-disable max-len */\n/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Helmet from 'react-helmet';\nimport { useSiteMetadata } from '../../hooks/use-site-metadata';\n\nfunction SEO({ description, lang, meta, title, image }) {\n const siteMetadata = useSiteMetadata();\n const metaDescription = description || siteMetadata.description;\n\n return (\n <Helmet\n htmlAttributes={{\n lang,\n }}\n title={title}\n titleTemplate={`%s | ${siteMetadata.title}`}\n meta={[\n {\n name: 'description',\n content: metaDescription,\n },\n {\n property: 'og:title',\n content: title,\n },\n {\n property: 'og:description',\n content: metaDescription,\n },\n {\n property: 'og:image',\n content: image,\n },\n {\n property: 'og:image:width',\n content: '200',\n },\n {\n property: 'og:image:height',\n content: '200',\n },\n {\n property: 'og:type',\n content: 'website',\n },\n {\n name: 'twitter:card',\n content: 'summary',\n },\n {\n name: 'twitter:creator',\n content: siteMetadata.author,\n },\n {\n name: 'twitter:title',\n content: title,\n },\n {\n name: 'twitter:description',\n content: metaDescription,\n },\n {\n name: 'twitter:image',\n content: image,\n },\n ].concat(meta)}\n >\n <script src=\"//h50007.www5.hpe.com/hfws-static/js/framework/jquery/v-2-2-0/jquery.js\" />\n <script src=\"//h50007.www5.hpe.com/hfws/us/en/hpe/slim/root?contentType=js&hide_head_text=true\" />\n </Helmet>\n );\n}\n\nSEO.defaultProps = {\n lang: 'en',\n meta: [],\n description: '',\n};\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string.isRequired,\n image: PropTypes.string,\n};\n\nexport default SEO;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Box, Button } from 'grommet';\nimport { Linkedin, Twitter, Link } from 'grommet-icons';\n\nexport const Share = ({ url, text }) => {\n const [toolTip, setToolTip] = useState('Click to copy the URL to clipboard');\n return (\n <Box gap=\"small\" direction=\"row\" justify=\"start\">\n <Button\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n a11yTitle=\"Share on Twitter\"\n href={`https://twitter.com/intent/tweet?url=${url}&text=${text}`}\n icon={<Twitter />}\n />\n <Button\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n a11yTitle=\"Share on LinkedIn\"\n href={`https://www.linkedin.com/sharing/share-offsite/?url=${url}`}\n icon={<Linkedin />}\n />\n <Button\n icon={<Link />}\n onClick={() => {\n navigator.clipboard.writeText(window.location.href);\n setToolTip('Copied!');\n }}\n tip={{\n dropProps: { align: { left: 'right' } },\n content: toolTip,\n }}\n />\n </Box>\n );\n};\n\nShare.propTypes = {\n url: PropTypes.string,\n text: PropTypes.string,\n};\nexport default Share;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Heading } from 'grommet';\n\nconst PageDescription = ({ title, children }) => {\n return (\n <Box\n direction=\"row-responsive\"\n gap=\"large\"\n margin={{ vertical: 'large', horizontal: 'large' }}\n >\n {/* <Box width={{ max: 'medium' }} margin={{ horizontal: 'large' }}>\n <Image src={image} alt={alt} />\n </Box> */}\n <Box justify=\"center\" pad={{ horizontal: 'large' }}>\n <Heading margin=\"none\">{title}</Heading>\n {children}\n </Box>\n </Box>\n );\n};\n\nPageDescription.propTypes = {\n // image: PropTypes.string,\n title: PropTypes.string,\n children: PropTypes.node,\n // alt: PropTypes.string,\n};\n\nexport default PageDescription;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Image, Heading, Card as GrommetCard, Text } from 'grommet';\nimport { navigate } from 'gatsby';\n\nconst monthDay = Intl.DateTimeFormat('default', {\n month: 'long',\n day: 'numeric',\n});\nconst day = Intl.DateTimeFormat('default', {\n day: 'numeric',\n});\nconst year = Intl.DateTimeFormat('default', {\n year: 'numeric',\n});\n\nconst EventCard = ({ node, ...rest }) => (\n <GrommetCard\n elevation=\"medium\"\n flex=\"grow\"\n {...rest}\n /* eslint-disable */\n onClick={\n node.frontmatter.link && node.frontmatter.link.match(/^\\//g)\n ? () => navigate(node.frontmatter.link)\n : node.frontmatter.link\n ? () => window.open(node.frontmatter.link)\n : undefined\n }\n >\n <Box pad=\"large\" direction=\"row-responsive\">\n <Box gap=\"small\" style={{ width: '60%' }}>\n <Heading margin=\"none\" level=\"3\">\n {node.frontmatter.title}\n </Heading>\n <Text>\n {`${monthDay.format(new Date(node.frontmatter.dateStart))} \n `}\n {node.frontmatter.dateEnd &&\n day.format(new Date(node.frontmatter.dateEnd)) >\n day.format(new Date(node.frontmatter.dateStart)) &&\n `- ${day.format(new Date(node.frontmatter.dateEnd))}`}\n {`, ${year.format(new Date(node.frontmatter.dateEnd))}`}\n </Text>\n </Box>\n <Box style={{ width: '10%' }}></Box>\n <Box style={{ width: '30%' }}>\n {node.frontmatter.image && (\n <Image fit=\"contain\" src={node.frontmatter.image} alt=\"event logo\" />\n )}\n </Box>\n </Box>\n </GrommetCard>\n);\nEventCard.propTypes = {\n node: PropTypes.shape({\n frontmatter: PropTypes.shape({\n title: PropTypes.string.isRequired,\n link: PropTypes.string,\n image: PropTypes.string,\n dateStart: PropTypes.string.isRequired,\n dateEnd: PropTypes.string,\n }),\n }).isRequired,\n};\n\nexport default EventCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, ResponsiveContext } from 'grommet';\n\nconst ResponsiveGrid = ({ children, columns, rows, ...props }) => (\n <ResponsiveContext.Consumer>\n {(size) => {\n return (\n <Grid\n margin=\"medium\"\n gap=\"large\"\n {...props}\n rows={rows[size]}\n columns={columns[size]}\n >\n {children}\n </Grid>\n );\n }}\n </ResponsiveContext.Consumer>\n);\n\nResponsiveGrid.propTypes = {\n children: PropTypes.node,\n columns: PropTypes.object,\n rows: PropTypes.object,\n};\n\nexport default ResponsiveGrid;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Text, Heading, Image, Card as GrommetCard } from 'grommet';\nimport { navigate } from 'gatsby';\n\nconst PlatformCard = ({ description, link, image, title, flex }) => (\n <GrommetCard\n elevation=\"medium\"\n pad=\"large\"\n gap=\"large\"\n onClick={\n link\n ? (e) => {\n navigate(link);\n localStorage.setItem(\n 'platformPosition',\n JSON.stringify(e.nativeEvent.pageY - e.nativeEvent.clientY),\n );\n }\n : undefined\n }\n >\n <Box direction=\"row-responsive\" gap=\"large\" align=\"center\">\n {image && (\n <Box flex={flex}>\n <Image fit=\"contain\" src={image} alt=\"platform logo\" />\n </Box>\n )}\n <Box flex>\n <Heading margin=\"none\" level=\"3\" size=\"small\">\n {title}\n </Heading>\n <Text>{description}</Text>\n </Box>\n </Box>\n </GrommetCard>\n);\n\nPlatformCard.propTypes = {\n description: PropTypes.string,\n link: PropTypes.string,\n image: PropTypes.string,\n title: PropTypes.string,\n flex: PropTypes.bool,\n};\n\nexport default PlatformCard;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Box,\n Text,\n Card as GrommetCard,\n Heading,\n ResponsiveContext,\n} from 'grommet';\nimport { navigate } from 'gatsby';\n\nconst OpenSourceCard = ({ title, link, description, category }) => {\n const size = useContext(ResponsiveContext);\n return (\n <GrommetCard\n elevation=\"medium\"\n pad=\"medium\"\n height={size === 'large' ? '200px' : '250px'}\n onClick={\n link\n ? (e) => {\n navigate(link);\n localStorage.setItem(\n 'platformPosition',\n JSON.stringify(e.nativeEvent.pageY - e.nativeEvent.clientY),\n );\n }\n : undefined\n }\n >\n <Box alignSelf=\"end\" margin={{ top: '-10px', right: '-10px' }}>\n <Text color=\"text-weak\">{category}</Text>\n </Box>\n <Box direction=\"row\" gap=\"large\" align=\"center\">\n {/* <Box basis=\"1/3\">\n {image && <Image fit=\"contain\" src={image} alt=\"platform logo\" />}\n </Box> */}\n <Box basis=\"2/3\">\n <Heading margin=\"none\" level=\"3\" size=\"small\">\n {title}\n </Heading>\n <Text>{description}</Text>\n </Box>\n </Box>\n </GrommetCard>\n );\n};\n\nOpenSourceCard.propTypes = {\n // image: PropTypes.string,\n title: PropTypes.string,\n description: PropTypes.string,\n link: PropTypes.string,\n category: PropTypes.string,\n};\n\nexport default OpenSourceCard;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar Star = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Star\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFC95E\",\n fillRule: \"evenodd\",\n d: \"M12 16.667 5 22l3-8-6-4.5h7.5L12 2l2.5 7.5H22L16 14l3 8z\"\n }));\n});\nStar.displayName = 'Star';\nexport { Star };","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Text, Card as GrommetCard, CardHeader, Image } from 'grommet';\nimport { navigate } from 'gatsby';\nimport { Star } from 'grommet-icons';\n\nconst dateFormat = Intl.DateTimeFormat('default', {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n});\n\nconst NewsletterCard = ({\n image,\n title,\n link,\n description,\n category,\n stars,\n date,\n monthly,\n newsletter,\n index,\n}) => (\n <GrommetCard\n pad=\"large\"\n elevation=\"medium\"\n onClick={\n link\n ? (e) => {\n navigate(link);\n localStorage.setItem(\n 'newsletterData',\n JSON.stringify({\n index,\n position: e.nativeEvent.pageY - e.nativeEvent.clientY,\n }),\n );\n }\n : undefined\n }\n >\n <CardHeader justify=\"between\" pad={{ top: 'none', bottom: 'medium' }}>\n {date && (\n <Text weight=\"bold\">{`${dateFormat.format(new Date(date))}`}</Text>\n )}\n {\n <Text color=\"text-weak\">\n {newsletter ? `Monthly #${monthly}` : category}\n </Text>\n }\n </CardHeader>\n <Box gap=\"small\" direction=\"row-responsive\" wrap>\n <Box alignSelf=\"center\">\n {image && (\n <Image\n width=\"216px\"\n height=\"216px\"\n fit=\"contain\"\n src={image}\n alt=\"opensource logo\"\n />\n )}\n {stars && (\n <Box direction=\"row\" gap=\"xsmall\" pad={{ top: 'xsmall' }}>\n <Star color=\"yellow\" />\n <Text size=\"large\" weight=\"bold\">\n 123\n </Text>\n </Box>\n )}\n </Box>\n <Box alignSelf=\"center\">\n <Text size=\"large\" weight=\"bold\">\n {title}\n </Text>\n <Text margin=\"none\" size=\"large\">\n {!newsletter ? description.substring(0, 200) : description}\n </Text>\n </Box>\n </Box>\n </GrommetCard>\n);\n\nNewsletterCard.propTypes = {\n image: PropTypes.string,\n title: PropTypes.string,\n description: PropTypes.string,\n link: PropTypes.string,\n category: PropTypes.string,\n date: PropTypes.string,\n stars: PropTypes.bool,\n monthly: PropTypes.number,\n newsletter: PropTypes.bool,\n index: PropTypes.number,\n};\n\nexport default NewsletterCard;\n","function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError(\"Cannot destructure \" + obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nvar CardBody = function CardBody(_ref) {\n var rest = _extends({}, (_objectDestructuringEmpty(_ref), _ref));\n var theme = useContext(ThemeContext) || defaultProps.theme;\n return /*#__PURE__*/React.createElement(Box, _extends({\n flex: true\n }, theme.card.body, rest));\n};\nexport { CardBody };","function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError(\"Cannot destructure \" + obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nimport { Box } from '../Box';\nvar Footer = function Footer(_ref) {\n var rest = _extends({}, (_objectDestructuringEmpty(_ref), _ref));\n return /*#__PURE__*/React.createElement(Box, _extends({\n as: \"footer\",\n align: \"center\",\n direction: \"row\",\n flex: false,\n gap: \"medium\",\n justify: \"between\"\n }, rest));\n};\nexport { Footer };","function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError(\"Cannot destructure \" + obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Footer } from '../Footer';\n\n// Needs to have a CardBody or a flex container when Card uses a fixed height.\nvar CardFooter = function CardFooter(_ref) {\n var rest = _extends({}, (_objectDestructuringEmpty(_ref), _ref));\n var theme = useContext(ThemeContext) || defaultProps.theme;\n return /*#__PURE__*/React.createElement(Footer, _extends({}, theme.card.footer, rest));\n};\nexport { CardFooter };","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Box,\n Heading,\n Image,\n Card as GrommetCard,\n CardBody,\n CardFooter,\n Paragraph,\n Button,\n} from 'grommet';\nimport { navigate } from 'gatsby';\n\nconst CommunityCard = ({ node, ...rest }) => (\n <GrommetCard\n elevation=\"medium\"\n gap=\"medium\"\n pad=\"large\"\n {...rest}\n /* eslint-disable */\n onClick={\n node.frontmatter.link && node.frontmatter.link.match(/^\\//g)\n ? () => navigate(node.frontmatter.link)\n : node.frontmatter.link\n ? () => window.open(node.frontmatter.link)\n : undefined\n }\n >\n <CardBody pad={{ bottom: 'small' }} align=\"center\" flex={false}>\n {node.frontmatter.image && (\n <Image\n height=\"144\"\n width=\"144\"\n src={node.frontmatter.image}\n alt=\"card body logo\"\n />\n )}\n </CardBody>\n <Box responsive={false} gap=\"none\" flex={true}>\n <Heading margin=\"none\" level=\"4\">\n {node.frontmatter.title}\n </Heading>\n <Paragraph margin=\"none\">{node.frontmatter.description}</Paragraph>\n </Box>\n <CardFooter pad=\"none\">\n <Box wrap align=\"start\">\n <Button primary label={node.frontmatter.linkname} />\n </Box>\n </CardFooter>\n </GrommetCard>\n);\n\nCommunityCard.propTypes = {\n node: PropTypes.shape({\n frontmatter: PropTypes.shape({\n title: PropTypes.string.isRequired,\n link: PropTypes.string,\n linkname: PropTypes.string,\n image: PropTypes.string,\n description: PropTypes.string,\n }),\n }).isRequired,\n};\n\nexport default CommunityCard;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { genericProps } from '../../utils/general-prop-types';\nvar VERTICAL_ALIGN_OPTIONS = ['top', 'bottom'];\nvar HORIZONTAL_ALIGN_OPTIONS = ['right', 'left'];\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n disabled: PropTypes.bool,\n dropAlign: PropTypes.shape({\n top: PropTypes.oneOf(VERTICAL_ALIGN_OPTIONS),\n bottom: PropTypes.oneOf(VERTICAL_ALIGN_OPTIONS),\n left: PropTypes.oneOf(HORIZONTAL_ALIGN_OPTIONS),\n right: PropTypes.oneOf(HORIZONTAL_ALIGN_OPTIONS)\n }),\n dropBackground: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n color: PropTypes.string,\n opacity: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.oneOf(['weak', 'medium', 'strong'])])\n })]),\n dropTarget: PropTypes.object,\n dropProps: PropTypes.object,\n justifyContent: PropTypes.oneOf(['start', 'center', 'end', 'between', 'around', 'stretch']),\n icon: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),\n items: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.object))]).isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n messages: PropTypes.shape({\n closeMenu: PropTypes.string,\n openMenu: PropTypes.string\n }),\n open: PropTypes.bool,\n size: PropTypes.oneOfType([PropTypes.oneOf(['small', 'medium', 'large', 'xlarge']), PropTypes.string])\n });\n}\nexport var MenuPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"aria-label\", \"children\", \"disabled\", \"dropAlign\", \"dropBackground\", \"dropProps\", \"dropTarget\", \"justifyContent\", \"icon\", \"items\", \"label\", \"messages\", \"onKeyDown\", \"open\", \"plain\", \"size\"],\n _excluded2 = [\"align\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useRef, forwardRef, useCallback, useContext, useMemo, useState, useEffect } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { Button } from '../Button';\nimport { DropButton } from '../DropButton';\nimport { Keyboard } from '../Keyboard';\nimport { Text } from '../Text';\nimport { normalizeColor } from '../../utils';\nimport { MessageContext } from '../../contexts/MessageContext';\nimport { MenuPropTypes } from './propTypes';\nvar ContainerBox = styled(Box).withConfig({\n displayName: \"Menu__ContainerBox\",\n componentId: \"sc-17fcys9-0\"\n})([\"max-height:inherit;@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){width:100%;}:focus{outline:none;}\", \";\"], function (props) {\n return props.theme.menu.extend;\n});\n\n/* Notes on keyboard interactivity (based on W3) // For details reference: https://www.w3.org/TR/wai-aria-practices/#menu\n\nTo open menu when menu button is focused:\n- Space/Enter/Up arrow/Down arrow will open menu\n\nTo navigate within menu:\n- Up/down arrow keys can be used and will loop through options\n(keeping focus within the Menu)\n- Tab can be used, but once the last menu item is reached, Tab will close the\nMenu and continue through page content.\n\nTo close the menu:\n- Tabbing beyond the first or last menu item.\n- Esc will close the menu\n- Select a menu item\n\nTo make a selection:\n- Enter key is pressed.\n- Space is pressed.\n*/\n\nvar Menu = /*#__PURE__*/forwardRef(function (props, ref) {\n var a11yTitle = props.a11yTitle,\n ariaLabel = props['aria-label'],\n children = props.children,\n disabled = props.disabled,\n dropAlign = props.dropAlign,\n dropBackground = props.dropBackground,\n dropProps = props.dropProps,\n dropTarget = props.dropTarget,\n justifyContent = props.justifyContent,\n icon = props.icon,\n items = props.items,\n label = props.label,\n messages = props.messages,\n onKeyDown = props.onKeyDown,\n open = props.open,\n plain = props.plain,\n size = props.size,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var _useContext = useContext(MessageContext),\n format = _useContext.format;\n var iconColor = normalizeColor(theme.menu.icons.color || 'control', theme);\n // need to destructure the align otherwise it will get passed through\n // to DropButton and override prop values\n var _theme$menu$drop = theme.menu.drop,\n themeDropAlign = _theme$menu$drop.align,\n themeDropProps = _objectWithoutPropertiesLoose(_theme$menu$drop, _excluded2);\n var a11y = ariaLabel || a11yTitle;\n\n // total number of menu items\n var itemCount = useMemo(function () {\n var count = 0;\n if (items && Array.isArray(items[0])) {\n items.forEach(function (group) {\n count += group.length;\n });\n } else count = items.length;\n return count;\n }, [items]);\n var align = dropProps && dropProps.align || dropAlign || themeDropAlign;\n var controlButtonIndex = useMemo(function () {\n if (align.top === 'top') return -1;\n if (align.bottom === 'bottom') return itemCount;\n return undefined;\n }, [align, itemCount]);\n\n // Keeps track of whether menu options should be mirrored\n // when there's not enough space below DropButton. This state\n // is modified on /Drop/DropContainer.js.\n var _useState = useState(),\n alignControlMirror = _useState[0],\n setAlignControlMirror = _useState[1];\n var initialAlignTop = alignControlMirror === align.top;\n var dropContainerRef = useRef();\n var buttonRefs = useRef([]);\n var constants = useMemo(function () {\n return {\n none: 'none',\n tab: 9,\n // Menu control button included on top of menu items\n controlTop: align.top === 'top' || undefined,\n // Menu control button included on the bottom of menu items\n controlBottom: align.bottom === 'bottom' || undefined,\n controlButtonIndex: controlButtonIndex\n };\n }, [align, controlButtonIndex]);\n var _useState2 = useState(constants.none),\n activeItemIndex = _useState2[0],\n setActiveItemIndex = _useState2[1];\n var _useState3 = useState(open || false),\n isOpen = _useState3[0],\n setOpen = _useState3[1];\n var MenuIcon = isOpen && theme.menu.icons.up ? theme.menu.icons.up : theme.menu.icons.down;\n var onDropClose = useCallback(function () {\n setActiveItemIndex(constants.none);\n setOpen(false);\n }, [constants.none]);\n var onDropOpen = useCallback(function () {\n setOpen(true);\n }, []);\n useEffect(function () {\n // need to wait for Drop to be ready\n var timer = setTimeout(function () {\n if (isOpen) {\n var optionsNode = dropContainerRef.current;\n if (optionsNode) {\n optionsNode.focus();\n }\n }\n }, 100);\n return function () {\n return clearTimeout(timer);\n };\n }, [isOpen]);\n var onSelectMenuItem = function onSelectMenuItem(event) {\n if (isOpen) {\n if (activeItemIndex >= 0) {\n event.preventDefault();\n event.stopPropagation();\n buttonRefs.current[activeItemIndex].click();\n }\n } else {\n onDropOpen();\n }\n };\n var isTab = function isTab(event) {\n return event.keyCode === constants.tab || event.which === constants.tab;\n };\n var onNextMenuItem = function onNextMenuItem(event) {\n event.preventDefault();\n if (!isOpen) {\n onDropOpen();\n } else if (isTab(event) && (!constants.controlBottom && activeItemIndex === itemCount - 1 || constants.controlBottom && activeItemIndex === controlButtonIndex)) {\n // User has reached end of the menu, this tab will close\n // the menu drop because there are no more \"next items\" to access\n onDropClose();\n } else {\n var index;\n if (\n // This checks if the user has reached the end of the menu.\n // In the case the the menu control button is located at the\n // bottom of the menu, it checks if the user has reached the button.\n // Otherwise, it checks if the user is at the last menu item.\n constants.controlBottom && activeItemIndex === controlButtonIndex || !constants.controlBottom && activeItemIndex === itemCount - 1 || activeItemIndex === constants.none) {\n // place focus on the first menu item\n index = 0;\n } else {\n index = activeItemIndex + 1;\n }\n setActiveItemIndex(index);\n if (buttonRefs.current[index]) {\n buttonRefs.current[index].focus();\n }\n }\n };\n var onPreviousMenuItem = function onPreviousMenuItem(event) {\n event.preventDefault();\n if (!isOpen) {\n onDropOpen();\n } else if (isTab(event) && (constants.controlTop && activeItemIndex === controlButtonIndex || !constants.controlTop && activeItemIndex - 1 < 0)) {\n // User has reached beginning of the menu, this tab will close\n // the menu drop because there are no more \"previous items\" to access\n onDropClose();\n } else {\n var index;\n if (activeItemIndex === 'none') {\n index = itemCount - 1;\n } else if (activeItemIndex - 1 < 0) {\n if (constants.controlTop && activeItemIndex - 1 === controlButtonIndex) {\n index = itemCount;\n } else {\n index = itemCount - 1;\n }\n } else {\n index = activeItemIndex - 1;\n }\n setActiveItemIndex(index);\n if (buttonRefs.current[index]) {\n buttonRefs.current[index].focus();\n }\n }\n };\n var menuIcon = icon !== false ? icon !== true && icon || /*#__PURE__*/React.createElement(MenuIcon, {\n color: iconColor,\n size: size\n }) : null;\n var buttonProps = {\n plain: plain,\n size: size\n };\n var content;\n if (children) {\n content = children;\n } else if (!theme.button[\"default\"]) {\n content = /*#__PURE__*/React.createElement(Box, {\n direction: \"row\",\n justify: justifyContent,\n align: \"center\",\n pad: \"small\",\n gap: label && icon !== false ? 'small' : undefined\n }, /*#__PURE__*/React.createElement(Text, {\n size: size\n }, label), menuIcon);\n } else {\n // when a theme has theme.button.default, keep content as\n // undefined so we can rely on Button label & icon props\n buttonProps = {\n icon: menuIcon,\n label: label,\n plain: plain,\n reverse: true,\n size: size\n };\n content = undefined;\n }\n var controlMirror = /*#__PURE__*/React.createElement(Box, {\n flex: false\n }, /*#__PURE__*/React.createElement(Button, _extends({\n ref: function ref(r) {\n // make it accessible at the end of all menu items\n buttonRefs.current[itemCount] = r;\n },\n a11yTitle: a11y || format({\n id: 'menu.closeMenu',\n messages: messages\n }),\n active: activeItemIndex === controlButtonIndex,\n focusIndicator: false,\n hoverIndicator: \"background\",\n onClick: onDropClose,\n onFocus: function onFocus() {\n return setActiveItemIndex(controlButtonIndex);\n }\n // On first tab into menu, the control button should not\n // be able to receive tab focus because the focus should\n // go to the first menu item instead.\n ,\n tabIndex: activeItemIndex === constants.none ? '-1' : undefined\n }, theme.menu.item, buttonProps), typeof content === 'function' ? function () {\n return content(_extends({}, props, {\n drop: true\n }));\n } : content));\n var menuItem = function menuItem(item, index) {\n var _theme$menu$item, _theme$menu$item2, _theme$menu$item3;\n // Determine whether the label is done as a child or\n // as an option Button kind property.\n var child = !theme.button.option ? /*#__PURE__*/React.createElement(Box, {\n align: \"start\",\n pad: \"small\",\n direction: \"row\",\n gap: item.gap || ((_theme$menu$item = theme.menu.item) == null ? void 0 : _theme$menu$item.gap),\n justify: item.justify || ((_theme$menu$item2 = theme.menu.item) == null ? void 0 : _theme$menu$item2.justify)\n }, item.reverse && item.label, item.icon, !item.reverse && item.label) : undefined;\n\n // if we have a child, turn on plain, and hoverIndicator\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Box, {\n key: index,\n flex: false,\n role: \"none\"\n }, /*#__PURE__*/React.createElement(Button, _extends({\n ref: function ref(r) {\n buttonRefs.current[index] = r;\n },\n role: \"menuitem\",\n onFocus: function onFocus() {\n setActiveItemIndex(index);\n },\n active: activeItemIndex === index,\n focusIndicator: false,\n plain: !child ? undefined : true,\n align: \"start\",\n kind: !child ? 'option' : undefined,\n hoverIndicator: !child ? undefined : 'background'\n }, theme.menu.item, {\n justify: item.justify || ((_theme$menu$item3 = theme.menu.item) == null ? void 0 : _theme$menu$item3.justify)\n }, !child ? item : _extends({}, item, {\n gap: undefined,\n icon: undefined,\n label: undefined,\n reverse: undefined\n }), {\n onClick: function onClick() {\n if (item.onClick) {\n item.onClick.apply(item, arguments);\n }\n if (item.close !== false) {\n onDropClose();\n }\n }\n }), child))\n );\n };\n var menuContent;\n if (itemCount && Array.isArray(items[0])) {\n var index = 0;\n menuContent = items.map(function (group, groupIndex) {\n var _theme$menu$group, _theme$menu$group$sep, _theme$menu$group2, _theme$menu$group2$se, _theme$menu$group3;\n return /*#__PURE__*/React.createElement(Box\n // eslint-disable-next-line react/no-array-index-key\n , {\n key: groupIndex\n }, groupIndex > 0 && /*#__PURE__*/React.createElement(Box, {\n pad: theme.menu.group.separator.pad\n }, /*#__PURE__*/React.createElement(Box, {\n border: {\n side: 'top',\n color: (_theme$menu$group = theme.menu.group) == null ? void 0 : (_theme$menu$group$sep = _theme$menu$group.separator) == null ? void 0 : _theme$menu$group$sep.color,\n size: (_theme$menu$group2 = theme.menu.group) == null ? void 0 : (_theme$menu$group2$se = _theme$menu$group2.separator) == null ? void 0 : _theme$menu$group2$se.size\n }\n })), /*#__PURE__*/React.createElement(Box, (_theme$menu$group3 = theme.menu.group) == null ? void 0 : _theme$menu$group3.container, group.map(function (item) {\n // item index needs to be its index in the entire menu as if\n // it were a flat array\n var currentIndex = index;\n index += 1;\n return menuItem(item, currentIndex);\n })));\n });\n } else menuContent = items.map(function (item, index) {\n return menuItem(item, index);\n });\n return /*#__PURE__*/React.createElement(Keyboard, {\n onDown: onDropOpen,\n onUp: onDropOpen,\n onSpace: onSelectMenuItem,\n onEsc: onDropClose,\n onTab: onDropClose,\n onKeyDown: onKeyDown\n }, /*#__PURE__*/React.createElement(DropButton, _extends({\n ref: ref\n }, rest, buttonProps, {\n a11yTitle: a11y || format({\n id: 'menu.openMenu',\n messages: messages\n }),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": isOpen,\n onAlign: setAlignControlMirror,\n disabled: disabled,\n dropAlign: align,\n dropTarget: dropTarget,\n dropProps: dropProps || themeDropProps,\n open: isOpen,\n onOpen: onDropOpen,\n onClose: onDropClose,\n dropContent: /*#__PURE__*/React.createElement(Keyboard, {\n onTab: function onTab(event) {\n return event.shiftKey ? onPreviousMenuItem(event) : onNextMenuItem(event);\n },\n onDown: onNextMenuItem,\n onUp: onPreviousMenuItem,\n onEnter: onSelectMenuItem\n }, /*#__PURE__*/React.createElement(ContainerBox, {\n ref: dropContainerRef,\n tabIndex: -1,\n background: dropBackground || theme.menu.background\n }, alignControlMirror === 'top' && align.top === 'top' ? controlMirror : undefined, /*#__PURE__*/React.createElement(Box, {\n overflow: \"auto\",\n role: \"menu\",\n a11yTitle: a11y\n }, menuContent), !initialAlignTop && (alignControlMirror === 'bottom' || align.bottom === 'bottom') ? controlMirror : undefined))\n }), content));\n});\nMenu.defaultProps = {\n items: [],\n messages: undefined,\n justifyContent: 'start'\n};\nMenu.displayName = 'Menu';\nMenu.propTypes = MenuPropTypes;\nexport { Menu };","import React, { useEffect, useState, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Tab,\n Tabs,\n Menu,\n Text,\n Grommet,\n Box,\n ResponsiveContext,\n} from 'grommet';\nimport { FormDown } from 'grommet-icons';\nimport { hpe } from 'grommet-theme-hpe';\nimport { deepMerge } from 'grommet/utils';\nimport { BlogTabContent } from '..';\n\nconst customTheme = deepMerge(hpe, {\n tab: {\n pad: {\n vertical: '0',\n horizontal: '0',\n },\n },\n});\n\nfunction BlogTabs({ data, columns }) {\n const [index, setIndex] = useState(0);\n const [platform, setPlatform] = useState(false);\n const [previousTab, setPreviousTab] = useState(0);\n const [platformContent, setPlatformContent] = useState({\n data: data.allBlogs,\n });\n const [openSourceContent, setOpenSourceContent] = useState({\n data: data.openSourceBlogs,\n });\n const onActive = (nextIndex) => setIndex(nextIndex);\n const size = useContext(ResponsiveContext);\n\n const [activeBlogTab, setActiveBlogTab] = useState('');\n const [platformData, setPlatformData] = useState('');\n const [openSourceData, setOpenSourceData] = useState('');\n const [activePlatform, setActivePlatform] = useState('');\n const [activeOpenSource, setActiveOpenSource] = useState('');\n\n const totalAllBlogsCount = data.allBlogsCount.totalCount;\n const totalOpenSourceBlogsCount = data.openSourceBlogsCount.totalCount;\n const totalGreenLakeBlogsCount = data.greenlakeBlogsCount.totalCount;\n const totalOthersBlogsCount = data.othersBlogsCount.totalCount;\n\n useEffect(() => {\n // loads persisted platform data when the user goes back to the blog page\n if (platformData && platformData.nodes) {\n setPlatformContent({ data: platformData });\n }\n if (openSourceData && openSourceData.nodes) {\n setOpenSourceContent({ data: openSourceData });\n }\n\n // loads persisted blog tab index # when user goes back to the blog page\n if (activeBlogTab) {\n setIndex(activeBlogTab);\n setPlatform(true);\n }\n const queryParams = new URLSearchParams(window.location.search);\n const tab = queryParams.get('activeTab');\n if (tab) setIndex(+tab);\n }, [platformData, openSourceData, activeBlogTab]);\n\n const platforms = {\n ezmeralBlogs: {\n label: 'HPE Ezmeral Software',\n count: data?.ezmeralBlogsCount?.totalCount || 0,\n },\n projectDataMapBlogs: {\n label: 'Project Data Map',\n count: data?.projectdataMapBlogsCount?.totalCount || 0,\n },\n alletraBlogs: {\n label: 'HPE Alletra',\n count: data?.alletraBlogsCount?.totalCount || 0,\n },\n // deepLearningBlogs: {\n // label: 'HPE Deep Learning Cookbook',\n // count: data?.deepLearningBlogsCount.totalCount,\n // },\n threeParBlogs: {\n label: 'HPE 3PAR and Primera',\n count: data?.threeParBlogsCount?.totalCount || 0,\n },\n nimbleBlogs: {\n label: 'HPE Nimble Storage',\n count: data?.nimbleBlogsCount?.totalCount || 0,\n },\n oneviewBlogs: {\n label: 'HPE OneView',\n count: data?.oneviewBlogsCount?.totalCount || 0,\n },\n oneviewDashboardBlogs: {\n label: 'HPE OneView Global Dashboard',\n count: data?.oneviewDashboardBlogsCount?.totalCount || 0,\n },\n iloBlogs: {\n label: 'iLO RESTful API',\n count: data?.iloBlogsCount?.totalCount || 0,\n },\n crayBlogs: {\n label: 'HPE Cray Programming Environment',\n count: data?.crayBlogsCount?.totalCount || 0,\n },\n swarmBlogs: {\n label: 'HPE Swarm Learning',\n count: data?.swarmBlogsCount?.totalCount || 0,\n },\n dragonhpcBlogs: {\n label: 'DragonHPC',\n count: data?.dragonhpcCount?.totalCount || 0,\n },\n hpeNonstopBlogs: {\n label: 'HPE NonStop',\n count: data?.hpeNonstopBlogsCount?.totalCount || 0,\n },\n hpeOpsRampBlogs: {\n label: 'HPE OpsRamp',\n count: data?.hpeOpsRampBlogsCount?.totalCount || 0,\n },\n hpeMorpheusBlogs: {\n label: 'HPE Morpheus',\n count: data?.hpeMorpheusBlogsCount?.totalCount || 0,\n },\n };\n\n const opensource = {\n kubeDirectorBlogs: {\n label: 'KubeDirector',\n count: data?.kubeDirectorBlogsCount?.totalCount || 0,\n },\n spiffeBlogs: {\n label: 'Spiffee and Spire Projects',\n count: data?.spiffeBlogsCount?.totalCount || 0,\n },\n chapelBlogs: {\n label: 'Chapel',\n count: data?.chapelBlogsCount?.totalCount || 0,\n },\n grommetBlogs: {\n label: 'Grommet',\n count: data.grommetBlogsCount?.totalCount || 0,\n },\n determinedBlogs: {\n label: 'Determined AI',\n count: data.determinedBlogsCount?.totalCount || 0,\n },\n smartSimBlogs: {\n label: 'SmartSim',\n count: data.smartSimBlogsCount?.totalCount || 0,\n },\n dragonhpcBlogs: {\n label: 'Dragonhpc',\n count: data.dragonhpcBlogsCount?.totalCount || 0,\n },\n };\n\n const platformsMenuItems = Object.entries(data)\n .filter(\n (item) =>\n Object.prototype.hasOwnProperty.call(platforms, item[0]) &&\n platforms[item[0]].count > 0,\n )\n .map((item, i) => {\n return {\n label: `${platforms[item[0]].label} (${platforms[item[0]].count})`,\n active: platforms[item[0]].label === activePlatform,\n onClick: () => {\n setActiveBlogTab(index);\n setPlatformData(item[1]);\n setPlatformContent({ key: i, data: item[1] });\n setActivePlatform(platforms[item[0]].label);\n },\n };\n });\n\n const openSourceMenuItems = Object.entries(data)\n .filter(\n (item) =>\n Object.prototype.hasOwnProperty.call(opensource, item[0]) &&\n opensource[item[0]].count > 0,\n )\n .map((item, i) => {\n return {\n label: `${opensource[item[0]].label} (${opensource[item[0]].count})`,\n active: opensource[item[0]].label === activeOpenSource,\n onClick: () => {\n setActiveBlogTab(index);\n setOpenSourceData(item[1]);\n setOpenSourceContent({ key: i, data: item[1] });\n setActiveOpenSource(opensource[item[0]].label);\n },\n };\n });\n\n const previousTabContent = (previousTabIndex) => {\n const { allBlogs, openSourceBlogs, greenlakeBlogs, othersBlogs } = data;\n switch (previousTabIndex) {\n case 0:\n return allBlogs;\n case 1:\n return greenlakeBlogs;\n case 2:\n return openSourceBlogs;\n case 3:\n return othersBlogs;\n default:\n return allBlogs;\n }\n };\n\n /* eslint-disable no-param-reassign */\n const totalAllPlatformsBlogsCount = Object.entries(platforms).reduce(\n (accum, item) => {\n accum += item[1].count;\n return accum;\n },\n 0,\n );\n /* eslint-disable no-param-reassign */\n\n return (\n <Tabs activeIndex={index} onActive={onActive} justify=\"start\" pad=\"20px\">\n <Tab title={`All (${totalAllBlogsCount})`}>\n <BlogTabContent\n key={index}\n initialPage={data.allBlogs}\n columns={columns}\n activeTab={index}\n setPlatform={setPlatform}\n setPreviousTab={setPreviousTab}\n />\n </Tab>\n <Tab title={`HPE GreenLake (${totalGreenLakeBlogsCount})`}>\n <BlogTabContent\n key={index}\n initialPage={data.greenlakeBlogs}\n columns={columns}\n activeTab={index}\n platform\n setPlatform={setPlatform}\n setPreviousTab={setPreviousTab}\n />\n </Tab>\n <Grommet theme={customTheme}>\n <Tab\n pad=\"none\"\n title={\n <Menu\n /* eslint-disable-next-line no-unneeded-ternary */\n open={activeOpenSource ? true : false}\n dropProps={{\n align: { top: 'bottom', left: 'left' },\n }}\n items={openSourceMenuItems}\n >\n <Box\n width=\"220px\"\n height={size === 'small' ? '36px' : '48px'}\n justify=\"center\"\n align=\"center\"\n direction=\"row\"\n >\n <Text color=\"black\" margin={{ right: 'xsmall' }}>\n Open Source ({totalOpenSourceBlogsCount})\n </Text>\n <FormDown />\n </Box>\n </Menu>\n }\n >\n <BlogTabContent\n key={openSourceContent.key}\n initialPage={\n platform\n ? openSourceContent.data\n : previousTabContent(previousTab)\n }\n columns={columns}\n activeTab={index}\n platform\n setPlatform={setPlatform}\n setPreviousTab={setPreviousTab}\n />\n </Tab>\n </Grommet>\n <Grommet theme={customTheme}>\n <Tab\n pad=\"none\"\n title={\n <Menu\n /* eslint-disable-next-line no-unneeded-ternary */\n open={activePlatform ? true : false}\n dropProps={{\n align: { top: 'bottom', left: 'left' },\n }}\n items={platformsMenuItems}\n >\n <Box\n width=\"220px\"\n height={size === 'small' ? '36px' : '48px'}\n justify=\"center\"\n align=\"center\"\n direction=\"row\"\n >\n <Text color=\"black\" margin={{ right: 'xsmall' }}>\n Products ({totalAllPlatformsBlogsCount})\n </Text>\n <FormDown />\n </Box>\n </Menu>\n }\n >\n <BlogTabContent\n key={platformContent.key}\n initialPage={\n platform ? platformContent.data : previousTabContent(previousTab)\n }\n columns={columns}\n activeTab={index}\n platform\n setPlatform={setPlatform}\n setPreviousTab={setPreviousTab}\n />\n </Tab>\n </Grommet>\n\n {/* <Tab title={`Open Source (${totalOpenSourceBlogsCount})`}>\n <BlogTabContent\n key={index}\n initialPage={data.openSourceBlogs}\n columns={columns}\n activeTab={index}\n setPlatform={setPlatform}\n setPreviousTab={setPreviousTab}\n />\n </Tab> */}\n <Tab title={`Others (${totalOthersBlogsCount})`}>\n <BlogTabContent\n key={index}\n initialPage={data.othersBlogs}\n columns={columns}\n activeTab={index}\n setPlatform={setPlatform}\n setPreviousTab={setPreviousTab}\n />\n </Tab>\n </Tabs>\n );\n}\n\nconst blogsPropType = PropTypes.shape({\n nodes: PropTypes.arrayOf(\n PropTypes.shape({\n node: PropTypes.shape({\n title: PropTypes.string.isRequired,\n author: PropTypes.string.isRequired,\n date: PropTypes.string,\n description: PropTypes.string,\n authorimage: PropTypes.string,\n }),\n }).isRequired,\n ).isRequired,\n hasNextPage: PropTypes.bool.isRequired,\n nextPage: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }),\n collection: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }),\n}).isRequired;\n\nBlogTabs.propTypes = {\n data: PropTypes.shape({\n featuredblogs: PropTypes.shape({\n edges: PropTypes.arrayOf(\n PropTypes.shape({\n node: PropTypes.shape({\n id: PropTypes.string.isRequired,\n frontmatter: PropTypes.shape({\n title: PropTypes.string.isRequired,\n author: PropTypes.string.isRequired,\n date: PropTypes.string,\n description: PropTypes.string,\n authorimage: PropTypes.string,\n thumbnailimage: PropTypes.string,\n category: PropTypes.string,\n }).isRequired,\n excerpt: PropTypes.string.isRequired,\n fields: PropTypes.shape({\n slug: PropTypes.string.isRequired,\n sourceInstanceName: PropTypes.string.isRequired,\n }),\n }).isRequired,\n }).isRequired,\n ).isRequired,\n }).isRequired,\n allBlogs: blogsPropType,\n openSourceBlogs: blogsPropType,\n greenlakeBlogs: blogsPropType,\n othersBlogs: blogsPropType,\n allBlogsCount: PropTypes.objectOf(PropTypes.number),\n openSourceBlogsCount: PropTypes.objectOf(PropTypes.number),\n ezmeralBlogsCount: PropTypes.objectOf(PropTypes.number),\n spiffeBlogsCount: PropTypes.objectOf(PropTypes.number),\n kubeDirectorBlogsCount: PropTypes.objectOf(PropTypes.number),\n greenlakeBlogsCount: PropTypes.objectOf(PropTypes.number),\n chapelBlogsCount: PropTypes.objectOf(PropTypes.number),\n grommetBlogsCount: PropTypes.objectOf(PropTypes.number),\n projectdataMapBlogsCount: PropTypes.objectOf(PropTypes.number),\n zertoBlogsCount: PropTypes.objectOf(PropTypes.number),\n alletraBlogsCount: PropTypes.objectOf(PropTypes.number),\n deepLearningBlogsCount: PropTypes.objectOf(PropTypes.number),\n threeParBlogsCount: PropTypes.objectOf(PropTypes.number),\n nimbleBlogsCount: PropTypes.objectOf(PropTypes.number),\n oneviewBlogsCount: PropTypes.objectOf(PropTypes.number),\n oneviewDashboardBlogsCount: PropTypes.objectOf(PropTypes.number),\n iloBlogsCount: PropTypes.objectOf(PropTypes.number),\n determinedBlogsCount: PropTypes.objectOf(PropTypes.number),\n smartSimBlogsCount: PropTypes.objectOf(PropTypes.number),\n crayBlogsCount: PropTypes.objectOf(PropTypes.number),\n swarmBlogsCount: PropTypes.objectOf(PropTypes.number),\n dragonhpcBlogsCount: PropTypes.objectOf(PropTypes.number),\n hpeNonstopBlogsCount: PropTypes.objectOf(PropTypes.number),\n hpeOpsRampBlogsCount: PropTypes.objectOf(PropTypes.number),\n hpeMorpheusBlogsCount: PropTypes.objectOf(PropTypes.number),\n othersBlogsCount: PropTypes.objectOf(PropTypes.number),\n }).isRequired,\n columns: PropTypes.shape({\n small: PropTypes.string,\n medium: PropTypes.arrayOf(PropTypes.string),\n large: PropTypes.arrayOf(PropTypes.string),\n xlarge: PropTypes.arrayOf(PropTypes.string),\n }),\n};\n\nexport default BlogTabs;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {remark} from 'remark';\nimport strip from 'strip-markdown';\nimport { navigate } from 'gatsby';\nimport {\n Box,\n Heading,\n Text,\n Avatar,\n Image,\n Card as GrommetCard,\n CardHeader,\n Paragraph,\n} from 'grommet';\nimport { useLocalStorage } from '../../hooks/use-local-storage';\n\nconst dateFormat = Intl.DateTimeFormat('default', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n});\n\nconst stripMarkdown = (markdown) => {\n let text = markdown;\n remark()\n .use(strip)\n .process(markdown, (err, file) => {\n text = file.contents;\n });\n return text;\n};\n\nexport const BlogCard = ({ node, ...rest }) => {\n // eslint-disable-next-line no-unused-vars\n const [blogPosition, setBlogPosition] = useLocalStorage('blogPosition');\n\n return (\n <GrommetCard\n pad=\"large\"\n direction=\"row\"\n justify=\"between\"\n {...rest}\n elevation=\"medium\"\n wrap\n onClick={(e) => {\n console.log('open externalLink node', node);\n if (node?.externalLink || node?.frontmatter?.externalLink) {\n console.log('external open link window');\n window.open(\n `${\n node?.externalLink != null\n ? node?.externalLink\n : node?.frontmatter?.externalLink\n }`,\n '_blank',\n );\n } else if (node.fields.slug && node.fields.sourceInstanceName) {\n console.log('open within ');\n navigate(`/${node.fields.sourceInstanceName}${node.fields.slug}`);\n setBlogPosition(e.nativeEvent.pageY - e.nativeEvent.clientY);\n }\n }}\n >\n <Box gap=\"small\">\n <Box align=\"start\">\n {(node?.authorimage || node?.frontmatter?.authorimage) && (\n <Avatar\n size=\"96px\"\n src={node.authorimage || node.frontmatter.authorimage}\n alt=\"author logo\"\n />\n )}\n </Box>\n <Box align=\"start\">\n <Text>{node?.author || node?.frontmatter?.author}</Text>\n </Box>\n <Heading level={4} margin=\"none\">\n {node?.title || node?.frontmatter.title}\n </Heading>\n {(node?.date || node?.frontmatter.date) && (\n <Text color=\"text-weak\">\n {`${dateFormat.format(\n new Date(node?.date || node?.frontmatter.date),\n )}`}\n </Text>\n )}\n </Box>\n </GrommetCard>\n );\n};\n\nBlogCard.propTypes = {\n node: PropTypes.shape({\n frontmatter: PropTypes.shape({\n title: PropTypes.string.isRequired,\n author: PropTypes.string,\n date: PropTypes.string,\n path: PropTypes.string,\n externalLink: PropTypes.string,\n }),\n title: PropTypes.string,\n author: PropTypes.string,\n date: PropTypes.string,\n path: PropTypes.string,\n excerpt: PropTypes.string,\n fields: PropTypes.shape({\n slug: PropTypes.string.isRequired,\n sourceInstanceName: PropTypes.string.isRequired,\n }),\n }).isRequired,\n};\n\nexport const FeaturedBlogCard = ({ node, ...rest }) => (\n <GrommetCard\n elevation=\"medium\"\n {...rest}\n onClick={() => {\n console.log('open featured externalLink node', node);\n if (node?.frontmatter?.externalLink) {\n console.log('external featured open link window');\n window.open(`${node?.frontmatter?.externalLink}`, '_blank');\n } else if (node.fields.slug && node.fields.sourceInstanceName) {\n console.log('open within featured');\n navigate(`/${node.fields.sourceInstanceName}${node.fields.slug}`);\n }\n }}\n >\n {(node.frontmatter.category || node.frontmatter.tags) && (\n <CardHeader\n justify=\"end\"\n pad={{ vertical: 'small', horizontal: 'medium' }}\n >\n <Text color=\"text-weak\">\n {node.frontmatter.category\n ? node.frontmatter.category\n : node.frontmatter.tags[0]}\n </Text>\n </CardHeader>\n )}\n <Box direction=\"row-responsive\" justify=\"between\">\n <Box\n align=\"start\"\n pad={{ vertical: 'large', horizontal: 'xlarge' }}\n gap=\"medium\"\n >\n <Box align=\"start\" direction=\"row\" gap=\"small\">\n <Avatar\n size=\"96px\"\n src={node.frontmatter.authorimage}\n alt=\"author logo\"\n />\n <Box align=\"start\" alignSelf=\"center\">\n <Text weight=\"bold\">{node.frontmatter.author}</Text>\n <Text color=\"text-weak\">\n {dateFormat.format(new Date(node.frontmatter.date))}\n </Text>\n </Box>\n </Box>\n <Box gap=\"small\">\n <Heading level={4} margin=\"none\">\n {node.frontmatter.title}\n </Heading>\n <Paragraph margin=\"none\">\n {node.frontmatter.description || stripMarkdown(node.excerpt)}\n </Paragraph>\n </Box>\n </Box>\n {node.frontmatter.thumbnailimage && (\n <Box pad={{ vertical: 'large', horizontal: 'xlarge' }}>\n <Image\n height=\"300\"\n width=\"300\"\n fit=\"contain\"\n src={node.frontmatter.thumbnailimage}\n alt=\"thumbnail logo\"\n />\n </Box>\n )}\n </Box>\n </GrommetCard>\n);\n\nFeaturedBlogCard.propTypes = BlogCard.propTypes;\n\nexport const SectionHeader = ({ color, title, children }) => {\n return (\n <Box flex={false} margin=\"medium\">\n <Box pad={{ horizontal: 'medium', vertical: 'small' }}>\n {title && (\n <Heading margin=\"none\" level=\"2\">\n {title}\n </Heading>\n )}\n </Box>\n <Box\n border={{ side: 'top', color, size: 'small' }}\n pad={{ top: 'small' }}\n >\n {children}\n </Box>\n </Box>\n );\n};\n\nSectionHeader.propTypes = {\n color: PropTypes.string,\n title: PropTypes.string,\n children: PropTypes.node.isRequired,\n};\n","import React, { useState, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { withPrefix } from 'gatsby';\nimport { Box, Button } from 'grommet';\nimport { FormDown } from 'grommet-icons';\nimport { BlogCard } from '../BlogCard';\nimport ResponsiveGrid from '../ResponsiveGrid';\nimport { useLocalStorage } from '../../hooks/use-local-storage';\n\nconst BlogTabContent = ({\n initialPage,\n columns,\n activeTab,\n platform,\n setPlatform,\n setPreviousTab,\n}) => {\n const [latestPage, setLatestPage] = useState(initialPage);\n const [blogPosts, setBlogPosts] = useState(initialPage?.nodes);\n const [collectionId, setCollectionId] = useState(initialPage?.collection?.id);\n /* eslint-disable no-unused-vars */\n const [activeBlogTab, setActiveBlogTab] = useLocalStorage('activeBlogTab');\n const [activePlatform, setActivePlatform] = useLocalStorage('activePlatform');\n /* eslint-disable no-unused-vars */\n const [loadMoreBlogData, setLoadMoreBlogData] = useLocalStorage(\n 'loadMoreBlogData',\n );\n\n useEffect(() => {\n if (!platform) {\n setCollectionId(initialPage.collection.id);\n setPlatform(false);\n setPreviousTab(activeTab);\n setActivePlatform('');\n }\n\n setActiveBlogTab(activeTab);\n\n // loads persisted data if the load more btn was\n // clicked when the user goes back to blog page\n if (\n // clear localStorage if new blog post has been published\n loadMoreBlogData &&\n loadMoreBlogData.latestBlogPosts[0].id !== blogPosts[0].id\n ) {\n localStorage.removeItem('loadMoreBlogData');\n } else if (\n loadMoreBlogData &&\n loadMoreBlogData.latestPage &&\n loadMoreBlogData.latestBlogPosts &&\n loadMoreBlogData.collectionId === collectionId\n ) {\n setLatestPage(loadMoreBlogData.latestPage);\n setBlogPosts(loadMoreBlogData.latestBlogPosts);\n }\n }, [\n blogPosts,\n platform,\n initialPage,\n setPlatform,\n setPreviousTab,\n setActivePlatform,\n setActiveBlogTab,\n activeTab,\n loadMoreBlogData,\n collectionId,\n ]);\n\n const loadNextPage = useCallback(async () => {\n if (!latestPage.hasNextPage) return;\n const nextPageId = latestPage.nextPage.id;\n const path = withPrefix(\n `/paginated-data/${collectionId}/${nextPageId}.json`,\n );\n const res = await fetch(path);\n const json = await res.json();\n setBlogPosts((state) => [...state, ...json.nodes]);\n setLatestPage(json);\n\n setLoadMoreBlogData({\n latestBlogPosts: [...blogPosts, ...json.nodes],\n latestPage: json,\n collectionId,\n });\n }, [latestPage, collectionId, blogPosts, setLoadMoreBlogData]);\n\n return (\n <>\n <ResponsiveGrid rows={{}} columns={columns}>\n {blogPosts.map(\n (blogPost) =>\n blogPost.url !== '/' && (\n <BlogCard key={blogPost.id} node={blogPost} />\n ),\n )}\n </ResponsiveGrid>\n <Box align=\"center\" pad=\"medium\">\n <Button\n icon={<FormDown />}\n hoverIndicator\n reverse\n onClick={loadNextPage}\n label=\"Load More\"\n />\n </Box>\n </>\n );\n};\n\nBlogTabContent.propTypes = {\n initialPage: PropTypes.shape({\n nodes: PropTypes.arrayOf(\n PropTypes.shape({\n node: PropTypes.shape({\n title: PropTypes.string.isRequired,\n author: PropTypes.string.isRequired,\n date: PropTypes.string,\n description: PropTypes.string,\n authorimage: PropTypes.string,\n }),\n }).isRequired,\n ).isRequired,\n hasNextPage: PropTypes.bool.isRequired,\n nextPage: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }),\n collection: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }),\n }).isRequired,\n columns: PropTypes.shape({\n small: PropTypes.string,\n medium: PropTypes.arrayOf(PropTypes.string),\n large: PropTypes.arrayOf(PropTypes.string),\n xlarge: PropTypes.arrayOf(PropTypes.string),\n }),\n activeTab: PropTypes.number,\n platform: PropTypes.bool,\n setPlatform: PropTypes.func,\n setPreviousTab: PropTypes.func,\n};\n\nexport default BlogTabContent;\n","import React from 'react';\nimport { Anchor, Heading, Text } from 'grommet';\n\nexport const Questions = () => (\n <>\n <Heading level=\"3\"> Questions? </Heading>\n <Text size=\"27px\" margin={{ bottom: 'medium' }}>\n Feel free to reach out to us via{' '}\n <Anchor href=\"mailto:hpedev@hpe.com\" target=\"_blank\">\n email\n </Anchor>{' '}\n or through our{' '}\n <Anchor href=\"https://slack.hpedev.io/\" target=\"_blank\">\n HPE Developer Slack channel\n </Anchor>\n .\n </Text>\n </>\n);\n\nexport default Questions;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport {\n Avatar,\n Box,\n Card as GrommetCard,\n CardBody,\n CardHeader,\n Heading,\n Grid,\n Image,\n Markdown,\n ResponsiveContext,\n Text,\n} from 'grommet';\nimport { navigate } from 'gatsby';\nimport { cardComponents } from '..';\n\n// Remove padding or margin from first markdown element.\n// This allows the heading and content to have the same gap.\nconst MarkdownLayout = styled(Markdown)`\n & > *:first-child {\n margin-top: 0;\n padding-top: 0;\n }\n`;\n\n// Remove padding or margin from first markdown element.\n// This allows the heading and content to have the same gap.\nconst MarkdownCenteredLayout = styled(Markdown)`\n & > *:first-child {\n margin-top: 0;\n padding-top: 0;\n }\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst widths = {\n small: '396px',\n medium: '840px',\n large: '1080px',\n};\n\nconst gridProps = {\n // image above text\n small: {\n gap: 'medium',\n columns: ['auto'],\n rows: ['auto', 'flex'],\n areas: [\n { name: 'image', start: [0, 0], end: [0, 0] },\n { name: 'content', start: [0, 1], end: [0, 1] },\n ],\n },\n // image to the left of text\n medium: {\n gap: 'large',\n columns: [\n ['xsmall', 'flex'],\n ['xsmall', 'flex'],\n ],\n rows: ['auto'],\n areas: [\n { name: 'image', start: [0, 0], end: [0, 0] },\n { name: 'content', start: [1, 0], end: [1, 0] },\n ],\n align: 'start',\n justifyContent: 'start',\n },\n // image to the right of text\n mediumReverse: {\n gap: 'large',\n columns: [\n ['xsmall', 'flex'],\n ['xsmall', 'flex'],\n ],\n rows: ['auto'],\n areas: [\n { name: 'image', start: [1, 0], end: [1, 0] },\n { name: 'content', start: [0, 0], end: [0, 0] },\n ],\n align: 'start',\n justifyContent: 'start',\n },\n // image to the right of text\n large: {\n gap: 'large',\n columns: ['flex', 'flex'],\n rows: ['auto'],\n areas: [\n { name: 'image', start: [1, 0], end: [1, 0] },\n { name: 'content', start: [0, 0], end: [0, 0] },\n ],\n justifyContent: 'between',\n },\n // image to the left of text\n largeReverse: {\n gap: 'large',\n columns: ['flex', 'flex'],\n rows: ['auto'],\n areas: [\n { name: 'image', start: [0, 0], end: [0, 0] },\n { name: 'content', start: [1, 0], end: [1, 0] },\n ],\n justifyContent: 'between',\n },\n};\n\n// can't use the full amount due to the margins, so we approximate\nconst bases = {\n small: '1/4',\n medium: '1/3',\n large: '2/3',\n};\n\nexport const Card = ({\n category,\n content,\n width = 'medium',\n link,\n image,\n imageScale = 1,\n title,\n date,\n author,\n reverse,\n ...rest\n}) => {\n const [hover, setHover] = useState(false);\n const isHackShackCard = title === 'Hack Shack';\n\n const gridWidth = reverse ? `${width}Reverse` : width;\n\n return (\n <ResponsiveContext.Consumer>\n {(size) => (\n <GrommetCard\n background={isHackShackCard && hover ? '#263040' : null}\n elevation=\"medium\"\n margin=\"medium\"\n flex=\"grow\"\n style={{ cursor: 'pointer' }}\n basis={size === 'small' ? 'auto' : bases[width]}\n onMouseOver={() => isHackShackCard && setHover(true)}\n onMouseLeave={() => isHackShackCard && setHover(false)}\n {...rest}\n /* eslint-disable */\n onMouseUp={() => {\n link && link.match(/^\\//g)\n ? navigate(link)\n : link\n ? window.open(link)\n : undefined;\n }}\n >\n <CardHeader\n justify=\"end\"\n pad={{ vertical: 'small', horizontal: 'medium' }}\n >\n <Text color=\"text-weak\">{category}</Text>\n </CardHeader>\n <CardBody pad=\"none\">\n <Grid\n fill=\"horizontal\"\n pad={{ horizontal: 'large', top: 'medium', bottom: 'large' }}\n {...(gridProps[size === 'small' ? size : gridWidth] ||\n gridProps.medium)}\n style={{ display: image ? 'grid' : 'flex' }}\n >\n {image && (\n <Box style={{ alignItems: 'center' }}>\n {image && category === 'Featured Blog' ? (\n <Avatar size=\"96px\" src={image} alt=\"author logo\" />\n ) : image ? (\n <Image\n gridArea=\"image\"\n src={image}\n // fit=\"contain\"\n alignSelf=\"center\"\n alt=\"card logo\"\n style={{ transform: `scale(${imageScale})` }}\n />\n ) : (\n <></>\n )}\n </Box>\n )}\n\n <Box gridArea=\"content\">\n {author && <Text style={{ marginBottom: 16 }}> {author}</Text>}\n {title && (\n <Heading margin=\"none\" level=\"3\" style={{ marginBottom: 16 }}>\n {title}\n </Heading>\n )}\n {date && <Text>{date}</Text>}\n {content && (\n <MarkdownLayout components={cardComponents}>\n {content}\n </MarkdownLayout>\n )}\n </Box>\n </Grid>\n </CardBody>\n </GrommetCard>\n )}\n </ResponsiveContext.Consumer>\n );\n};\n\nCard.propTypes = {\n content: PropTypes.string,\n width: PropTypes.string,\n category: PropTypes.string,\n link: PropTypes.string,\n image: PropTypes.string,\n};\n\nexport const Card2 = ({\n category,\n content,\n align,\n gap,\n pad,\n width = 'medium',\n link,\n reverse,\n image,\n}) => (\n <GrommetCard\n elevation=\"medium\"\n margin=\"small\"\n width={{ min: widths[width], max: widths[width] }}\n flex=\"grow\"\n onClick={link ? () => navigate(link) : undefined}\n >\n <CardHeader justify=\"end\" pad={{ vertical: 'small', horizontal: 'medium' }}>\n <Text color=\"text-weak\">{category}</Text>\n </CardHeader>\n <Box\n fill=\"vertical\"\n justify=\"start\"\n align=\"center\"\n gap={gap || 'large'}\n pad={{ horizontal: 'large', top: 'medium', bottom: 'large', ...pad }}\n direction=\"row-responsive\"\n >\n {image && !reverse && (\n <Box align=\"center\" fill=\"horizontal\">\n {image && <Image src={image} alt=\"card logo\" />}\n </Box>\n )}\n {content && align === 'center' && (\n <MarkdownCenteredLayout components={cardComponents}>\n {content}\n </MarkdownCenteredLayout>\n )}\n {content && align !== 'center' && (\n <MarkdownLayout components={cardComponents}>{content}</MarkdownLayout>\n )}\n {image && reverse && (\n <Box align=\"center\" fill=\"horizontal\">\n {image && <Image src={image} alt=\"card logo\" />}\n </Box>\n )}\n </Box>\n </GrommetCard>\n);\nCard2.propTypes = Card.propTypes;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Anchor, Button } from 'grommet';\nimport { navigate } from 'gatsby';\n\nexport const Link = ({ to, ...rest }) => (\n <Anchor\n href={to}\n onClick={(ev) => {\n navigate(to);\n ev.preventDefault();\n }}\n {...rest}\n />\n);\n\nLink.propTypes = {\n to: PropTypes.string,\n};\n\nexport const ExternalLink = ({ to, ...rest }) => (\n <Anchor href={to} target=\"_blank\" rel=\"noopener noreferrer\" {...rest} />\n);\n\nExternalLink.propTypes = {\n to: PropTypes.string,\n};\n\nexport const ExternalButtonLink = ({ to, ...rest }) => (\n <Button href={to} target=\"_blank\" rel=\"noopener noreferrer\" {...rest} />\n);\nExternalButtonLink.propTypes = {\n to: PropTypes.string,\n};\n\nexport const ButtonLink = ({ to, state, ...rest }) => (\n <Button\n href={to}\n style={{ zIndex: 100 }}\n onClick={(ev) => {\n navigate(to, state);\n ev.preventDefault();\n }}\n {...rest}\n />\n);\n\nButtonLink.propTypes = {\n to: PropTypes.string,\n state: PropTypes.shape({\n isBlogHeaderClicked: PropTypes.bool,\n }),\n};\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\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; }\n\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) { _defineProperty(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\nimport React from 'react'; // Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n\n return classNameCombinations[key];\n}\n\nexport function createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\nexport default function createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n\n if (!useInlineStyles) {\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []); // For compatibility with older versions of react-syntax-highlighter\n\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n\n var children = childrenCreator(node.children);\n return /*#__PURE__*/React.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}","export default (function (astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\n\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; }\n\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) { _defineProperty(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\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return /*#__PURE__*/React.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\n\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n \"float\": 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return /*#__PURE__*/React.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\n\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n\n return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines;\n var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n properties['className'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread(_objectSpread({}, properties.style), {}, {\n display: 'flex'\n });\n }\n\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\n\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n flattenCodeTree(node.children, classNames).forEach(function (i) {\n return newTree.push(i);\n });\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines\n });\n }\n\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return children;\n }\n\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n }; // if it's the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n\n if (stringChild) {\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [lastLineInPreviousSpan];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it's neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segement\".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n\n // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n } // must be refractor/prism, then\n\n\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\n\nexport default function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, _excluded);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre-wrap'\n });\n } else {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre'\n });\n }\n\n if (!astGenerator) {\n return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n }\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n\n\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"black\",\n \"background\": \"none\",\n \"textShadow\": \"0 1px white\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"black\",\n \"background\": \"#f5f2f0\",\n \"textShadow\": \"0 1px white\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \".5em 0\",\n \"overflow\": \"auto\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#f5f2f0\",\n \"padding\": \".1em\",\n \"borderRadius\": \".3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"slategray\"\n },\n \"prolog\": {\n \"color\": \"slategray\"\n },\n \"doctype\": {\n \"color\": \"slategray\"\n },\n \"cdata\": {\n \"color\": \"slategray\"\n },\n \"punctuation\": {\n \"color\": \"#999\"\n },\n \"namespace\": {\n \"Opacity\": \".7\"\n },\n \"property\": {\n \"color\": \"#905\"\n },\n \"tag\": {\n \"color\": \"#905\"\n },\n \"boolean\": {\n \"color\": \"#905\"\n },\n \"number\": {\n \"color\": \"#905\"\n },\n \"constant\": {\n \"color\": \"#905\"\n },\n \"symbol\": {\n \"color\": \"#905\"\n },\n \"deleted\": {\n \"color\": \"#905\"\n },\n \"selector\": {\n \"color\": \"#690\"\n },\n \"attr-name\": {\n \"color\": \"#690\"\n },\n \"string\": {\n \"color\": \"#690\"\n },\n \"char\": {\n \"color\": \"#690\"\n },\n \"builtin\": {\n \"color\": \"#690\"\n },\n \"inserted\": {\n \"color\": \"#690\"\n },\n \"operator\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \"entity\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\",\n \"cursor\": \"help\"\n },\n \"url\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \".language-css .token.string\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \".style .token.string\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \"atrule\": {\n \"color\": \"#07a\"\n },\n \"attr-value\": {\n \"color\": \"#07a\"\n },\n \"keyword\": {\n \"color\": \"#07a\"\n },\n \"function\": {\n \"color\": \"#DD4A68\"\n },\n \"class-name\": {\n \"color\": \"#DD4A68\"\n },\n \"regex\": {\n \"color\": \"#e90\"\n },\n \"important\": {\n \"color\": \"#e90\",\n \"fontWeight\": \"bold\"\n },\n \"variable\": {\n \"color\": \"#e90\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n }\n};","import highlight from './highlight';\nimport defaultStyle from './styles/prism/prism';\nimport refractor from 'refractor';\nimport supportedLanguages from './languages/prism/supported-languages';\nvar highlighter = highlight(refractor, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","//\n// This file has been auto-generated by the `npm run build-languages-prism` task\n//\nexport default ['abap', 'abnf', 'actionscript', 'ada', 'agda', 'al', 'antlr4', 'apacheconf', 'apex', 'apl', 'applescript', 'aql', 'arduino', 'arff', 'asciidoc', 'asm6502', 'asmatmel', 'aspnet', 'autohotkey', 'autoit', 'avisynth', 'avro-idl', 'bash', 'basic', 'batch', 'bbcode', 'bicep', 'birb', 'bison', 'bnf', 'brainfuck', 'brightscript', 'bro', 'bsl', 'c', 'cfscript', 'chaiscript', 'cil', 'clike', 'clojure', 'cmake', 'cobol', 'coffeescript', 'concurnas', 'coq', 'cpp', 'crystal', 'csharp', 'cshtml', 'csp', 'css-extras', 'css', 'csv', 'cypher', 'd', 'dart', 'dataweave', 'dax', 'dhall', 'diff', 'django', 'dns-zone-file', 'docker', 'dot', 'ebnf', 'editorconfig', 'eiffel', 'ejs', 'elixir', 'elm', 'erb', 'erlang', 'etlua', 'excel-formula', 'factor', 'false', 'firestore-security-rules', 'flow', 'fortran', 'fsharp', 'ftl', 'gap', 'gcode', 'gdscript', 'gedcom', 'gherkin', 'git', 'glsl', 'gml', 'gn', 'go-module', 'go', 'graphql', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hcl', 'hlsl', 'hoon', 'hpkp', 'hsts', 'http', 'ichigojam', 'icon', 'icu-message-format', 'idris', 'iecst', 'ignore', 'inform7', 'ini', 'io', 'j', 'java', 'javadoc', 'javadoclike', 'javascript', 'javastacktrace', 'jexl', 'jolie', 'jq', 'js-extras', 'js-templates', 'jsdoc', 'json', 'json5', 'jsonp', 'jsstacktrace', 'jsx', 'julia', 'keepalived', 'keyman', 'kotlin', 'kumir', 'kusto', 'latex', 'latte', 'less', 'lilypond', 'liquid', 'lisp', 'livescript', 'llvm', 'log', 'lolcode', 'lua', 'magma', 'makefile', 'markdown', 'markup-templating', 'markup', 'matlab', 'maxscript', 'mel', 'mermaid', 'mizar', 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', 'naniscript', 'nasm', 'neon', 'nevod', 'nginx', 'nim', 'nix', 'nsis', 'objectivec', 'ocaml', 'opencl', 'openqasm', 'oz', 'parigp', 'parser', 'pascal', 'pascaligo', 'pcaxis', 'peoplecode', 'perl', 'php-extras', 'php', 'phpdoc', 'plsql', 'powerquery', 'powershell', 'processing', 'prolog', 'promql', 'properties', 'protobuf', 'psl', 'pug', 'puppet', 'pure', 'purebasic', 'purescript', 'python', 'q', 'qml', 'qore', 'qsharp', 'r', 'racket', 'reason', 'regex', 'rego', 'renpy', 'rest', 'rip', 'roboconf', 'robotframework', 'ruby', 'rust', 'sas', 'sass', 'scala', 'scheme', 'scss', 'shell-session', 'smali', 'smalltalk', 'smarty', 'sml', 'solidity', 'solution-file', 'soy', 'sparql', 'splunk-spl', 'sqf', 'sql', 'squirrel', 'stan', 'stylus', 'swift', 'systemd', 't4-cs', 't4-templating', 't4-vb', 'tap', 'tcl', 'textile', 'toml', 'tremor', 'tsx', 'tt2', 'turtle', 'twig', 'typescript', 'typoscript', 'unrealscript', 'uorazor', 'uri', 'v', 'vala', 'vbnet', 'velocity', 'verilog', 'vhdl', 'vim', 'visual-basic', 'warpscript', 'wasm', 'web-idl', 'wiki', 'wolfram', 'wren', 'xeora', 'xml-doc', 'xojo', 'xquery', 'yaml', 'yang', 'zig'];","export default {\n 'code[class*=\"language-\"]': {\n color: '#f8f8f2',\n background: 'none',\n fontFamily: \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n textAlign: 'left',\n whiteSpace: 'pre',\n wordSpacing: 'normal',\n wordBreak: 'normal',\n wordWrap: 'normal',\n lineHeight: '1.5',\n MozTabSize: '4',\n OTabSize: '4',\n tabSize: '4',\n WebkitHyphens: 'none',\n MozHyphens: 'none',\n msHyphens: 'none',\n hyphens: 'none',\n },\n 'pre[class*=\"language-\"]': {\n color: '#f8f8f2',\n background: '#2b2b2b',\n fontFamily: \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n textAlign: 'left',\n whiteSpace: 'pre',\n wordSpacing: 'normal',\n wordBreak: 'normal',\n wordWrap: 'normal',\n lineHeight: '1.5',\n MozTabSize: '4',\n OTabSize: '4',\n tabSize: '4',\n WebkitHyphens: 'none',\n MozHyphens: 'none',\n msHyphens: 'none',\n hyphens: 'none',\n padding: '1em',\n margin: '0.5em 0',\n overflow: 'auto',\n borderRadius: '0.3em',\n },\n ':not(pre) > code[class*=\"language-\"]': {\n background: '#2b2b2b',\n padding: '0.1em',\n borderRadius: '0.3em',\n whiteSpace: 'normal',\n },\n code: {\n color: '#f8f8f2',\n background: '#2b2b2b',\n fontFamily: \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n padding: '0.1em',\n borderRadius: '0.3em',\n whiteSpace: 'nowrap',\n fontSize: '18px',\n },\n comment: {\n color: '#d4d0ab',\n },\n prolog: {\n color: '#d4d0ab',\n },\n doctype: {\n color: '#d4d0ab',\n },\n cdata: {\n color: '#d4d0ab',\n },\n punctuation: {\n color: '#fefefe',\n },\n property: {\n color: '#ffa07a',\n },\n tag: {\n color: '#ffa07a',\n },\n constant: {\n color: '#ffa07a',\n },\n symbol: {\n color: '#ffa07a',\n },\n deleted: {\n color: '#ffa07a',\n },\n boolean: {\n color: '#00e0e0',\n },\n number: {\n color: '#00e0e0',\n },\n selector: {\n color: '#abe338',\n },\n 'attr-name': {\n color: '#abe338',\n },\n string: {\n color: '#abe338',\n },\n char: {\n color: '#abe338',\n },\n builtin: {\n color: '#abe338',\n },\n inserted: {\n color: '#abe338',\n },\n operator: {\n color: '#00e0e0',\n },\n entity: {\n color: '#00e0e0',\n cursor: 'help',\n },\n url: {\n color: '#00e0e0',\n },\n '.language-css .token.string': {\n color: '#00e0e0',\n },\n '.style .token.string': {\n color: '#00e0e0',\n },\n variable: {\n color: '#00e0e0',\n },\n atrule: {\n color: '#ffd700',\n },\n 'attr-value': {\n color: '#ffd700',\n },\n function: {\n color: '#ffd700',\n },\n keyword: {\n color: '#00e0e0',\n },\n regex: {\n color: '#ffd700',\n },\n important: {\n color: '#ffd700',\n fontWeight: 'bold',\n },\n bold: {\n fontWeight: 'bold',\n },\n italic: {\n fontStyle: 'italic',\n },\n};\n","import*as t from\"react\";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}const n=[\"children\",\"options\"],r=[\"allowFullScreen\",\"allowTransparency\",\"autoComplete\",\"autoFocus\",\"autoPlay\",\"cellPadding\",\"cellSpacing\",\"charSet\",\"className\",\"classId\",\"colSpan\",\"contentEditable\",\"contextMenu\",\"crossOrigin\",\"encType\",\"formAction\",\"formEncType\",\"formMethod\",\"formNoValidate\",\"formTarget\",\"frameBorder\",\"hrefLang\",\"inputMode\",\"keyParams\",\"keyType\",\"marginHeight\",\"marginWidth\",\"maxLength\",\"mediaGroup\",\"minLength\",\"noValidate\",\"radioGroup\",\"readOnly\",\"rowSpan\",\"spellCheck\",\"srcDoc\",\"srcLang\",\"srcSet\",\"tabIndex\",\"useMap\"].reduce((t,e)=>(t[e.toLowerCase()]=e,t),{for:\"htmlFor\"}),o={amp:\"&\",apos:\"'\",gt:\">\",lt:\"<\",nbsp:\" \",quot:\"“\"},c=[\"style\",\"script\"],a=/([-A-Z0-9_:]+)(?:\\s*=\\s*(?:(?:\"((?:\\\\.|[^\"])*)\")|(?:'((?:\\\\.|[^'])*)')|(?:\\{((?:\\\\.|{[^}]*?}|[^}])*)\\})))?/gi,u=/mailto:/i,i=/\\n{2,}$/,l=/^( *>[^\\n]+(\\n[^\\n]+)*\\n*)+\\n{2,}/,s=/^ *> ?/gm,_=/^ {2,}\\n/,f=/^(?:( *[-*_]) *){3,}(?:\\n *)+\\n/,d=/^\\s*(`{3,}|~{3,}) *(\\S+)? *\\n([\\s\\S]+?)\\s*\\1 *(?:\\n *)+\\n?/,p=/^(?: {4}[^\\n]+\\n*)+(?:\\n *)+\\n?/,g=/^(`+)\\s*([\\s\\S]*?[^`])\\s*\\1(?!`)/,m=/^(?:\\n *)*\\n/,y=/\\r\\n?/g,h=/^\\[\\^([^\\]]+)](:.*)\\n/,k=/^\\[\\^([^\\]]+)]/,x=/\\f/g,b=/^\\s*?\\[(x|\\s)\\]/,v=/^ *(#{1,6}) *([^\\n]+?)(?: +#*)?(?:\\n *)*(?:\\n|$)/,S=/^([^\\n]+)\\n *(=|-){3,} *(?:\\n *)+\\n/,$=/^ *(?!<[a-z][^ >/]* ?\\/>)<([a-z][^ >/]*) ?([^>]*)\\/{0}>\\n?(\\s*(?:<\\1[^>]*?>[\\s\\S]*?<\\/\\1>|(?!<\\1)[\\s\\S])*?)<\\/\\1>\\n*/i,w=/&([a-z]+);/g,z=/^<!--[\\s\\S]*?(?:-->)/,E=/^(data|aria|x)-[a-z_][a-z\\d_.-]*$/,A=/^ *<([a-z][a-z0-9:]*)(?:\\s+((?:<.*?>|[^>])*))?\\/?>(?!<\\/\\1>)(\\s*\\n)?/i,R=/^\\{.*\\}$/,I=/^(https?:\\/\\/[^\\s<]+[^<.,:;\"')\\]\\s])/,M=/^<([^ >]+@[^ >]+)>/,O=/^<([^ >]+:\\/[^ >]+)>/,B=/ *\\n+$/,L=/(?:^|\\n)( *)$/,T=/-([a-z])?/gi,j=/^(.*\\|?.*)\\n *(\\|? *[-:]+ *\\|[-| :]*)\\n((?:.*\\|.*\\n)*)\\n?/,C=/^\\[([^\\]]*)\\]:\\s+(\\S+)\\s*(\"([^\"]*)\")?/,D=/^!\\[([^\\]]*)\\] ?\\[([^\\]]*)\\]/,N=/^\\[([^\\]]*)\\] ?\\[([^\\]]*)\\]/,Z=/(\\[|\\])/g,F=/(\\n|^[-*]\\s|^#|^ {2,}|^-{2,}|^>\\s)/,P=/\\t/g,G=/^ *\\| */,H=/(^ *\\||\\| *$)/g,q=/ *$/,U=/^ *:-+: *$/,V=/^ *:-+ *$/,W=/^ *-+: *$/,Q=/^([*_])\\1((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\\1\\1(?!\\1)/,X=/^([*_])((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\\1(?!\\1|\\w)/,J=/^~~((?:\\[.*?\\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)~~/,K=/^\\\\([^0-9A-Za-z\\s])/,Y=/^[\\s\\S]+?(?=[^0-9A-Z\\s\\u00c0-\\uffff&;.()'\"]|\\d+\\.|\\n\\n| {2,}\\n|\\w+:\\S|$)/i,tt=/^\\n+/,et=/^([ \\t]*)/,nt=/\\\\([^0-9A-Z\\s])/gi,rt=new RegExp(\"^( *)((?:[*+-]|\\\\d+\\\\.)) +\"),ot=new RegExp(\"^( *)((?:[*+-]|\\\\d+\\\\.)) +[^\\\\n]*(?:\\\\n(?!\\\\1(?:[*+-]|\\\\d+\\\\.) )[^\\\\n]*)*(\\\\n|$)\",\"gm\"),ct=new RegExp(\"^( *)((?:[*+-]|\\\\d+\\\\.)) [\\\\s\\\\S]+?(?:\\\\n{2,}(?! )(?!\\\\1(?:[*+-]|\\\\d+\\\\.) (?!(?:[*+-]|\\\\d+\\\\.) ))\\\\n*|\\\\s*\\\\n*$)\"),at=\"(?:\\\\[[^\\\\]]*\\\\]|[^\\\\[\\\\]]|\\\\](?=[^\\\\[]*\\\\]))*\",ut=new RegExp(\"^\\\\[(\"+at+\")\\\\]\\\\(\\\\s*<?((?:[^\\\\s\\\\\\\\]|\\\\\\\\.)*?)>?(?:\\\\s+['\\\"]([\\\\s\\\\S]*?)['\\\"])?\\\\s*\\\\)\"),it=new RegExp(\"^!\\\\[(\"+at+\")\\\\]\\\\(\\\\s*<?((?:[^\\\\s\\\\\\\\]|\\\\\\\\.)*?)>?(?:\\\\s+['\\\"]([\\\\s\\\\S]*?)['\\\"])?\\\\s*\\\\)\"),lt=[l,p,d,v,S,z,ot,ct,j],st=[...lt,/^[^\\n]+(?: \\n|\\n{2,})/,$,A];function _t(t){return t.replace(/[ÀÃÂÃÄÅà áâãäåæÆ]/g,\"a\").replace(/[çÇ]/g,\"c\").replace(/[ðÃ]/g,\"d\").replace(/[ÈÉÊËéèêë]/g,\"e\").replace(/[ÃïÎîÃÃÌì]/g,\"i\").replace(/[Ññ]/g,\"n\").replace(/[øØœŒÕõÔôÓóÒò]/g,\"o\").replace(/[ÜüÛûÚúÙù]/g,\"u\").replace(/[ŸÿÃý]/g,\"y\").replace(/[^a-z0-9- ]/gi,\"\").replace(/ /gi,\"-\").toLowerCase()}function ft(t){return W.test(t)?\"right\":U.test(t)?\"center\":V.test(t)?\"left\":null}function dt(t,e,n){const r=n.t;n.t=!0;const o=e(t.trim(),n);n.t=r;let c=[[]];return o.forEach(function(t,e){\"tableSeparator\"===t.type?0!==e&&e!==o.length-1&&c.push([]):(\"text\"!==t.type||null!=o[e+1]&&\"tableSeparator\"!==o[e+1].type||(t.content=t.content.replace(q,\"\")),c[c.length-1].push(t))}),c}function pt(t,e,n){n.o=!0;const r=dt(t[1],e,n),o=t[2].replace(H,\"\").split(\"|\").map(ft),c=function(t,e,n){return t.trim().split(\"\\n\").map(function(t){return dt(t,e,n)})}(t[3],e,n);return n.o=!1,{align:o,cells:c,header:r,type:\"table\"}}function gt(t,e){return null==t.align[e]?{}:{textAlign:t.align[e]}}function mt(t){return function(e,n){return n.o?t.exec(e):null}}function yt(t){return function(e,n){return n.o||n.u?t.exec(e):null}}function ht(t){return function(e,n){return n.o||n.u?null:t.exec(e)}}function kt(t){return function(e){return t.exec(e)}}function xt(t,e,n){if(e.o||e.u)return null;if(n&&!n.endsWith(\"\\n\"))return null;let r=\"\";t.split(\"\\n\").every(t=>!lt.some(e=>e.test(t))&&(r+=t+\"\\n\",t.trim()));const o=r.trimEnd();return\"\"==o?null:[r,o]}function bt(t){try{if(decodeURIComponent(t).replace(/[^A-Za-z0-9/:]/g,\"\").match(/^\\s*(javascript|vbscript|data):/i))return null}catch(t){return null}return t}function vt(t){return t.replace(nt,\"$1\")}function St(t,e,n){const r=n.o||!1,o=n.u||!1;n.o=!0,n.u=!0;const c=t(e,n);return n.o=r,n.u=o,c}function $t(t,e,n){const r=n.o||!1,o=n.u||!1;n.o=!1,n.u=!0;const c=t(e,n);return n.o=r,n.u=o,c}function wt(t,e,n){return n.o=!1,t(e+\"\\n\\n\",n)}const zt=(t,e,n)=>({content:St(e,t[1],n)});function Et(){return{}}function At(){return null}function Rt(...t){return t.filter(Boolean).join(\" \")}function It(t,e,n){let r=t;const o=e.split(\".\");for(;o.length&&(r=r[o[0]],void 0!==r);)o.shift();return r||n}var Mt;function Ot(n,H={}){H.overrides=H.overrides||{},H.slugify=H.slugify||_t,H.namedCodesToUnicode=H.namedCodesToUnicode?e({},o,H.namedCodesToUnicode):o;const q=H.createElement||t.createElement;function U(t,n,...r){const o=It(H.overrides,`${t}.props`,{});return q(function(t,e){const n=It(e,t);return n?\"function\"==typeof n||\"object\"==typeof n&&\"render\"in n?n:It(e,`${t}.component`,t):t}(t,H.overrides),e({},n,o,{className:Rt(null==n?void 0:n.className,o.className)||void 0}),...r)}function V(e){let n=!1;H.forceInline?n=!0:H.forceBlock||(n=!1===F.test(e));const r=dt(ft(n?e:`${e.trimEnd().replace(tt,\"\")}\\n\\n`,{o:n}));for(;\"string\"==typeof r[r.length-1]&&!r[r.length-1].trim();)r.pop();if(null===H.wrapper)return r;const o=H.wrapper||(n?\"span\":\"div\");let c;if(r.length>1||H.forceWrapper)c=r;else{if(1===r.length)return c=r[0],\"string\"==typeof c?U(\"span\",{key:\"outer\"},c):c;c=null}return t.createElement(o,{key:\"outer\"},c)}function W(e){const n=e.match(a);return n?n.reduce(function(e,n,o){const c=n.indexOf(\"=\");if(-1!==c){const a=function(t){return-1!==t.indexOf(\"-\")&&null===t.match(E)&&(t=t.replace(T,function(t,e){return e.toUpperCase()})),t}(n.slice(0,c)).trim(),u=function(t){const e=t[0];return('\"'===e||\"'\"===e)&&t.length>=2&&t[t.length-1]===e?t.slice(1,-1):t}(n.slice(c+1).trim()),i=r[a]||a,l=e[i]=function(t,e){return\"style\"===t?e.split(/;\\s?/).reduce(function(t,e){const n=e.slice(0,e.indexOf(\":\"));return t[n.replace(/(-[a-z])/g,t=>t[1].toUpperCase())]=e.slice(n.length+1).trim(),t},{}):\"href\"===t?bt(e):(e.match(R)&&(e=e.slice(1,e.length-1)),\"true\"===e||\"false\"!==e&&e)}(a,u);\"string\"==typeof l&&($.test(l)||A.test(l))&&(e[i]=t.cloneElement(V(l.trim()),{key:o}))}else\"style\"!==n&&(e[r[n]||n]=!0);return e},{}):void 0}const nt=[],at={},lt={blockQuote:{i:ht(l),l:Mt.HIGH,_:(t,e,n)=>({content:e(t[0].replace(s,\"\"),n)}),p:(t,e,n)=>U(\"blockquote\",{key:n.g},e(t.content,n))},breakLine:{i:kt(_),l:Mt.HIGH,_:Et,p:(t,e,n)=>U(\"br\",{key:n.g})},breakThematic:{i:ht(f),l:Mt.HIGH,_:Et,p:(t,e,n)=>U(\"hr\",{key:n.g})},codeBlock:{i:ht(p),l:Mt.MAX,_:t=>({content:t[0].replace(/^ {4}/gm,\"\").replace(/\\n+$/,\"\"),lang:void 0}),p:(t,e,n)=>U(\"pre\",{key:n.g},U(\"code\",{className:t.lang?`lang-${t.lang}`:\"\"},t.content))},codeFenced:{i:ht(d),l:Mt.MAX,_:t=>({content:t[3],lang:t[2]||void 0,type:\"codeBlock\"})},codeInline:{i:yt(g),l:Mt.LOW,_:t=>({content:t[2]}),p:(t,e,n)=>U(\"code\",{key:n.g},t.content)},footnote:{i:ht(h),l:Mt.MAX,_:t=>(nt.push({footnote:t[2],identifier:t[1]}),{}),p:At},footnoteReference:{i:mt(k),l:Mt.HIGH,_:t=>({content:t[1],target:`#${H.slugify(t[1])}`}),p:(t,e,n)=>U(\"a\",{key:n.g,href:bt(t.target)},U(\"sup\",{key:n.g},t.content))},gfmTask:{i:mt(b),l:Mt.HIGH,_:t=>({completed:\"x\"===t[1].toLowerCase()}),p:(t,e,n)=>U(\"input\",{checked:t.completed,key:n.g,readOnly:!0,type:\"checkbox\"})},heading:{i:ht(v),l:Mt.HIGH,_:(t,e,n)=>({content:St(e,t[2],n),id:H.slugify(t[2]),level:t[1].length}),p:(t,e,n)=>(t.tag=`h${t.level}`,U(t.tag,{id:t.id,key:n.g},e(t.content,n)))},headingSetext:{i:ht(S),l:Mt.MAX,_:(t,e,n)=>({content:St(e,t[1],n),level:\"=\"===t[2]?1:2,type:\"heading\"})},htmlComment:{i:kt(z),l:Mt.HIGH,_:()=>({}),p:At},image:{i:yt(it),l:Mt.HIGH,_:t=>({alt:t[1],target:vt(t[2]),title:t[3]}),p:(t,e,n)=>U(\"img\",{key:n.g,alt:t.alt||void 0,title:t.title||void 0,src:bt(t.target)})},link:{i:mt(ut),l:Mt.LOW,_:(t,e,n)=>({content:$t(e,t[1],n),target:vt(t[2]),title:t[3]}),p:(t,e,n)=>U(\"a\",{key:n.g,href:bt(t.target),title:t.title},e(t.content,n))},linkAngleBraceStyleDetector:{i:mt(O),l:Mt.MAX,_:t=>({content:[{content:t[1],type:\"text\"}],target:t[1],type:\"link\"})},linkBareUrlDetector:{i:(t,e)=>e.m?null:mt(I)(t,e),l:Mt.MAX,_:t=>({content:[{content:t[1],type:\"text\"}],target:t[1],title:void 0,type:\"link\"})},linkMailtoDetector:{i:mt(M),l:Mt.MAX,_(t){let e=t[1],n=t[1];return u.test(n)||(n=\"mailto:\"+n),{content:[{content:e.replace(\"mailto:\",\"\"),type:\"text\"}],target:n,type:\"link\"}}},list:{i(t,e,n){const r=L.exec(n);return!r||!e.h&&e.o?null:ct.exec(t=r[1]+t)},l:Mt.HIGH,_(t,e,n){const r=t[2],o=r.length>1,c=o?+r:void 0,a=t[0].replace(i,\"\\n\").match(ot);let u=!1;return{items:a.map(function(t,r){const o=rt.exec(t)[0].length,c=new RegExp(\"^ {1,\"+o+\"}\",\"gm\"),i=t.replace(c,\"\").replace(rt,\"\"),l=r===a.length-1,s=-1!==i.indexOf(\"\\n\\n\")||l&&u;u=s;const _=n.o,f=n.h;let d;n.h=!0,s?(n.o=!1,d=i.replace(B,\"\\n\\n\")):(n.o=!0,d=i.replace(B,\"\"));const p=e(d,n);return n.o=_,n.h=f,p}),ordered:o,start:c}},p:(t,e,n)=>U(t.ordered?\"ol\":\"ul\",{key:n.g,start:t.start},t.items.map(function(t,r){return U(\"li\",{key:r},e(t,n))}))},newlineCoalescer:{i:ht(m),l:Mt.LOW,_:Et,p:()=>\"\\n\"},paragraph:{i:xt,l:Mt.LOW,_:zt,p:(t,e,n)=>U(\"p\",{key:n.g},e(t.content,n))},ref:{i:mt(C),l:Mt.MAX,_:t=>(at[t[1]]={target:t[2],title:t[4]},{}),p:At},refImage:{i:yt(D),l:Mt.MAX,_:t=>({alt:t[1]||void 0,ref:t[2]}),p:(t,e,n)=>U(\"img\",{key:n.g,alt:t.alt,src:bt(at[t.ref].target),title:at[t.ref].title})},refLink:{i:mt(N),l:Mt.MAX,_:(t,e,n)=>({content:e(t[1],n),fallbackContent:e(t[0].replace(Z,\"\\\\$1\"),n),ref:t[2]}),p:(t,e,n)=>at[t.ref]?U(\"a\",{key:n.g,href:bt(at[t.ref].target),title:at[t.ref].title},e(t.content,n)):U(\"span\",{key:n.g},e(t.fallbackContent,n))},table:{i:ht(j),l:Mt.HIGH,_:pt,p:(t,e,n)=>U(\"table\",{key:n.g},U(\"thead\",null,U(\"tr\",null,t.header.map(function(r,o){return U(\"th\",{key:o,style:gt(t,o)},e(r,n))}))),U(\"tbody\",null,t.cells.map(function(r,o){return U(\"tr\",{key:o},r.map(function(r,o){return U(\"td\",{key:o,style:gt(t,o)},e(r,n))}))})))},tableSeparator:{i:function(t,e){return e.t?G.exec(t):null},l:Mt.HIGH,_:function(){return{type:\"tableSeparator\"}},p:()=>\" | \"},text:{i:kt(Y),l:Mt.MIN,_:t=>({content:t[0].replace(w,(t,e)=>H.namedCodesToUnicode[e]?H.namedCodesToUnicode[e]:t)}),p:t=>t.content},textBolded:{i:yt(Q),l:Mt.MED,_:(t,e,n)=>({content:e(t[2],n)}),p:(t,e,n)=>U(\"strong\",{key:n.g},e(t.content,n))},textEmphasized:{i:yt(X),l:Mt.LOW,_:(t,e,n)=>({content:e(t[2],n)}),p:(t,e,n)=>U(\"em\",{key:n.g},e(t.content,n))},textEscaped:{i:yt(K),l:Mt.HIGH,_:t=>({content:t[1],type:\"text\"})},textStrikethroughed:{i:yt(J),l:Mt.LOW,_:zt,p:(t,e,n)=>U(\"del\",{key:n.g},e(t.content,n))}};!0!==H.disableParsingRawHTML&&(lt.htmlBlock={i:kt($),l:Mt.HIGH,_(t,e,n){const[,r]=t[3].match(et),o=new RegExp(`^${r}`,\"gm\"),a=t[3].replace(o,\"\"),u=(i=a,st.some(t=>t.test(i))?wt:St);var i;const l=t[1].toLowerCase(),s=-1!==c.indexOf(l);n.m=n.m||\"a\"===l;const _=s?t[3]:u(e,a,n);return n.m=!1,{attrs:W(t[2]),content:_,noInnerParse:s,tag:s?l:t[1]}},p:(t,n,r)=>U(t.tag,e({key:r.g},t.attrs),t.noInnerParse?t.content:n(t.content,r))},lt.htmlSelfClosing={i:kt(A),l:Mt.HIGH,_:t=>({attrs:W(t[2]||\"\"),tag:t[1]}),p:(t,n,r)=>U(t.tag,e({},t.attrs,{key:r.g}))});const ft=function(t){let e=Object.keys(t);function n(r,o){let c=[],a=\"\";for(;r;){let u=0;for(;u<e.length;){const i=e[u],l=t[i],s=l.i(r,o,a);if(s){const t=s[0];r=r.substring(t.length);const e=l._(s,n,o);null==e.type&&(e.type=i),c.push(e),a=t;break}u++}}return c}return e.sort(function(e,n){let r=t[e].l,o=t[n].l;return r!==o?r-o:e<n?-1:1}),function(t,e){return n(function(t){return t.replace(y,\"\\n\").replace(x,\"\").replace(P,\" \")}(t),e)}}(lt),dt=(Ot=function(t){return function(e,n,r){return t[e.type].p(e,n,r)}}(lt),function t(e,n={}){if(Array.isArray(e)){const r=n.g,o=[];let c=!1;for(let r=0;r<e.length;r++){n.g=r;const a=t(e[r],n),u=\"string\"==typeof a;u&&c?o[o.length-1]+=a:null!==a&&o.push(a),c=u}return n.g=r,o}return Ot(e,t,n)});var Ot;const Bt=V(n);return nt.length?U(\"div\",null,Bt,U(\"footer\",{key:\"footer\"},nt.map(function(t){return U(\"div\",{id:H.slugify(t.identifier),key:t.identifier},t.identifier,dt(ft(t.footnote,{o:!0})))}))):Bt}!function(t){t[t.MAX=0]=\"MAX\",t[t.HIGH=1]=\"HIGH\",t[t.MED=2]=\"MED\",t[t.LOW=3]=\"LOW\",t[t.MIN=4]=\"MIN\"}(Mt||(Mt={}));export default e=>{let{children:r,options:o}=e,c=function(t,e){if(null==t)return{};var n,r,o={},c=Object.keys(t);for(r=0;r<c.length;r++)e.indexOf(n=c[r])>=0||(o[n]=t[n]);return o}(e,n);return t.cloneElement(Ot(r,o),c)};export{Ot as compiler};\n//# sourceMappingURL=index.modern.js.map\n","import React, { forwardRef, Fragment } from 'react';\nimport Markdown from 'markdown-to-jsx';\nimport {\n Heading,\n Paragraph,\n Anchor,\n Image,\n Table,\n TableBody,\n TableCell,\n TableFooter,\n TableHeader,\n TableRow,\n} from 'grommet';\n\nconst isObject = (item) =>\n item && typeof item === 'object' && !Array.isArray(item);\n\nconst deepMerge = (target, ...sources) => {\n if (!sources.length) {\n return target;\n }\n // making sure to not change target (immutable)\n const output = { ...target };\n sources.forEach((source) => {\n if (isObject(source)) {\n Object.keys(source).forEach((key) => {\n if (isObject(source[key])) {\n if (!output[key]) {\n output[key] = { ...source[key] };\n } else {\n output[key] = deepMerge(output[key], source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n }\n });\n return output;\n};\n\nconst GrommetMarkdown = forwardRef(\n ({ children, components, options, theme, ...rest }, ref) => {\n const heading = [1, 2, 3, 4].reduce((obj, level) => {\n const result = { ...obj };\n result[`h${level}`] = {\n component: Heading,\n props: { level },\n };\n return result;\n }, {});\n\n const overrides = deepMerge(\n {\n a: { component: Anchor },\n img: { component: Image },\n p: { component: Paragraph },\n table: { component: Table },\n td: { component: TableCell, props: { plain: true } },\n tbody: { component: TableBody },\n tfoot: { component: TableFooter },\n th: { component: TableCell },\n thead: { component: TableHeader },\n tr: { component: TableRow },\n },\n heading,\n components,\n options && options.overrides,\n );\n\n // we use Fragment as the wrapper so we can assign the ref with the div\n // wrapper can still be overridden with the options.\n return (\n <div ref={ref} {...rest}>\n <Markdown\n {...{ children }}\n options={{ wrapper: Fragment, ...options, overrides }}\n />\n </div>\n );\n },\n);\n\nexport { GrommetMarkdown };\n","/* eslint-disable max-classes-per-file */\n/* eslint-disable max-len */\nimport React from 'react';\nimport {\n Anchor,\n Box,\n Button,\n Heading,\n Image as GrommetImage,\n Paragraph,\n} from 'grommet';\nimport { Download, Github } from 'grommet-icons';\nimport PropTypes from 'prop-types';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { deepMerge } from 'grommet/utils';\nimport codestyle from './markdownTheme';\nimport { GrommetMarkdown } from './Markdown';\n\nclass Image extends React.Component {\n render() {\n const { src } = this.props;\n if (src === 'Github') {\n return <Github color=\"brand\" />;\n }\n if (src === 'Download') {\n return <Download color=\"brand\" />;\n }\n return <GrommetImage {...this.props} />;\n }\n}\n\nImage.propTypes = {\n src: PropTypes.string,\n};\n\nclass Code extends React.Component {\n render() {\n const { className, children } = this.props;\n const language = className ? className.substr('lang-'.length) : '';\n\n if (language) {\n return (\n <SyntaxHighlighter language={language} style={codestyle}>\n {children}\n </SyntaxHighlighter>\n );\n }\n return <code style={codestyle.code} {...this.props} />;\n }\n}\n\nCode.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n};\n\nconst AnchorButton = ({ children, ...rest }) => (\n <Button label={children} {...rest} />\n);\n\nAnchorButton.propTypes = {\n children: PropTypes.any,\n};\n\nconst components = {\n p: {\n component: Paragraph,\n props: {\n fill: true,\n size: 'xlarge',\n },\n },\n hr: {\n component: Box,\n props: {\n border: {\n top: 'small',\n color: 'border',\n },\n },\n },\n img: {\n component: Image,\n },\n a: {\n component: Anchor,\n props: {\n target: '_blank',\n rel: 'noopener noreferrer',\n },\n },\n code: {\n component: Code,\n },\n};\n\nexport const cardComponents = {\n h1: {\n component: Heading,\n props: {\n margin: { top: 'none', bottom: 'none' },\n level: 1,\n },\n },\n h2: {\n component: Heading,\n props: {\n margin: { top: 'none', bottom: 'xsmall' },\n level: 2,\n },\n },\n h3: {\n component: Heading,\n props: {\n margin: { top: 'none', bottom: 'xsmall' },\n level: 3,\n },\n },\n h4: {\n component: Heading,\n props: {\n margin: { top: 'none', bottom: 'none' },\n level: 4,\n style: {\n fontWeight: 'normal',\n },\n },\n },\n p: {\n component: Paragraph,\n props: {\n size: 'large',\n style: {\n // maxWidth: '100%',\n },\n },\n },\n img: {\n component: Image,\n props: {\n style: {},\n },\n },\n a: {\n component: AnchorButton,\n props: {\n primary: true,\n },\n },\n};\n\nexport const titleComponents = deepMerge(cardComponents, {\n h1: {\n props: {\n size: 'large',\n },\n },\n});\n\nexport const Markdown = (props) => (\n <GrommetMarkdown components={components} {...props} />\n);\nexport const CardMarkdown = (props) => (\n <GrommetMarkdown components={cardComponents} {...props} />\n);\nexport const TitleMarkdown = (props) => (\n <GrommetMarkdown components={titleComponents} {...props} />\n);\n\nexport default Markdown;\n","// @reach-router from gatsby doesn't have a useParams so we make our own.\nexport const useParams = (location) => {\n if (!location.search || location.search.indexOf('?') !== 0) {\n return {};\n }\n const params = {};\n const nameValues = location.search.substring(1).split('&');\n nameValues.forEach((pair) => {\n const nameValue = pair.split('=');\n params[nameValue[0]] = decodeURIComponent(nameValue[1]);\n });\n return params;\n};\n","/* eslint-disable no-underscore-dangle */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { navigate } from \"gatsby\"\nimport { Box, Heading, Tabs, Tab, Text, TextInput } from 'grommet';\nimport { Search as SearchIcon } from 'grommet-icons';\n\nimport { Link, HighlightedText } from '../../components';\nimport { useParams } from '../../hooks/use-params';\n\nconst capitalize = (text) =>\n text.substring(0, 1).toUpperCase() + text.substring(1);\n\nconst categoryLabel = (category) =>\n category === 'homepanels' ? 'Home' : capitalize(category);\n\nconst Results = ({ searchTerm, results }) => {\n if (results.length === 0) {\n return (\n <Text>\n No results found for term <code>{searchTerm}</code>\n </Text>\n );\n }\n\n return results.map(({ doc, titlePos, bodyPos, tagsPos }, index) => (\n <Box pad={{ bottom: 'medium' }} border={{ side: 'bottom' }} key={index}>\n <Text size=\"small\">{categoryLabel(doc.sourceInstanceName)}</Text>\n {doc && doc.sourceInstanceName !== 'platforms' ? (\n <Link to={doc.externalLink ? doc.externalLink : `/${doc.path}`}>\n <HighlightedText content={doc.title} positions={titlePos} />\n </Link>\n ) : ( \n <Link to={doc.externalLink ? doc.externalLink : doc.path}>\n <HighlightedText content={doc.title} positions={titlePos} />\n </Link>\n )}\n {bodyPos.length > 0 && (\n <HighlightedText\n content={doc.body}\n positions={bodyPos}\n isMarkdown\n maxLength={100}\n />\n )}\n {tagsPos.length > 0 && (\n <Box direction=\"row\" gap=\"small\">\n <Text>Tags:</Text>\n <HighlightedText content={doc.tags} positions={tagsPos} />\n </Box>\n )}\n </Box>\n ));\n};\n\nResults.propTypes = {\n searchTerm: PropTypes.string,\n results: PropTypes.arrayOf(\n PropTypes.shape({\n doc: PropTypes.shape({\n title: PropTypes.string,\n body: PropTypes.string,\n tags: PropTypes.string,\n sourceInstanceName: PropTypes.string,\n path: PropTypes.string,\n externalLink:PropTypes.string\n }),\n titlePos: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number))\n .isRequired,\n bodyPos: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number))\n .isRequired,\n tagsPos: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number))\n .isRequired,\n }),\n ).isRequired,\n};\n\n//\n// results from index.search(query) are of the form:\n// [ {\n// ref: \"123\", // related doc is in window.__LUNR__.en.store[ref]\n// score: 42.34,\n// matchData: {\n// metadata: {\n// <term1>: {\n// <doc_field1>: { position: [ [<start>, <length>], ... ] },\n// <doc_field2>: { position: [ [<start>, <length>], ... ] },\n// ...\n// },\n// <term2>: {\n// <doc_field1>: { position: [ [<start>, <length>], ... ] },\n// <doc_field2>: { position: [ [<start>, <length>], ... ] },\n// ...\n// },\n// },\n// },\n// },\n// ...\n// ]\nconst getPositions = (searchResult, field) => {\n let positions = [];\n if (searchResult.matchData && searchResult.matchData.metadata) {\n const data = searchResult.matchData.metadata;\n Object.keys(data).forEach((searchTerm) => {\n if (data[searchTerm][field] && data[searchTerm][field].position) {\n positions = positions.concat(data[searchTerm][field].position);\n }\n });\n }\n return positions;\n};\n\nconst getSearchResults = async (query) => {\n let searchResults = [];\n const categoryMap = { 'All Results': true, 'Blog by Author': true };\n\n if (query && window.__LUNR__) {\n try {\n const queryResults =\n (await window.__LUNR__.__loaded) &&\n window.__LUNR__.en.index.search(query);\n searchResults = queryResults.map((searchResult) => {\n const doc = window.__LUNR__.en.store[searchResult.ref];\n categoryMap[doc.sourceInstanceName] = true;\n return {\n titlePos: getPositions(searchResult, 'title'),\n bodyPos: getPositions(searchResult, 'body'),\n tagsPos: getPositions(searchResult, 'tags'),\n authorPos: getPositions(searchResult, 'author'),\n doc,\n };\n });\n } catch (x) {\n // bad query e.g. title:\n }\n }\n\n return { searchResults, searchCategories: Object.keys(categoryMap).sort() };\n};\n\nconst SearchContainer = ({ location }) => {\n const { term } = useParams(location);\n const [value, setValue] = useState(term);\n const [results, setResults] = useState();\n const [categories, setCategories] = useState();\n const [activeCategoryIndex, setActiveCategoryIndex] = useState(0);\n\n useEffect(() => {\n if (value) {\n const getResults = async () => {\n const { searchResults, searchCategories } = await getSearchResults(\n value,\n );\n setResults(searchResults);\n setCategories(searchCategories);\n };\n getResults();\n }\n }, [value]);\n\n const onChange = (event) => {\n const { value: newValue } = event.target;\n setValue(newValue);\n // update the URL\n const query = newValue ? `?term=${encodeURIComponent(newValue)}` : '';\n navigate(`/search/${query}`, { replace: true });\n // todo update route term= param\n };\n\n const filterResults = (category) => {\n if (category === 'Blog by Author') {\n return results.filter((author) => author.authorPos.length > 0);\n }\n return results.filter(\n ({ doc }) =>\n !category ||\n category === 'All Results' ||\n doc.sourceInstanceName === category,\n );\n };\n\n const onCategoryChange = (index) => setActiveCategoryIndex(index);\n\n return (\n <Box flex overflow=\"auto\" gap=\"medium\" pad=\"small\">\n <Box flex={false} direction=\"row-responsive\" wrap>\n <Box pad=\"large\">\n <Heading margin=\"none\">Search</Heading>\n </Box>\n <Box pad={{ vertical: 'large' }} gap=\"medium\">\n <Box\n width=\"large\"\n direction=\"row\"\n align=\"center\"\n pad={{ horizontal: 'small', vertical: 'xsmall' }}\n border\n round=\"small\"\n >\n <SearchIcon color=\"brand\" />\n <TextInput\n type=\"search\"\n plain\n placeholder=\"Search HPE Developer Portal...\"\n onChange={onChange}\n value={value}\n />\n </Box>\n {results && categories && (\n <Box>\n <Tabs\n activeIndex={activeCategoryIndex}\n onActive={onCategoryChange}\n >\n {categories.map((category, index) => (\n <Tab key={index} title={categoryLabel(category)} />\n ))}\n </Tabs>\n <Results\n searchTerm={value}\n results={filterResults(categories[activeCategoryIndex])}\n />\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n );\n};\n\nSearchContainer.propTypes = {\n location: PropTypes.object,\n};\n\nexport default SearchContainer;\n","import React, { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Box,\n Heading,\n Anchor,\n Text,\n Form,\n FormField,\n TextInput,\n Button,\n Paragraph,\n} from 'grommet';\n\nimport { Link } from '../../components';\nimport { AppContext } from '../../providers/AppProvider';\n\n\nconst emailValidation = [\n {\n regexp: new RegExp('[^@ \\\\t\\\\r\\\\n]+@'),\n message: 'Enter a valid email address.',\n status: 'error',\n },\n {\n regexp: new RegExp('[^@ \\\\t\\\\r\\\\n]+@[^@ \\\\t\\\\r\\\\n]+\\\\.[^@ \\\\t\\\\r\\\\n]+'),\n message: 'Enter a valid email address.',\n status: 'error',\n },\n {\n regexp: new RegExp('[^@ \\\\t\\\\r\\\\n]+@[^@ \\\\t\\\\r\\\\n]+\\\\.[^@ \\\\t\\\\r\\\\n]+'),\n message: 'Enter a valid email address.',\n status: 'error',\n },\n];\n\nexport const EmailCapture = ({ children, heading, bodyCopy1, bodyCopy2 }) => {\n const [loading, setLoading] = useState(false);\n const [success, setSuccess] = useState(false);\n const [errorMsg, setErrorMsg] = useState('');\n const { user: userDetails } = useContext(AppContext);\n const [formData, setFormData] = useState({\n email: userDetails?.email || '',\n });\n \n useEffect(() => {\n if (userDetails?.email) {\n setFormData((prevFormData) => ({\n ...prevFormData,\n email: userDetails.email,\n }));\n }\n }, [userDetails?.email]);\n\n const onSubmit = () => {\n // eslint-disable-line\n setErrorMsg('');\n const { email } = formData;\n const listId = 14530343;\n return fetch(process.env.GATSBY_NEWSLETTER_API, {\n method: 'POST',\n headers: new Headers({\n 'content-type': 'application/json',\n }),\n body: JSON.stringify({ email, listId }),\n json: true,\n })\n .then((res) => res.json())\n .then((res) => {\n setLoading(false);\n if (res.error_count !== 0) {\n setLoading(false);\n setErrorMsg('There was an error processing your request.');\n }\n if (res.new_count === 1) {\n setLoading(false);\n setSuccess(true);\n }\n if (res.new_count === 0) {\n setErrorMsg('You have already signed up for our newsletter.');\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const resetForm = () => {\n setFormData({\n email: '',\n });\n };\n\n return (\n <Box align=\"start\" gap=\"medium\">\n {!children && (\n <Box>\n <Box size=\"large\">\n <Heading margin=\"none\">{heading}</Heading>\n </Box>\n <Box>\n <Paragraph margin=\"none\">{bodyCopy1}</Paragraph>\n {bodyCopy2 && (\n <Text>\n Sign up for the HPE Developer Newsletter or visit the{' '}\n <Link to=\"/newsletter-archive\">Newsletter Archive</Link> to see\n past content.\n </Text>\n )}\n </Box>\n </Box>\n )}\n <Box>\n <Form\n validate=\"blur\"\n value={formData}\n onChange={setFormData}\n onSubmit={() => onSubmit()}\n >\n <FormField\n name=\"email\"\n label=\"Email Address\"\n required\n width=\"medium\"\n validate={emailValidation}\n >\n <TextInput placeholder=\"example@my.com\" name=\"email\" />\n </FormField>\n <Box margin={{ top: 'medium' }} gap=\"medium\">\n <Paragraph margin=\"none\">\n By clicking on “Subscribe Nowâ€, I agree to HPE sending me\n personalized email communication about HPE and select HPE-Partner\n products, services, offers and events. I understand that my email\n address will be used in accordance with{' '}\n <Anchor\n label=\"HPE Privacy Statement\"\n href=\"https://www.hpe.com/us/en/legal/privacy.html\"\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n />\n . You may unsubscribe from receiving HPE and HPE-Partner news and\n offers at any time by clicking on the Unsubscribe button at the\n bottom of the newsletter.\n </Paragraph>\n <Button\n alignSelf=\"start\"\n label=\"Subscribe Now\"\n primary\n type=\"submit\"\n />\n <Paragraph margin=\"none\">\n For more information on how HPE manages, uses, and protects your\n personal data please refer to{' '}\n <Anchor\n label=\"HPE Privacy Statement\"\n href=\"https://www.hpe.com/us/en/legal/privacy.html\"\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n />\n .\n </Paragraph>\n {errorMsg && <Text color=\"status-critical\">{errorMsg}</Text>}\n </Box>\n </Form>\n </Box>\n {loading && (\n <Box>\n <Text>Loading...</Text>\n </Box>\n )}\n {success && (\n <Box>\n <Text>Thanks! You are subscribed to the newsletter.</Text>\n <Text>\n <Anchor onClick={resetForm}>Reset entry form</Anchor>\n </Text>\n </Box>\n )}\n </Box>\n );\n};\n\nEmailCapture.defaultProps = {\n heading: 'HPE Developer Newsletter',\n bodyCopy1: 'Stay in the loop.',\n};\n\nEmailCapture.propTypes = {\n children: PropTypes.node,\n heading: PropTypes.string,\n bodyCopy1: PropTypes.string,\n bodyCopy2: PropTypes.bool,\n};\n\nexport default EmailCapture;\n","import { useState } from 'react';\n\nexport function useLocalStorage(key, initialValue) {\n const windowGlobal = typeof window !== 'undefined' && window;\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState(() => {\n try {\n // Get from local storage by key\n const item =\n windowGlobal.localStorage && windowGlobal.localStorage.getItem(key);\n // Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n // If error also return initialValue\n console.log(error);\n return initialValue;\n }\n });\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue = (value) => {\n try {\n // Allow value to be a function so we have same API as useState\n const valueToStore =\n value instanceof Function ? value(storedValue) : value;\n // Save state\n setStoredValue(valueToStore);\n // Save to local storage\n windowGlobal.localStorage.setItem(key, JSON.stringify(valueToStore));\n } catch (error) {\n // A more advanced implementation would handle the error case\n console.log(error);\n }\n };\n return [storedValue, setValue];\n}\n","import { useStaticQuery, graphql } from 'gatsby';\n\nexport const useSiteMetadata = () => {\n const { site } = useStaticQuery(\n graphql`\n query SiteMeta {\n site {\n siteMetadata {\n title\n description\n author\n siteUrl\n }\n }\n }\n `,\n );\n\n return site.siteMetadata;\n};\n","import axios from 'axios';\n\n// eslint-disable-next-line max-len\nconst API_URL = `${process.env.GATSBY_WORKSHOPCHALLENGE_API_ENDPOINT}/api/login`;\nconst options = {\n headers: {\n 'Content-Type': 'application/json',\n },\n};\n\nclass AuthService {\n login() {\n return axios({\n method: 'POST',\n url: API_URL,\n headers: options,\n }).then((response) => {\n if (response.data.accessToken) {\n localStorage.setItem('user', JSON.stringify(response.data));\n }\n\n return response.data;\n });\n }\n\n logout() {\n localStorage.removeItem('user');\n }\n\n getCurrentUser() {\n return JSON.parse(localStorage.getItem('user'));\n }\n}\n\nexport default new AuthService();\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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _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}\n\nmodule.exports = _nonIterableSpread;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\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\nmodule.exports = _objectWithoutProperties;","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\nmodule.exports = _objectWithoutPropertiesLoose;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\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}\n\nmodule.exports = _unsupportedIterableToArray;","\"use strict\";\n\nexports.__esModule = true;\nexports.StyledIcon = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _styledComponents = _interopRequireWildcard(require(\"styled-components\"));\nvar _defaultProps = require(\"./default-props\");\nvar _utils = require(\"./utils\");\nvar _excluded = [\"a11yTitle\", \"color\", \"size\", \"theme\"];\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n// Returns the specific color that should be used according to the theme.\n// If 'dark' is supplied, it takes precedence over 'theme.dark'.\n// Can return undefined.\nvar normalizeColor = function normalizeColor(color, theme, dark) {\n var colorSpec = theme.global && theme.global.colors[color] !== undefined ? theme.global.colors[color] : color;\n // If the color has a light or dark object, use that\n var result = colorSpec;\n if (colorSpec) {\n if ((dark === true || dark === undefined && theme.dark) && colorSpec.dark !== undefined) {\n result = colorSpec.dark;\n } else if ((dark === false || !theme.dark) && colorSpec.light !== undefined) {\n result = colorSpec.light;\n }\n }\n // allow one level of indirection in color names\n if (result && theme.global && theme.global.colors[result] !== undefined) {\n result = normalizeColor(result, theme, dark);\n }\n return result;\n};\nvar colorStyle = function colorStyle(name, value, theme, required) {\n return (0, _styledComponents.css)([\"\", \":\", \";\"], name, normalizeColor(value, theme, required));\n};\nvar colorCss = (0, _styledComponents.css)([\"\", \" \", \" g{fill:inherit;stroke:inherit;}*:not([stroke]){&[fill='none']{stroke-width:0;}}*[stroke*='#'],*[STROKE*='#']{stroke:inherit;fill:none;}*[fill-rule],*[FILL-RULE],*[fill*='#'],*[FILL*='#']{fill:inherit;stroke:none;}\"], function (props) {\n return colorStyle('fill', props.color || props.theme.global.colors.icon, props.theme);\n}, function (props) {\n return colorStyle('stroke', props.color || props.theme.global.colors.icon, props.theme);\n});\nvar IconInner = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {\n var a11yTitle = _ref.a11yTitle,\n color = _ref.color,\n size = _ref.size,\n theme = _ref.theme,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", _extends({\n ref: ref,\n \"aria-label\": a11yTitle\n }, rest));\n});\nIconInner.displayName = 'Icon';\nvar StyledIcon = exports.StyledIcon = (0, _styledComponents[\"default\"])(IconInner).withConfig({\n // don't let height attribute leak to DOM\n // https://styled-components.com/docs/api#shouldforwardprop\n shouldForwardProp: function shouldForwardProp(prop) {\n return !['height', 'width'].includes(prop);\n }\n}).withConfig({\n displayName: \"StyledIcon\",\n componentId: \"sc-ofa7kd-0\"\n})([\"display:inline-block;flex:0 0 auto;\", \" \", \" \", \" \", \"\"], function (_ref2) {\n var _size$match;\n var _ref2$size = _ref2.size,\n sizeProp = _ref2$size === void 0 ? 'medium' : _ref2$size,\n theme = _ref2.theme,\n viewBox = _ref2.viewBox;\n var _split = (viewBox || '0 0 24 24').split(' '),\n w = _split[2],\n h = _split[3];\n var scale = w / h;\n var size = theme.icon.size[sizeProp] || sizeProp;\n var dimension = (0, _utils.parseMetricToNum)(size);\n // grab rem, em, px value from resolved size value\n var unit = ((_size$match = size.match(/[a-z]+$/)) == null ? void 0 : _size$match[0]) || 'px';\n if (w < h) {\n return \"\\n width: \" + dimension + unit + \";\\n height: \" + dimension / scale + unit + \";\\n \";\n }\n if (h < w) {\n return \"\\n width: \" + dimension * scale + unit + \";\\n height: \" + dimension + unit + \";\\n \";\n }\n return \"\\n width: \" + dimension + unit + \";\\n height: \" + dimension + unit + \";\\n \";\n}, function (_ref3) {\n var color = _ref3.color;\n return color !== 'plain' && colorCss;\n}, function (props) {\n return (props.height || props.width) && (0, _utils.iconPad)(props);\n}, function (_ref4) {\n var theme = _ref4.theme;\n return theme && theme.icon.extend;\n});\nStyledIcon.defaultProps = {};\nObject.setPrototypeOf(StyledIcon.defaultProps, _defaultProps.defaultProps);","\"use strict\";\n\nexports.__esModule = true;\nexports.extendDefaultTheme = exports.defaultProps = void 0;\nvar _utils = require(\"./utils\");\nvar _themes = require(\"./themes\");\nvar defaultProps = exports.defaultProps = {\n theme: _themes.base\n};\nvar extendDefaultTheme = exports.extendDefaultTheme = function extendDefaultTheme(theme) {\n defaultProps.theme = (0, _utils.deepMerge)(_themes.base, theme);\n};","import { deepMerge } from './utils';\nimport { base } from './themes';\nexport var defaultProps = {\n theme: base\n};\nexport var extendDefaultTheme = function extendDefaultTheme(theme) {\n defaultProps.theme = deepMerge(base, theme);\n};","export var base = {\n global: {\n colors: {\n icon: '#666666'\n }\n },\n icon: {\n size: {\n small: '12px',\n medium: '24px',\n large: '48px',\n xlarge: '96px'\n }\n }\n};","var _excluded = [\"a11yTitle\", \"color\", \"size\", \"theme\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { defaultProps } from './default-props';\nimport { iconPad, parseMetricToNum } from './utils';\n\n// Returns the specific color that should be used according to the theme.\n// If 'dark' is supplied, it takes precedence over 'theme.dark'.\n// Can return undefined.\nvar normalizeColor = function normalizeColor(color, theme, dark) {\n var colorSpec = theme.global && theme.global.colors[color] !== undefined ? theme.global.colors[color] : color;\n // If the color has a light or dark object, use that\n var result = colorSpec;\n if (colorSpec) {\n if ((dark === true || dark === undefined && theme.dark) && colorSpec.dark !== undefined) {\n result = colorSpec.dark;\n } else if ((dark === false || !theme.dark) && colorSpec.light !== undefined) {\n result = colorSpec.light;\n }\n }\n // allow one level of indirection in color names\n if (result && theme.global && theme.global.colors[result] !== undefined) {\n result = normalizeColor(result, theme, dark);\n }\n return result;\n};\nvar colorStyle = function colorStyle(name, value, theme, required) {\n return css([\"\", \":\", \";\"], name, normalizeColor(value, theme, required));\n};\nvar colorCss = css([\"\", \" \", \" g{fill:inherit;stroke:inherit;}*:not([stroke]){&[fill='none']{stroke-width:0;}}*[stroke*='#'],*[STROKE*='#']{stroke:inherit;fill:none;}*[fill-rule],*[FILL-RULE],*[fill*='#'],*[FILL*='#']{fill:inherit;stroke:none;}\"], function (props) {\n return colorStyle('fill', props.color || props.theme.global.colors.icon, props.theme);\n}, function (props) {\n return colorStyle('stroke', props.color || props.theme.global.colors.icon, props.theme);\n});\nvar IconInner = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var a11yTitle = _ref.a11yTitle,\n color = _ref.color,\n size = _ref.size,\n theme = _ref.theme,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n \"aria-label\": a11yTitle\n }, rest));\n});\nIconInner.displayName = 'Icon';\nvar StyledIcon = styled(IconInner).withConfig({\n // don't let height attribute leak to DOM\n // https://styled-components.com/docs/api#shouldforwardprop\n shouldForwardProp: function shouldForwardProp(prop) {\n return !['height', 'width'].includes(prop);\n }\n}).withConfig({\n displayName: \"StyledIcon\",\n componentId: \"sc-ofa7kd-0\"\n})([\"display:inline-block;flex:0 0 auto;\", \" \", \" \", \" \", \"\"], function (_ref2) {\n var _size$match;\n var _ref2$size = _ref2.size,\n sizeProp = _ref2$size === void 0 ? 'medium' : _ref2$size,\n theme = _ref2.theme,\n viewBox = _ref2.viewBox;\n var _split = (viewBox || '0 0 24 24').split(' '),\n w = _split[2],\n h = _split[3];\n var scale = w / h;\n var size = theme.icon.size[sizeProp] || sizeProp;\n var dimension = parseMetricToNum(size);\n // grab rem, em, px value from resolved size value\n var unit = ((_size$match = size.match(/[a-z]+$/)) == null ? void 0 : _size$match[0]) || 'px';\n if (w < h) {\n return \"\\n width: \" + dimension + unit + \";\\n height: \" + dimension / scale + unit + \";\\n \";\n }\n if (h < w) {\n return \"\\n width: \" + dimension * scale + unit + \";\\n height: \" + dimension + unit + \";\\n \";\n }\n return \"\\n width: \" + dimension + unit + \";\\n height: \" + dimension + unit + \";\\n \";\n}, function (_ref3) {\n var color = _ref3.color;\n return color !== 'plain' && colorCss;\n}, function (props) {\n return (props.height || props.width) && iconPad(props);\n}, function (_ref4) {\n var theme = _ref4.theme;\n return theme && theme.icon.extend;\n});\nStyledIcon.defaultProps = {};\nObject.setPrototypeOf(StyledIcon.defaultProps, defaultProps);\nexport { StyledIcon };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar FormDown = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormDown\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m18 9-6 6-6-6\"\n }));\n});\nFormDown.displayName = 'FormDown';\nexport { FormDown };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar FormPreviousLink = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormPreviousLink\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M18 12.4H6M11.4 7 6 12.4l5.4 5.4\"\n }));\n});\nFormPreviousLink.displayName = 'FormPreviousLink';\nexport { FormPreviousLink };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar Link = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Link\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M16.125 2.42a2.009 2.009 0 0 1 2.84-.001l2.616 2.617a2 2 0 0 1-.001 2.839l-3.705 3.705a2.009 2.009 0 0 1-2.84.001L12.42 8.964a2 2 0 0 1 .001-2.839l3.705-3.705zm-10 10a2.009 2.009 0 0 1 2.84-.001l2.616 2.617a2 2 0 0 1-.001 2.839L7.875 21.58a2.009 2.009 0 0 1-2.84.001L2.42 18.964a2 2 0 0 1 .001-2.839l3.705-3.705zM7 17 17 7\"\n }));\n});\nLink.displayName = 'Link';\nexport { Link };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nimport { useScaleProps } from '../utils';\nvar LinkNext = /*#__PURE__*/forwardRef(function (props, ref) {\n var scaleProps = useScaleProps(props);\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"LinkNext\"\n }, props), /*#__PURE__*/React.createElement(\"path\", _extends({\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M2 12h20m-9-9 9 9-9 9\"\n }, scaleProps)));\n});\nLinkNext.displayName = 'LinkNext';\nexport { LinkNext };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar Linkedin = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Linkedin\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0077B5\",\n fillRule: \"evenodd\",\n d: \"M20.452 20.45h-3.56v-5.57c0-1.328-.022-3.036-1.85-3.036-1.851 0-2.134 1.447-2.134 2.942v5.664H9.352V8.997h3.413v1.566h.049c.475-.9 1.636-1.85 3.367-1.85 3.605 0 4.27 2.371 4.27 5.456v6.281zM5.339 7.433a2.063 2.063 0 1 1 0-4.13 2.065 2.065 0 0 1 0 4.13zM7.12 20.45H3.558V8.997H7.12V20.45zM23 0H1a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z\"\n }));\n});\nLinkedin.displayName = 'Linkedin';\nexport { Linkedin };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar Menu = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Menu\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M2 19h20M2 5h20M2 12h20\"\n }));\n});\nMenu.displayName = 'Menu';\nexport { Menu };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nimport { useScaleProps } from '../utils';\nvar Search = /*#__PURE__*/forwardRef(function (props, ref) {\n var scaleProps = useScaleProps(props);\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Search\"\n }, props), /*#__PURE__*/React.createElement(\"path\", _extends({\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m15 15 7 7-7-7zm-5.5 2a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15z\"\n }, scaleProps)));\n});\nSearch.displayName = 'Search';\nexport { Search };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledIcon } from '../StyledIcon';\nvar Twitter = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Twitter\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1DA1F2\",\n fillRule: \"evenodd\",\n d: \"M24 4.309a9.83 9.83 0 0 1-2.828.775 4.94 4.94 0 0 0 2.165-2.724 9.865 9.865 0 0 1-3.127 1.196 4.925 4.925 0 0 0-8.39 4.49A13.974 13.974 0 0 1 1.671 2.9a4.902 4.902 0 0 0-.667 2.476c0 1.708.869 3.216 2.191 4.099A4.936 4.936 0 0 1 .964 8.86v.06a4.926 4.926 0 0 0 3.95 4.829 4.964 4.964 0 0 1-2.224.085 4.93 4.93 0 0 0 4.6 3.42 9.886 9.886 0 0 1-6.115 2.107c-.398 0-.79-.023-1.175-.068a13.945 13.945 0 0 0 7.548 2.212c9.057 0 14.009-7.503 14.009-14.01 0-.213-.005-.425-.014-.636A10.012 10.012 0 0 0 24 4.309\"\n }));\n});\nTwitter.displayName = 'Twitter';\nexport { Twitter };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport { useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\nexport function deepMerge(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n if (!sources.length) {\n return target;\n }\n // making sure to not change target (immutable)\n var output = _extends({}, target);\n sources.forEach(function (source) {\n if (isObject(source)) {\n Object.keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!output[key]) {\n output[key] = _extends({}, source[key]);\n } else {\n output[key] = deepMerge(output[key], source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n }\n });\n return output;\n}\nexport var parseMetricToNum = function parseMetricToNum(string) {\n if (string === void 0) {\n string = '';\n }\n return parseFloat(string.match(/\\d+(\\.\\d+)?/), 10);\n};\n\n// scaleProps sets path properties to prevent scaling the stroke\n// when the theme doesn't want it for small sizes.\nexport function useScaleProps(props) {\n var _theme$icon;\n var theme = useContext(ThemeContext);\n var size = props.size;\n var result = {};\n if (theme != null && (_theme$icon = theme.icon) != null && _theme$icon.disableScaleDown) {\n var dimension = parseMetricToNum(theme.icon.size[size] || size);\n if (dimension < 24) result.vectorEffect = 'non-scaling-stroke';\n }\n return result;\n}\nvar calculatePad = function calculatePad(value, iconDimension) {\n return (value - iconDimension) / 2 + \"px\";\n};\n\n// iconPad applies padding to icon to ensure it aligns\n// with text line-height or desired width\nexport function iconPad(props) {\n var _theme$icon2, _theme$text, _theme$text2;\n var height = props.height,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n width = props.width;\n var theme = useContext(ThemeContext);\n var iconDimension = parseMetricToNum((theme == null || (_theme$icon2 = theme.icon) == null || (_theme$icon2 = _theme$icon2.size) == null ? void 0 : _theme$icon2[size]) || size);\n var style = '';\n if (height && theme != null && (_theme$text = theme.text) != null && (_theme$text = _theme$text[height]) != null && _theme$text.height) {\n var lineHeight = parseMetricToNum(theme.text[height].height);\n if (lineHeight > iconDimension) {\n var pad = calculatePad(lineHeight, iconDimension);\n style += \"padding-top: \" + pad + \"; padding-bottom: \" + pad + \";\";\n }\n }\n if (width && theme != null && (_theme$text2 = theme.text) != null && (_theme$text2 = _theme$text2[width]) != null && _theme$text2.height) {\n var desiredWidth = parseMetricToNum(theme.text[width].height);\n if (desiredWidth > iconDimension) {\n var _pad = calculatePad(desiredWidth, iconDimension);\n style += \"padding-left: \" + _pad + \"; padding-right: \" + _pad + \";\";\n }\n }\n return style;\n}\n\n// ensure icons that rely on urls don't have id collision\n// Date.now + Math.random is unique enough for icon use cases\nexport var generatePrefix = function generatePrefix(name) {\n return \"_grommeticons-\" + name + \"-\" + (\n // don't include time-based/random id generation in snapshot tests to avoid\n // needing to update snapshots with every commit\n process.env.NODE_ENV !== 'test' ? Date.now() + Math.random() : '');\n};\nexport default {\n deepMerge: deepMerge,\n isObject: isObject,\n parseMetricToNum: parseMetricToNum,\n iconPad: iconPad,\n useScaleProps: useScaleProps\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.Actions = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Actions = exports.Actions = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Actions\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M12 17.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zm0-11V1m0 22v-5.5M1 12h5.5m11 0H23M4.437 4.437l4.125 4.125m6.876 6.876 4.124 4.124m0-15.125-4.125 4.125m-6.874 6.876-4.126 4.124\"\n }));\n});\nActions.displayName = 'Actions';","\"use strict\";\n\nexports.__esModule = true;\nexports.Ascending = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Ascending = exports.Ascending = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Ascending\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"m12.08 7.286.354-.353.354.353L17 11.498l-.707.708-3.358-3.359V17h-1V8.847l-3.359 3.359-.707-.708 4.212-4.212z\",\n fill: \"#000\"\n }));\n});\nAscending.displayName = 'Ascending';","\"use strict\";\n\nexports.__esModule = true;\nexports.AssistListening = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar AssistListening = exports.AssistListening = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"AssistListening\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"2\",\n d: \"M11 21c.757.667 1.424 1 2 1 2 0 3-1 3-3 0-1.333.667-2.667 2-4 1.267-1.267 2-3.067 2-5a7 7 0 0 0-14 0m11 0a4 4 0 1 0-8 0M3 20l5-6 1 4 5-6\"\n }));\n});\nAssistListening.displayName = 'AssistListening';","\"use strict\";\n\nexports.__esModule = true;\nexports.Blank = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Blank = exports.Blank = function Blank(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n viewBox: \"0 0 24 24\",\n \"aria-hidden\": true\n }, props));\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.CircleAlert = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar CircleAlert = exports.CircleAlert = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"CircleAlert\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n stroke: \"#000\",\n strokeWidth: \"2\",\n fill: \"none\",\n d: \"M12 14V6m0 12v-2m0-14C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2z\"\n }));\n});\nCircleAlert.displayName = 'CircleAlert';","\"use strict\";\n\nexports.__esModule = true;\nexports.CircleInformation = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar CircleInformation = exports.CircleInformation = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"CircleInformation\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10zm0-12v8m0-12v2\"\n }));\n});\nCircleInformation.displayName = 'CircleInformation';","\"use strict\";\n\nexports.__esModule = true;\nexports.ClosedCaption = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar ClosedCaption = exports.ClosedCaption = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"ClosedCaption\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M1 12c0-7 1.5-8 11-8s11 1 11 8-1.5 8-11 8-11-1-11-8zm4.25 2c0 1.5.75 2 2.5 2s2.5-.5 2.5-2h-.271c0 1.25-1 2-2.229 2-1.23 0-2.229-.75-2.229-2v-4C5.5 8.75 6.5 8 7.75 8s2.25.75 2.229 2h.271c0-1.25-1.021-2-2.5-2s-2.5.75-2.5 2v4zm8 0c0 1.5.75 2 2.5 2s2.5-.5 2.5-2h-.271c0 1.25-1 2-2.229 2-1.23 0-2.229-.75-2.229-2v-4c-.021-1.25.979-2 2.229-2s2.25.75 2.229 2h.271c0-1.25-1.021-2-2.5-2s-2.5.75-2.5 2v4z\"\n }));\n});\nClosedCaption.displayName = 'ClosedCaption';","\"use strict\";\n\nexports.__esModule = true;\nexports.Descending = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Descending = exports.Descending = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Descending\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"m11.92 16.714-.354.353-.354-.353L7 12.502l.707-.708 3.359 3.359V7h1v8.153l3.358-3.359.707.708-4.212 4.212z\",\n fill: \"#000\"\n }));\n});\nDescending.displayName = 'Descending';","\"use strict\";\n\nexports.__esModule = true;\nexports.Expand = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Expand = exports.Expand = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Expand\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m10 14-8 8m-1-7v8h8M22 2l-8 8m1-9h8v8\"\n }));\n});\nExpand.displayName = 'Expand';","\"use strict\";\n\nexports.__esModule = true;\nexports.FormClose = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar FormClose = exports.FormClose = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormClose\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m7 7 10 10M7 17 17 7\"\n }));\n});\nFormClose.displayName = 'FormClose';","\"use strict\";\n\nexports.__esModule = true;\nexports.FormDown = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar FormDown = exports.FormDown = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormDown\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m18 9-6 6-6-6\"\n }));\n});\nFormDown.displayName = 'FormDown';","\"use strict\";\n\nexports.__esModule = true;\nexports.FormNext = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar FormNext = exports.FormNext = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormNext\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m9 6 6 6-6 6\"\n }));\n});\nFormNext.displayName = 'FormNext';","\"use strict\";\n\nexports.__esModule = true;\nexports.FormPin = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar FormPin = exports.FormPin = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormPin\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m4 19 4.455-4.454M12.273 5 18 10.727m-4.454-4.454L9.727 10.09s-2.545-.636-4.454 1.273l6.363 6.363c1.91-1.909 1.273-4.454 1.273-4.454l3.818-3.818-3.181-3.182Z\"\n }));\n});\nFormPin.displayName = 'FormPin';","\"use strict\";\n\nexports.__esModule = true;\nexports.FormPrevious = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar FormPrevious = exports.FormPrevious = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormPrevious\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m15 6-6 6 6 6\"\n }));\n});\nFormPrevious.displayName = 'FormPrevious';","\"use strict\";\n\nexports.__esModule = true;\nexports.FormUp = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar FormUp = exports.FormUp = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"FormUp\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m18 15-6-6-6 6\"\n }));\n});\nFormUp.displayName = 'FormUp';","\"use strict\";\n\nexports.__esModule = true;\nexports.Next = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nvar _utils = require(\"../utils\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Next = exports.Next = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n var scaleProps = (0, _utils.useScaleProps)(props);\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Next\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", _extends({\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m7 2 10 10L7 22\"\n }, scaleProps)));\n});\nNext.displayName = 'Next';","\"use strict\";\n\nexports.__esModule = true;\nexports.Pause = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Pause = exports.Pause = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Pause\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M3 21h6V3H3v18zm12 0h6V3h-6v18z\"\n }));\n});\nPause.displayName = 'Pause';","\"use strict\";\n\nexports.__esModule = true;\nexports.Play = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Play = exports.Play = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Play\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"m3 22 18-10L3 2z\"\n }));\n});\nPlay.displayName = 'Play';","\"use strict\";\n\nexports.__esModule = true;\nexports.Previous = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nvar _utils = require(\"../utils\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Previous = exports.Previous = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n var scaleProps = (0, _utils.useScaleProps)(props);\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Previous\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", _extends({\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M17 2 7 12l10 10\"\n }, scaleProps)));\n});\nPrevious.displayName = 'Previous';","\"use strict\";\n\nexports.__esModule = true;\nexports.StatusCriticalSmall = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar StatusCriticalSmall = exports.StatusCriticalSmall = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 12 12\",\n a11yTitle: \"Status is critical\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n stroke: \"#000\",\n d: \"M6.712 1.263a1.005 1.005 0 0 0-1.424 0L1.263 5.288a1.005 1.005 0 0 0 0 1.424l4.025 4.025a1.005 1.005 0 0 0 1.424 0l4.025-4.025a1.005 1.005 0 0 0 0-1.424L6.712 1.263z\"\n }));\n});\nStatusCriticalSmall.displayName = 'StatusCriticalSmall';","\"use strict\";\n\nexports.__esModule = true;\nexports.StatusGoodSmall = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar StatusGoodSmall = exports.StatusGoodSmall = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 12 12\",\n a11yTitle: \"Status is okay\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"6\",\n cy: \"6\",\n r: \"5\",\n fillRule: \"evenodd\",\n stroke: \"#000\"\n }));\n});\nStatusGoodSmall.displayName = 'StatusGoodSmall';","\"use strict\";\n\nexports.__esModule = true;\nexports.StatusUnknownSmall = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar StatusUnknownSmall = exports.StatusUnknownSmall = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 12 12\",\n a11yTitle: \"Status is unknown\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n width: \"10\",\n height: \"10\",\n x: \"1\",\n y: \"1\",\n fillRule: \"evenodd\",\n stroke: \"#000\",\n rx: \"1\"\n }));\n});\nStatusUnknownSmall.displayName = 'StatusUnknownSmall';","\"use strict\";\n\nexports.__esModule = true;\nexports.StatusWarningSmall = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar StatusWarningSmall = exports.StatusWarningSmall = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 12 12\",\n a11yTitle: \"Status is warning\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n stroke: \"#000\",\n strokeLinejoin: \"round\",\n d: \"m6 1 5 9H1z\"\n }));\n});\nStatusWarningSmall.displayName = 'StatusWarningSmall';","\"use strict\";\n\nexports.__esModule = true;\nexports.Subtract = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Subtract = exports.Subtract = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Subtract\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M2 12h20\"\n }));\n});\nSubtract.displayName = 'Subtract';","\"use strict\";\n\nexports.__esModule = true;\nexports.Unsorted = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Unsorted = exports.Unsorted = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Unsorted\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"m15.204 15.321 1.597-1.597.707.707-2.45 2.45-.354.354-.353-.353-2.45-2.45.707-.708 1.596 1.597V7.217h1v8.104zm-5.9-6.407v8.104h1V8.914l1.597 1.597.707-.707-2.45-2.45L9.803 7l-.354.354L7 9.804l.707.707 1.597-1.597z\",\n fill: \"#000\"\n }));\n});\nUnsorted.displayName = 'Unsorted';","\"use strict\";\n\nexports.__esModule = true;\nexports.Volume = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Volume = exports.Volume = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"Volume\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M15 16a4 4 0 0 0 0-8m0 12c5 0 8-3.589 8-8s-3.589-8-8-8M1 12V8h5l6-5v18l-6-5H1v-4\"\n }));\n});\nVolume.displayName = 'Volume';","\"use strict\";\n\nexports.__esModule = true;\nexports.VolumeLow = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _StyledIcon = require(\"../StyledIcon\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar VolumeLow = exports.VolumeLow = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(_StyledIcon.StyledIcon, _extends({\n ref: ref,\n viewBox: \"0 0 24 24\",\n a11yTitle: \"VolumeLow\"\n }, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: \"2\",\n d: \"M1 8v8h5.099L12 21V3L6 8H1zm14 8a4 4 0 1 0 0-8\"\n }));\n});\nVolumeLow.displayName = 'VolumeLow';","\"use strict\";\n\nexports.__esModule = true;\nexports.base = void 0;\nvar base = exports.base = {\n global: {\n colors: {\n icon: '#666666'\n }\n },\n icon: {\n size: {\n small: '12px',\n medium: '24px',\n large: '48px',\n xlarge: '96px'\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.base = void 0;\nvar _base = require(\"./base\");\nexports.base = _base.base;","\"use strict\";\n\nexports.__esModule = true;\nexports.deepMerge = deepMerge;\nexports.generatePrefix = exports[\"default\"] = void 0;\nexports.iconPad = iconPad;\nexports.isObject = isObject;\nexports.parseMetricToNum = void 0;\nexports.useScaleProps = useScaleProps;\nvar _react = require(\"react\");\nvar _styledComponents = require(\"styled-components\");\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\nfunction deepMerge(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n if (!sources.length) {\n return target;\n }\n // making sure to not change target (immutable)\n var output = _extends({}, target);\n sources.forEach(function (source) {\n if (isObject(source)) {\n Object.keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!output[key]) {\n output[key] = _extends({}, source[key]);\n } else {\n output[key] = deepMerge(output[key], source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n }\n });\n return output;\n}\nvar parseMetricToNum = exports.parseMetricToNum = function parseMetricToNum(string) {\n if (string === void 0) {\n string = '';\n }\n return parseFloat(string.match(/\\d+(\\.\\d+)?/), 10);\n};\n\n// scaleProps sets path properties to prevent scaling the stroke\n// when the theme doesn't want it for small sizes.\nfunction useScaleProps(props) {\n var _theme$icon;\n var theme = (0, _react.useContext)(_styledComponents.ThemeContext);\n var size = props.size;\n var result = {};\n if (theme != null && (_theme$icon = theme.icon) != null && _theme$icon.disableScaleDown) {\n var dimension = parseMetricToNum(theme.icon.size[size] || size);\n if (dimension < 24) result.vectorEffect = 'non-scaling-stroke';\n }\n return result;\n}\nvar calculatePad = function calculatePad(value, iconDimension) {\n return (value - iconDimension) / 2 + \"px\";\n};\n\n// iconPad applies padding to icon to ensure it aligns\n// with text line-height or desired width\nfunction iconPad(props) {\n var _theme$icon2, _theme$text, _theme$text2;\n var height = props.height,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n width = props.width;\n var theme = (0, _react.useContext)(_styledComponents.ThemeContext);\n var iconDimension = parseMetricToNum((theme == null || (_theme$icon2 = theme.icon) == null || (_theme$icon2 = _theme$icon2.size) == null ? void 0 : _theme$icon2[size]) || size);\n var style = '';\n if (height && theme != null && (_theme$text = theme.text) != null && (_theme$text = _theme$text[height]) != null && _theme$text.height) {\n var lineHeight = parseMetricToNum(theme.text[height].height);\n if (lineHeight > iconDimension) {\n var pad = calculatePad(lineHeight, iconDimension);\n style += \"padding-top: \" + pad + \"; padding-bottom: \" + pad + \";\";\n }\n }\n if (width && theme != null && (_theme$text2 = theme.text) != null && (_theme$text2 = _theme$text2[width]) != null && _theme$text2.height) {\n var desiredWidth = parseMetricToNum(theme.text[width].height);\n if (desiredWidth > iconDimension) {\n var _pad = calculatePad(desiredWidth, iconDimension);\n style += \"padding-left: \" + _pad + \"; padding-right: \" + _pad + \";\";\n }\n }\n return style;\n}\n\n// ensure icons that rely on urls don't have id collision\n// Date.now + Math.random is unique enough for icon use cases\nvar generatePrefix = exports.generatePrefix = function generatePrefix(name) {\n return \"_grommeticons-\" + name + \"-\" + (\n // don't include time-based/random id generation in snapshot tests to avoid\n // needing to update snapshots with every commit\n process.env.NODE_ENV !== 'test' ? Date.now() + Math.random() : '');\n};\nvar _default = exports[\"default\"] = {\n deepMerge: deepMerge,\n isObject: isObject,\n parseMetricToNum: parseMetricToNum,\n iconPad: iconPad,\n useScaleProps: useScaleProps\n};","function _templateObject2() {\n var data = _taggedTemplateLiteralLoose([\"\\n border-top-left-radius: \", \"; // should use radius property of border\\n border-top-right-radius: \", \"; // should use radius property of border\\n font-weight: bold;\\n \"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteralLoose([\"\\n \", \"\\n \"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }\n\n// (C) Copyright 2020-2021 Hewlett Packard Enterprise Development LP\nimport React from 'react';\nimport { css } from 'styled-components';\nimport { Ascending } from 'grommet-icons/icons/Ascending';\nimport { Blank } from 'grommet-icons/icons/Blank';\nimport { CircleAlert } from 'grommet-icons/icons/CircleAlert';\nimport { Descending } from 'grommet-icons/icons/Descending';\nimport { FormDown } from 'grommet-icons/icons/FormDown';\nimport { FormUp } from 'grommet-icons/icons/FormUp';\nimport { Unsorted } from 'grommet-icons/icons/Unsorted';\n\nvar isObject = function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n};\n\nvar deepFreeze = function deepFreeze(obj) {\n Object.keys(obj).forEach(function (key) {\n return key && isObject(obj[key]) && Object.freeze(obj[key]);\n });\n return Object.freeze(obj);\n};\n\nexport var hpe = deepFreeze({\n defaultMode: 'light',\n global: {\n colors: {\n /* deprecated accent and neutral colors */\n 'accent-1': undefined,\n 'accent-2': undefined,\n 'accent-3': undefined,\n 'accent-4': undefined,\n 'neutral-1': undefined,\n 'neutral-2': undefined,\n 'neutral-3': undefined,\n 'neutral-4': undefined,\n 'neutral-5': undefined,\n 'status-error': undefined,\n brand: 'green!',\n background: {\n dark: '#263040',\n light: '#FFFFFF'\n },\n 'background-back': {\n dark: '#263040',\n light: '#EFEFEF'\n },\n 'background-front': {\n dark: '#404B5C',\n light: '#FFFFFF'\n },\n 'background-contrast': {\n dark: '#FFFFFF14',\n light: '#0000000A'\n },\n icon: 'text',\n text: {\n dark: '#C0CADC',\n light: '#444444'\n },\n 'text-strong': {\n dark: '#FFFFFF',\n light: '#000000'\n },\n 'text-weak': {\n dark: '#606B7D',\n light: '#BBBBBB'\n },\n 'text-xweak': 'text-weak',\n border: {\n dark: '#7887A1',\n light: '#999999'\n },\n 'border-strong': {\n dark: '#AFBCD2',\n light: '#666666'\n },\n 'border-weak': {\n dark: '#606B7D',\n light: '#BBBBBB'\n },\n control: 'green',\n 'active-background': 'background-contrast',\n 'active-text': 'text',\n 'disabled-text': 'text-weak',\n // deprecated, use text-weak instead\n 'selected-background': 'green',\n 'selected-text': 'text-strong',\n 'status-critical': {\n dark: '#D04F4E',\n light: '#FC5A5A'\n },\n 'status-warning': {\n dark: '#9B6310',\n light: '#FFBC44'\n },\n 'status-ok': {\n dark: '#008567',\n light: '#17EBA0'\n },\n 'status-unknown': {\n dark: '#4F5F76',\n light: '#CCCCCC'\n },\n 'status-disabled': '#CCCCCC',\n // deprecated, does not support light and dark. use text-weak instead\n blue: {\n dark: '#00567A',\n light: '#00C8FF'\n },\n 'blue!': '#00739D',\n green: {\n dark: '#008567',\n light: '#17EBA0'\n },\n 'green!': '#01A982',\n teal: {\n dark: '#117B82',\n light: '#82FFF2'\n },\n 'teal!': '#00E8CF',\n purple: {\n dark: '#6633BC',\n light: '#F740FF'\n },\n 'purple!': '#7630EA',\n red: {\n dark: '#A2423D',\n light: '#FC6161'\n },\n 'red!': '#C54E4B',\n orange: {\n dark: '#9B6310',\n light: '#FFBC44'\n },\n 'orange!': '#FF8300',\n yellow: {\n dark: '#8D741C',\n light: '#FFEB59'\n },\n 'yellow!': '#FEC901',\n 'validation-critical': {\n light: '#FC61613D',\n dark: '#C54E4B5C'\n },\n 'graph-0': 'orange!',\n 'graph-1': 'blue!',\n 'graph-2': 'purple!',\n 'graph-3': 'yellow!',\n 'graph-4': 'teal!',\n focus: 'teal!',\n placeholder: 'text-weak'\n },\n input: {\n font: {\n height: 'inherit',\n weight: 500\n },\n padding: {\n horizontal: 'small',\n vertical: 'xsmall'\n },\n extend: \"\\n &::-webkit-input-placeholder {\\n font-weight: 400;\\n }\\n \\n &::-moz-placeholder {\\n font-weight: 400;\\n }\\n \\n &:-ms-input-placeholder {\\n font-weight: 400;\\n }\\n \"\n },\n font: {\n family: \"'Metric', Arial, sans-serif\",\n face: \"\\n @font-face {\\n font-family: \\\"Metric\\\";\\n src: url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXS-Regular.woff2\\\") format('woff2'),\\n url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXS-Regular.woff\\\") format('woff');\\n }\\n @font-face {\\n font-family: \\\"Metric\\\";\\n src: url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXS-Bold.woff2\\\") format('woff2'),\\n url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXS-Bold.woff\\\") format('woff');\\n font-weight: 700;\\n }\\n @font-face {\\n font-family: \\\"Metric\\\";\\n src: url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXSSemibold-Regular.woff2\\\") format('woff2'),\\n url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXSSemibold-Regular.woff\\\") format('woff');\\n font-weight: 600;\\n }\\n @font-face {\\n font-family: \\\"Metric\\\";\\n src: url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXSMedium-Regular.woff2\\\") format('woff2'),\\n url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXSMedium-Regular.woff\\\") format('woff');\\n font-weight: 500;\\n }\\n @font-face {\\n font-family: \\\"Metric\\\";\\n src: url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXSLight-Regular.woff2\\\") format('woff2'),\\n url(\\\"https://d3hq6blov2iije.cloudfront.net/fonts/HPEXS-Metric-Fonts/MetricHPEXSLight-Regular.woff\\\") format('woff');\\n font-weight: 100;\\n }\"\n },\n focus: {\n border: undefined\n },\n active: {\n background: 'active-background',\n color: 'active-text'\n },\n drop: {\n background: 'background-front',\n border: {\n radius: '4px'\n },\n extend: function extend(_ref) {\n var alignProp = _ref.alignProp,\n theme = _ref.theme;\n return \"\\n margin-top: \" + (alignProp.top !== 'top' && theme.global.edgeSize.xsmall) + \"; \\n margin-bottom: \" + (alignProp.bottom !== 'bottom' && theme.global.edgeSize.xsmall);\n },\n shadowSize: 'medium'\n },\n elevation: {\n // Elevation values were derived from this Figma file.\n // https://www.figma.com/file/eZYR3dtWdb9U90QvJ7p3T9/HPE-Color-Styles?node-id=405%3A25\n // Naming in Figma file is strong/default/weak vs. Grommet t-shirt sizing.\n // As defined here, default is currently mapping to medium.\n light: {\n small: '0px 2px 4px #0000001F;',\n medium: '0px 6px 12px #0000003D;',\n large: '0px 12px 24px #0000001F;'\n },\n dark: {\n small: '0px 2px 4px #0000003D;',\n medium: '0px 6px 12px #0000005C;',\n large: '0px 12px 24px #0000007A;'\n }\n },\n hover: {\n background: 'active-background',\n color: 'active-text'\n },\n selected: {\n background: 'selected-background',\n color: 'selected-text'\n }\n },\n accordion: {\n panel: {\n border: {\n side: 'horizontal',\n color: 'text'\n }\n },\n heading: {\n margin: {\n vertical: 'medium',\n horizontal: 'xsmall'\n }\n },\n hover: {\n heading: {\n color: undefined\n }\n },\n border: undefined,\n icons: {\n color: 'text'\n }\n },\n anchor: {\n color: 'text',\n textDecoration: 'underline',\n fontWeight: 500,\n hover: {\n textDecoration: 'underline'\n }\n },\n button: {\n \"default\": {\n color: 'text-strong',\n border: undefined,\n font: {\n weight: 700\n },\n padding: {\n horizontal: '12px',\n vertical: '6px'\n }\n },\n primary: {\n background: {\n color: 'green'\n },\n border: undefined,\n color: 'text-strong',\n font: {\n weight: 700\n },\n padding: {\n horizontal: '12px',\n vertical: '6px'\n }\n },\n secondary: {\n border: {\n color: 'green',\n width: '2px'\n },\n color: 'text-strong',\n font: {\n weight: 700\n },\n padding: {\n horizontal: '10px',\n vertical: '4px'\n }\n },\n option: {\n color: 'text',\n border: {\n radius: '0px'\n },\n padding: {\n horizontal: '12px',\n vertical: '6px'\n },\n font: {\n weight: 400\n }\n },\n active: {\n background: {\n color: 'background-contrast'\n },\n color: 'text',\n secondary: {\n border: {\n color: 'transparent'\n }\n },\n option: {\n background: {\n color: 'active-background'\n }\n }\n },\n selected: {\n option: {\n background: 'selected-background',\n color: 'selected-text'\n }\n },\n disabled: {\n background: {\n color: 'transparent'\n },\n color: 'text-weak',\n primary: {\n border: {\n color: 'border-weak',\n width: '2px'\n },\n padding: {\n horizontal: '10px',\n vertical: '4px'\n }\n },\n secondary: {\n border: {\n color: 'border-weak'\n }\n },\n opacity: 1.0\n },\n hover: {\n \"default\": {\n background: {\n color: 'background-contrast'\n },\n color: undefined\n },\n secondary: {\n border: {\n width: '3px'\n },\n padding: {\n horizontal: '9px',\n vertical: '3px'\n }\n },\n option: {\n background: 'active-background',\n color: 'active-text'\n }\n },\n size: {\n small: {\n border: {\n radius: '4px'\n },\n pad: {\n vertical: '4px',\n horizontal: '8px'\n }\n },\n medium: {\n border: {\n radius: '4px'\n },\n pad: {\n vertical: '4px',\n horizontal: '10px'\n }\n },\n large: {\n border: {\n radius: '6px'\n },\n pad: {\n vertical: '6px',\n horizontal: '16px'\n }\n }\n },\n border: {\n radius: '4px'\n },\n color: 'text-strong',\n padding: {\n vertical: '4px',\n horizontal: '10px'\n }\n },\n calendar: {\n small: {\n fontSize: '13.6px',\n lineHeight: 1.375,\n daySize: '27.43px'\n },\n medium: {\n fontSize: '18px',\n lineHeight: 1.45,\n daySize: '54.86px'\n },\n large: {\n fontSize: '31.2px',\n lineHeight: 1.11,\n daySize: '109.71px'\n }\n },\n card: {\n container: {\n background: 'background-front'\n },\n body: {\n pad: 'medium'\n },\n footer: {\n pad: {\n horizontal: 'medium',\n vertical: 'small'\n }\n },\n header: {\n pad: 'medium'\n }\n },\n checkBox: {\n hover: {\n border: {\n color: undefined\n },\n background: {\n color: 'background-contrast'\n }\n },\n color: 'background',\n border: {\n color: 'border',\n width: '1px'\n },\n check: {\n radius: '2px',\n extend: function extend(_ref2) {\n var theme = _ref2.theme,\n checked = _ref2.checked,\n indeterminate = _ref2.indeterminate;\n return \"\\n box-shadow: none;\\n background-color: \" + (checked || indeterminate ? theme.global.colors.green[theme.dark ? 'dark' : 'light'] : theme.global.colors.background[theme.dark ? 'dark' : 'light']) + \";\\n \" + ((checked || indeterminate) && 'border: none;') + \"\\n \";\n }\n },\n icon: {\n extend: function extend(_ref3) {\n var theme = _ref3.theme;\n return \"stroke-width: 2px;\\n stroke: \" + theme.global.colors['text-strong'][theme.dark ? 'dark' : 'light'];\n }\n },\n gap: 'small',\n toggle: {\n background: 'background',\n color: 'background',\n knob: {\n extend: function extend(_ref4) {\n var theme = _ref4.theme;\n return \"\\n box-shadow: \" + theme.global.elevation[theme.dark ? 'dark' : 'light'].small + \";\\n border: 1px solid \" + theme.global.colors.border[theme.dark ? 'dark' : 'light'] + \"\\n \";\n }\n },\n extend: function extend(_ref5) {\n var checked = _ref5.checked,\n theme = _ref5.theme;\n return \"\\n \" + (checked && \"background-color: \" + theme.global.colors.green[theme.dark ? 'dark' : 'light'] + \";\") + \"\\n \";\n }\n },\n extend: function extend(_ref6) {\n var disabled = _ref6.disabled,\n theme = _ref6.theme;\n return \"\\n \" + (!disabled && \":hover {\\n background-color: \" + theme.global.colors['background-contrast'][theme.dark ? 'dark' : 'light'] + \";\\n }\") + \"\\n font-weight: 500;\\n width: auto;\\n padding: \" + theme.global.edgeSize.xsmall + \" \" + theme.global.edgeSize.small + \";\\n \";\n }\n },\n checkBoxGroup: {\n container: {\n gap: 'none',\n margin: {\n vertical: 'xsmall'\n }\n }\n },\n dataTable: {\n body: {\n extend: function extend(_ref7) {\n var theme = _ref7.theme;\n return \"\\n /* Margin and padding allow room for focus on table body */\\n margin: \" + theme.global.edgeSize.xxsmall + \" 0px;\\n padding: 0px \" + theme.global.edgeSize.xxsmall + \";\\n \";\n }\n },\n header: {\n border: {\n side: 'bottom'\n },\n color: 'text-strong',\n extend: function extend(_ref8) {\n var column = _ref8.column,\n sort = _ref8.sort,\n sortable = _ref8.sortable,\n theme = _ref8.theme;\n return \"\\n \" + (sort && sort.property === column && \"\\n background: \" + theme.global.colors['background-contrast'][theme.dark ? 'dark' : 'light'] + \"\\n \") + \";\\n \" + (sortable && sort && sort.property !== column && \"\\n svg {\\n opacity: 0;\\n }\\n :hover {\\n svg {\\n opacity: 1;\\n }\\n }\\n \") + \";\\n \";\n },\n font: {\n weight: 'bold'\n },\n gap: 'none',\n hover: {\n background: {\n color: 'background-contrast'\n }\n },\n pad: {\n horizontal: 'small',\n vertical: 'xsmall'\n }\n },\n icons: {\n ascending: Ascending,\n descending: Descending,\n sortable: Unsorted\n },\n pinned: {\n header: {\n background: {\n color: 'background-front',\n opacity: 'strong'\n },\n extend: 'backdrop-filter: blur(8px);'\n },\n body: {\n background: {\n color: 'background-front',\n opacity: 'strong'\n },\n extend: 'backdrop-filter: blur(8px);'\n },\n footer: {\n background: {\n color: 'background-front',\n opacity: 'strong'\n },\n extend: 'backdrop-filter: blur(8px);'\n }\n },\n resize: {\n hover: {\n border: {\n color: 'border-strong',\n size: 'small'\n }\n }\n }\n },\n dateInput: {\n icon: {\n size: 'small'\n }\n },\n formField: {\n content: {\n margin: {\n vertical: 'xsmall'\n },\n pad: undefined\n },\n border: {\n error: {\n color: 'border-strong'\n },\n color: 'border',\n side: 'all'\n },\n disabled: {\n background: {\n color: undefined\n },\n border: {\n color: 'border-weak'\n },\n label: {\n color: 'text-weak'\n }\n },\n error: {\n background: {\n color: 'validation-critical'\n },\n container: {\n gap: 'xsmall'\n },\n icon: /*#__PURE__*/React.createElement(CircleAlert, {\n size: \"small\",\n style: {\n marginTop: '4px'\n }\n }),\n size: 'xsmall',\n color: 'text',\n margin: {\n bottom: 'xsmall',\n top: 'none',\n horizontal: 'none'\n }\n },\n focus: {\n border: {\n color: 'border-strong'\n }\n },\n help: {\n size: 'xsmall',\n color: 'text',\n margin: 'none'\n },\n info: {\n size: 'xsmall',\n color: 'text',\n margin: {\n bottom: 'xsmall',\n top: 'none',\n horizontal: 'none'\n }\n },\n label: {\n size: 'xsmall',\n color: 'text',\n margin: {\n bottom: 'none',\n top: 'xsmall',\n horizontal: 'none'\n },\n weight: 500\n },\n margin: {\n bottom: 'none'\n },\n round: '4px'\n },\n heading: {\n level: {\n '1': {\n small: {\n size: '36px',\n height: '42px',\n maxWidth: '854px'\n },\n medium: {\n size: '53px',\n height: '59px',\n maxWidth: '1277px'\n },\n large: {\n size: '88px',\n height: '94px',\n maxWidth: '2122px'\n },\n xlarge: {\n size: '124px',\n height: '130px',\n maxWidth: '2966px'\n }\n },\n '2': {\n small: {\n size: '31px',\n height: '37px',\n maxWidth: '749px'\n },\n medium: {\n size: '44px',\n height: '50px',\n maxWidth: '1066px'\n },\n large: {\n size: '58px',\n height: '64px',\n maxWidth: '1382px'\n },\n xlarge: {\n size: '71px',\n height: '77px',\n maxWidth: '1699px'\n }\n },\n '3': {\n small: {\n size: '27px',\n height: '33px',\n maxWidth: '643px'\n },\n medium: {\n size: '36px',\n height: '42px',\n maxWidth: '854px'\n },\n large: {\n size: '44px',\n height: '50px',\n maxWidth: '1066px'\n },\n xlarge: {\n size: '53px',\n height: '59px',\n maxWidth: '1277px'\n }\n },\n '4': {\n small: {\n size: '22px',\n height: '28px',\n maxWidth: '538px'\n },\n medium: {\n size: '27px',\n height: '33px',\n maxWidth: '643px'\n },\n large: {\n size: '31px',\n height: '37px',\n maxWidth: '749px'\n },\n xlarge: {\n size: '36px',\n height: '42px',\n maxWidth: '854px'\n }\n },\n '5': {\n small: {\n size: '16px',\n height: '22px',\n maxWidth: '379px'\n },\n medium: {\n size: '16px',\n height: '22px',\n maxWidth: '379px'\n },\n large: {\n size: '16px',\n height: '22px',\n maxWidth: '379px'\n },\n xlarge: {\n size: '16px',\n height: '22px',\n maxWidth: '379px'\n }\n },\n '6': {\n small: {\n size: '14px',\n height: '20px',\n maxWidth: '326px'\n },\n medium: {\n size: '14px',\n height: '20px',\n maxWidth: '326px'\n },\n large: {\n size: '14px',\n height: '20px',\n maxWidth: '326px'\n },\n xlarge: {\n size: '14px',\n height: '20px',\n maxWidth: '326px'\n }\n }\n },\n weight: 700\n },\n icon: {\n size: {\n xxlarge: '166px'\n }\n },\n layer: {\n background: 'background',\n overlay: {\n background: '#00000080'\n }\n },\n list: {\n item: {\n border: undefined\n }\n },\n maskedInput: {\n container: {\n extend: function extend(_ref9) {\n var theme = _ref9.theme;\n return \"\\n svg {\\n fill: \" + theme.global.colors['text-strong'][theme.dark ? 'dark' : 'light'] + \";\\n stroke: \" + theme.global.colors['text-strong'][theme.dark ? 'dark' : 'light'] + \";\\n }\\n \";\n }\n }\n },\n menu: {\n icons: {\n color: 'text-strong'\n }\n },\n paragraph: {\n small: {\n size: '16px',\n height: '22px',\n maxWidth: '379px'\n },\n medium: {\n size: '18px',\n height: '24px',\n maxWidth: '432px'\n },\n large: {\n size: '22px',\n height: '28px',\n maxWidth: '538px'\n },\n xlarge: {\n size: '27px',\n height: '33px',\n maxWidth: '643px'\n },\n xxlarge: {\n size: '36px',\n height: '42px',\n maxWidth: '854px'\n }\n },\n radioButton: {\n border: {\n color: 'border',\n width: 'xsmall'\n },\n check: {\n color: 'selected-background',\n background: {\n color: 'background-front'\n }\n },\n color: 'selected-background',\n container: {\n extend: function extend(_ref10) {\n var theme = _ref10.theme;\n return \"\\n :not(div):hover {\\n background-color: \" + theme.global.colors['background-contrast'][theme.dark ? 'dark' : 'light'] + \";\\n }\\n font-weight: 500;\\n width: auto;\\n padding: \" + theme.global.edgeSize.xxsmall + \" \" + theme.global.edgeSize.xsmall + \";\\n \";\n }\n },\n extend: function extend(_ref11) {\n var theme = _ref11.theme;\n return \"\\n padding: \" + theme.global.edgeSize.xxsmall + \" \" + theme.global.edgeSize.xsmall + \";\\n \";\n },\n gap: 'xsmall',\n hover: {\n border: {\n color: undefined\n }\n },\n icons: {\n circle: function circle() {\n return /*#__PURE__*/React.createElement(Blank, {\n color: \"selected-background\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"8\"\n }));\n }\n }\n },\n radioButtonGroup: {\n container: {\n gap: 'none',\n margin: {\n vertical: 'xsmall'\n }\n }\n },\n rangeInput: {\n thumb: {\n color: 'background',\n extend: function extend(_ref12) {\n var theme = _ref12.theme;\n return \"\\n border: 1px solid \" + theme.global.colors.border[theme.dark ? 'dark' : 'light'] + \";\\n box-shadow: \" + theme.global.elevation[theme.dark ? 'dark' : 'light'].small + \";\\n \";\n }\n },\n track: {\n lower: {\n color: 'green'\n },\n upper: {\n color: 'border'\n }\n }\n },\n select: {\n control: {\n extend: function extend(_ref13) {\n var disabled = _ref13.disabled;\n return css(_templateObject(), disabled && \"\\n opacity: 0.3;\\n input {\\n cursor: default;\\n }\");\n }\n },\n icons: {\n color: 'text',\n down: FormDown,\n up: FormUp\n },\n options: undefined\n },\n tab: {\n color: 'text-strong',\n active: {\n background: 'background-contrast',\n color: 'text-strong'\n },\n hover: {\n background: 'background-contrast',\n color: 'text-strong'\n },\n border: {\n side: 'bottom',\n color: 'border',\n active: {\n color: 'border-strong'\n },\n disabled: {\n color: 'border-weak'\n },\n hover: {\n color: 'border'\n }\n },\n disabled: {\n color: 'text-weak'\n },\n pad: 'small',\n margin: {\n // bring the overall tabs border behind invidual tab borders\n vertical: '-2px',\n horizontal: 'none'\n },\n extend: function extend(_ref14) {\n var theme = _ref14.theme;\n return css(_templateObject2(), theme.global.control.border.radius, theme.global.control.border.radius);\n }\n },\n tabs: {\n header: {\n border: {\n side: 'bottom',\n size: 'small',\n color: 'border'\n }\n }\n },\n table: {\n header: {\n extend: \"\\n > div { \\n height: 100%;\\n justify-content: center;\\n }\\n // align onSelect checkbox to center of header cell\\n label { \\n justify-content: center;\\n }\\n \",\n // space for focus indicator on sortable columns\n pad: {\n left: 'none',\n vertical: 'none',\n right: 'xxsmall'\n }\n },\n body: {\n extend: function extend(_ref15) {\n var theme = _ref15.theme;\n return \"\\n :hover {\\n button {\\n background: \" + theme.global.colors['background-contrast'][theme.dark ? 'dark' : 'light'] + \"\\n }\\n }\\n \";\n }\n },\n row: {\n hover: {\n background: 'background-contrast'\n }\n },\n footer: {\n extend: \"\\n font-weight: bold;\\n \"\n }\n },\n text: {\n xsmall: {\n size: '14px',\n height: '20px',\n maxWidth: '326px'\n },\n small: {\n size: '16px',\n height: '22px',\n maxWidth: '379px'\n },\n medium: {\n size: '18px',\n height: '24px',\n maxWidth: '432px'\n },\n large: {\n size: '22px',\n height: '28px',\n maxWidth: '538px'\n },\n xlarge: {\n size: '27px',\n height: '33px',\n maxWidth: '643px'\n },\n xxlarge: {\n size: '36px',\n height: '42px',\n maxWidth: '854px'\n }\n },\n textInput: {\n container: {\n extend: function extend(_ref16) {\n var theme = _ref16.theme;\n return \"\\n svg {\\n fill: \" + theme.global.colors['text-strong'][theme.dark ? 'dark' : 'light'] + \";\\n stroke: \" + theme.global.colors['text-strong'][theme.dark ? 'dark' : 'light'] + \";\\n }\\n \";\n }\n }\n },\n // Theme-Designer only parameters\n name: 'HPE 1',\n rounding: 4,\n scale: 1.1,\n spacing: 24\n});\nvar colors = hpe.global.colors;\nexport { colors };","import styled, { css } from 'styled-components';\nimport { focusStyle, genericStyles, normalizeColor } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar disabledStyle = \"\\n opacity: 0.3;\\n cursor: default;\\n text-decoration: none;\\n\";\nvar sizeStyle = function sizeStyle(props) {\n if (props.size) {\n var size = props.size || 'medium';\n var data = props.theme.text[size];\n return css([\"font-size:\", \";line-height:\", \";\"], data ? data.size : size, data ? data.height : 'normal');\n }\n return css([\"font-size:inherit;line-height:inherit;\"]);\n};\nvar StyledAnchor = styled.a.withConfig({\n // prevent custom props from bleeding into DOM\n // https://styled-components.com/docs/api#shouldforwardprop\n shouldForwardProp: function shouldForwardProp(prop, defaultValidatorFn) {\n return !['as', 'colorProp', 'focus', 'hasIcon', 'hasLabel', 'reverse'].includes(prop) && defaultValidatorFn(prop);\n }\n}).withConfig({\n displayName: \"StyledAnchor\",\n componentId: \"sc-1rp7lwl-0\"\n})([\"box-sizing:border-box;\", \" color:\", \";\", \" text-decoration:\", \";cursor:pointer;\", \" \", \" \", \" \", \" \", \" \", \"\"], function (props) {\n return sizeStyle(props);\n}, function (props) {\n var _props$theme$anchor, _props$theme$anchor$s, _props$theme$anchor$s2;\n return normalizeColor(props.colorProp || ((_props$theme$anchor = props.theme.anchor) == null ? void 0 : (_props$theme$anchor$s = _props$theme$anchor.size) == null ? void 0 : (_props$theme$anchor$s2 = _props$theme$anchor$s[props.size]) == null ? void 0 : _props$theme$anchor$s2.color) || props.theme.anchor.color, props.theme);\n}, function (props) {\n var _props$theme$anchor2, _props$theme$anchor2$, _props$theme$anchor2$2, _props$theme$anchor3, _props$theme$anchor3$, _props$theme$anchor3$2;\n return props.weight ? \"font-weight: \" + props.weight + \";\" : (((_props$theme$anchor2 = props.theme.anchor) == null ? void 0 : (_props$theme$anchor2$ = _props$theme$anchor2.size) == null ? void 0 : (_props$theme$anchor2$2 = _props$theme$anchor2$[props.size]) == null ? void 0 : _props$theme$anchor2$2.fontWeight) || props.theme.anchor.fontWeight) && \"font-weight: \" + (((_props$theme$anchor3 = props.theme.anchor) == null ? void 0 : (_props$theme$anchor3$ = _props$theme$anchor3.size) == null ? void 0 : (_props$theme$anchor3$2 = _props$theme$anchor3$[props.size]) == null ? void 0 : _props$theme$anchor3$2.fontWeight) || props.theme.anchor.fontWeight) + \";\";\n}, function (props) {\n var _props$theme$anchor4, _props$theme$anchor4$, _props$theme$anchor4$2;\n return props.hasIcon ? 'none' : ((_props$theme$anchor4 = props.theme.anchor) == null ? void 0 : (_props$theme$anchor4$ = _props$theme$anchor4.size) == null ? void 0 : (_props$theme$anchor4$2 = _props$theme$anchor4$[props.size]) == null ? void 0 : _props$theme$anchor4$2.textDecoration) || props.theme.anchor.textDecoration;\n}, genericStyles, function (props) {\n return !props.disabled && props.theme.anchor.hover && css([\"&:hover{\", \" \", \" \", \"}\"], props.theme.anchor.hover.textDecoration && \"text-decoration: \" + props.theme.anchor.hover.textDecoration + \";\", props.theme.anchor.hover.fontWeight && \"font-weight: \" + props.theme.anchor.hover.fontWeight + \";\", props.theme.anchor.hover.extend);\n}, function (props) {\n return props.hasIcon && !props.hasLabel && \"\\n padding: \" + props.theme.global.edgeSize.small + \";\\n \";\n}, function (props) {\n return props.disabled && disabledStyle;\n}, function (props) {\n return props.focus && focusStyle();\n}, function (props) {\n return props.theme.anchor.extend;\n});\nStyledAnchor.defaultProps = {};\nObject.setPrototypeOf(StyledAnchor.defaultProps, defaultProps);\nexport { StyledAnchor };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { colorPropType, genericProps } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n a11yTitle: PropTypes.string,\n as: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.elementType]),\n color: colorPropType,\n disabled: PropTypes.bool,\n gap: PropTypes.oneOfType([PropTypes.oneOf(['none', 'xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n href: PropTypes.string,\n icon: PropTypes.element,\n label: PropTypes.node,\n onClick: PropTypes.func,\n reverse: PropTypes.bool,\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge']), PropTypes.string]),\n weight: PropTypes.oneOfType([PropTypes.oneOf(['normal', 'bold']), PropTypes.string, PropTypes.number])\n });\n}\nexport var AnchorPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"aria-label\", \"children\", \"color\", \"disabled\", \"gap\", \"href\", \"icon\", \"label\", \"onBlur\", \"onClick\", \"onFocus\", \"reverse\", \"size\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { cloneElement, forwardRef, useCallback, useContext, useEffect, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { findButtonParent, normalizeColor, useSizedIcon } from '../../utils';\nimport { Box } from '../Box';\nimport { StyledAnchor } from './StyledAnchor';\nimport { AnchorPropTypes } from './propTypes';\nimport { useAnalytics } from '../../contexts/AnalyticsContext';\nimport { TextContext } from '../Text/TextContext';\nvar Anchor = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var a11yTitle = _ref.a11yTitle,\n ariaLabel = _ref['aria-label'],\n children = _ref.children,\n color = _ref.color,\n disabled = _ref.disabled,\n gap = _ref.gap,\n href = _ref.href,\n icon = _ref.icon,\n label = _ref.label,\n _onBlur = _ref.onBlur,\n onClickProp = _ref.onClick,\n _onFocus = _ref.onFocus,\n reverse = _ref.reverse,\n sizeProp = _ref.size,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var _useState = useState(),\n focus = _useState[0],\n setFocus = _useState[1];\n var _useContext = useContext(TextContext),\n size = _useContext.size;\n var sendAnalytics = useAnalytics();\n var onClick = useCallback(function (event) {\n sendAnalytics({\n type: 'anchorClick',\n element: findButtonParent(event.target),\n event: event,\n href: href,\n label: typeof label === 'string' ? label : undefined\n });\n if (onClickProp) onClickProp(event);\n }, [onClickProp, sendAnalytics, label, href]);\n useEffect(function () {\n if ((icon || label) && children) {\n console.warn('Anchor should not have children if icon or label is provided');\n }\n }, [children, icon, label]);\n var coloredIcon = icon;\n if (icon && !icon.props.color) {\n var _theme$anchor, _theme$anchor$size, _theme$anchor$size2;\n coloredIcon = /*#__PURE__*/cloneElement(icon, {\n color: normalizeColor(color || ((_theme$anchor = theme.anchor) == null ? void 0 : (_theme$anchor$size = _theme$anchor.size) == null ? void 0 : (_theme$anchor$size2 = _theme$anchor$size[sizeProp || size]) == null ? void 0 : _theme$anchor$size2.color) || theme.anchor.color, theme)\n });\n }\n var anchorIcon = useSizedIcon(coloredIcon, sizeProp || size, theme);\n var first = reverse ? label : anchorIcon;\n var second = reverse ? anchorIcon : label;\n return /*#__PURE__*/React.createElement(StyledAnchor, _extends({}, rest, {\n ref: ref,\n \"aria-label\": ariaLabel || a11yTitle,\n colorProp: color,\n disabled: disabled,\n hasIcon: !!icon,\n focus: focus,\n hasLabel: label,\n reverse: reverse,\n href: !disabled ? href : undefined,\n onClick: !disabled ? onClick : undefined,\n onFocus: function onFocus(event) {\n setFocus(true);\n if (_onFocus) _onFocus(event);\n },\n onBlur: function onBlur(event) {\n setFocus(false);\n if (_onBlur) _onBlur(event);\n },\n size: sizeProp || size\n }), first && second ? /*#__PURE__*/React.createElement(Box, {\n as: \"span\",\n direction: \"row\",\n align: \"center\",\n gap: gap || theme.anchor.gap,\n responsive: false,\n style: {\n display: 'inline-flex'\n }\n }, first, second) : first || second || children);\n});\nAnchor.displayName = 'Anchor';\nAnchor.propTypes = AnchorPropTypes;\nexport { Anchor };","import styled from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { Text } from '../Text';\nvar StyledAvatarText = styled(Text).withConfig({\n displayName: \"StyledAvatar__StyledAvatarText\",\n componentId: \"sc-1suyamb-0\"\n})([\"\", \" \", \"\"], function (props) {\n return props.theme.avatar && props.theme.avatar.text && props.theme.avatar.text.fontWeight && \"font-weight: \" + props.theme.avatar.text.fontWeight + \";\";\n}, function (props) {\n return props.theme.avatar.text && props.theme.avatar.text.extend;\n});\nStyledAvatarText.defaultProps = {};\nObject.setPrototypeOf(StyledAvatarText.defaultProps, defaultProps);\nvar StyledAvatar = styled(Box).withConfig({\n displayName: \"StyledAvatar\",\n componentId: \"sc-1suyamb-1\"\n})([\"\", \"\"], function (props) {\n return props.theme.avatar && props.theme.avatar.extend;\n});\nStyledAvatar.defaultProps = {};\nObject.setPrototypeOf(StyledAvatar.defaultProps, defaultProps);\nexport { StyledAvatar, StyledAvatarText };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge', '2xl', '3xl', '4xl', '5xl']), PropTypes.string]),\n src: PropTypes.string\n };\n}\nexport var AvatarPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"aria-label\", \"align\", \"children\", \"height\", \"justify\", \"round\", \"size\", \"src\", \"width\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback, useContext, useMemo } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { Image } from '../Image';\nimport { defaultProps } from '../../default-props';\nimport { StyledAvatar, StyledAvatarText } from './StyledAvatar';\nimport { AvatarPropTypes } from './propTypes';\nvar Avatar = function Avatar(_ref) {\n var a11yTitle = _ref.a11yTitle,\n ariaLabel = _ref['aria-label'],\n _ref$align = _ref.align,\n align = _ref$align === void 0 ? 'center' : _ref$align,\n children = _ref.children,\n height = _ref.height,\n _ref$justify = _ref.justify,\n justify = _ref$justify === void 0 ? 'center' : _ref$justify,\n _ref$round = _ref.round,\n round = _ref$round === void 0 ? 'full' : _ref$round,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 'medium' : _ref$size,\n src = _ref.src,\n width = _ref.width,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var avatarSize = theme.avatar.size[size] || size;\n var avatarTextSize = theme.avatar.text.size[size] || 'large';\n var avatarProps = useMemo(function () {\n return {\n align: align,\n height: avatarSize,\n justify: justify,\n overflow: 'hidden',\n round: round,\n width: avatarSize\n };\n }, [align, avatarSize, justify, round]);\n var AvatarChildren = useCallback(function () {\n return /*#__PURE__*/React.createElement(StyledAvatar, _extends({}, avatarProps, rest), children);\n }, [avatarProps, children, rest]);\n if (height || width) {\n console.warn('Avatar should use `size` instead of `height` or `width` props');\n }\n var content;\n if (typeof children === 'string') {\n content = /*#__PURE__*/React.createElement(StyledAvatarText, {\n alignSelf: \"center\",\n size: avatarTextSize\n }, children);\n } else if (typeof src === 'string') {\n content = /*#__PURE__*/React.createElement(Image, {\n role: \"presentation\",\n fit: \"contain\",\n src: src\n });\n }\n if (typeof children === 'string' || typeof src === 'string') {\n return /*#__PURE__*/React.createElement(StyledAvatar, _extends({\n role: typeof src === 'string' ? 'figure' : undefined,\n a11yTitle: a11yTitle || ariaLabel\n }, avatarProps, rest), content);\n }\n return /*#__PURE__*/React.createElement(AvatarChildren, null);\n};\nAvatar.propTypes = AvatarPropTypes;\nexport { Avatar };","var _FLEX_MAP;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport styled, { css } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { alignContentStyle, alignStyle, backgroundStyle, borderStyle, breakpointStyle, edgeStyle, fillStyle, focusStyle, genericStyles, getBreakpointStyle, getHoverIndicatorStyle, heightStyle, overflowStyle, parseMetricToNum, responsiveBorderStyle, widthStyle } from '../../utils';\nimport { roundStyle } from '../../utils/styles';\nimport { animationBounds, animationObjectStyle } from '../../utils/animation';\nvar BASIS_MAP = {\n auto: 'auto',\n full: '100%',\n '1/2': '50%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/3': '33.33%',\n '2/3': '66.66%'\n};\nvar basisStyle = css([\"flex-basis:\", \";\"], function (props) {\n return BASIS_MAP[props.basis] || props.theme.global.size[props.basis] || props.basis;\n});\n\n// min-width and min-height needed because of this\n// https://stackoverflow.com/questions/36247140/why-doesnt-flex-item-shrink-past-content-size\n// we assume we are in the context of a Box going the other direction\n// TODO: revisit this\nvar directionStyle = function directionStyle(direction, theme) {\n var styles = [css([\"min-width:0;min-height:0;flex-direction:\", \";\"], direction === 'row-responsive' ? 'row' : direction)];\n if (direction === 'row-responsive' && theme.box.responsiveBreakpoint) {\n var breakpoint = getBreakpointStyle(theme, theme.box.responsiveBreakpoint);\n if (breakpoint) {\n styles.push(breakpointStyle(breakpoint, \"\\n flex-direction: column;\\n flex-basis: auto;\\n justify-content: flex-start;\\n align-items: stretch;\\n \"));\n }\n }\n return styles;\n};\nvar elevationStyle = function elevationStyle(elevation) {\n return css([\"box-shadow:\", \";\"], function (props) {\n return props.theme.global.elevation[props.theme.dark ? 'dark' : 'light'][elevation];\n });\n};\nvar FLEX_MAP = (_FLEX_MAP = {}, _FLEX_MAP[true] = '1 1', _FLEX_MAP[false] = '0 0', _FLEX_MAP.grow = '1 0', _FLEX_MAP.shrink = '0 1', _FLEX_MAP);\nvar flexGrowShrinkProp = function flexGrowShrinkProp(flex) {\n if (typeof flex === 'boolean' || typeof flex === 'string') {\n return FLEX_MAP[flex];\n }\n return (flex.grow ? flex.grow : 0) + \" \" + (flex.shrink ? flex.shrink : 0);\n};\nvar flexStyle = css([\"flex:\", \";\"], function (props) {\n return \"\" + flexGrowShrinkProp(props.flex) + (props.flex !== true && !props.basis ? ' auto' : '');\n});\nvar JUSTIFY_MAP = {\n around: 'space-around',\n between: 'space-between',\n center: 'center',\n end: 'flex-end',\n evenly: 'space-evenly',\n start: 'flex-start'\n};\nvar justifyStyle = css([\"justify-content:\", \";\"], function (props) {\n return JUSTIFY_MAP[props.justify];\n});\nvar WRAP_MAP = {\n \"true\": 'wrap',\n reverse: 'wrap-reverse'\n};\nvar wrapStyle = css([\"flex-wrap:\", \";\"], function (props) {\n return WRAP_MAP[props.wrapProp];\n});\nvar animationItemStyle = function animationItemStyle(item, theme) {\n if (typeof item === 'string') {\n return animationObjectStyle({\n type: item\n }, theme);\n }\n if (Array.isArray(item)) {\n return item.reduce(function (style, a, index) {\n return css([\"\", \"\", \" \", \"\"], style, index > 0 ? ',' : '', animationItemStyle(a, theme));\n }, '');\n }\n if (typeof item === 'object') {\n return animationObjectStyle(item, theme);\n }\n return '';\n};\nvar animationAncilaries = function animationAncilaries(animation) {\n if (animation.type === 'flipIn' || animation.type === 'flipOut') {\n return 'perspective: 1000px; transform-style: preserve-3d;';\n }\n return '';\n};\nvar animationObjectInitialStyle = function animationObjectInitialStyle(animation) {\n var bounds = animationBounds(animation.type, animation.size);\n if (bounds) {\n return bounds[0] + \" \" + animationAncilaries(animation);\n }\n return '';\n};\nvar animationInitialStyle = function animationInitialStyle(item) {\n if (typeof item === 'string') {\n return animationObjectInitialStyle({\n type: item\n });\n }\n if (Array.isArray(item)) {\n return item.map(function (a) {\n return typeof a === 'string' ? animationObjectInitialStyle({\n type: a\n }) : animationObjectInitialStyle(a);\n }).join('');\n }\n if (typeof item === 'object') {\n return animationObjectInitialStyle(item);\n }\n return '';\n};\nvar animationStyle = css([\"\", \";\"], function (props) {\n return css([\"\", \" animation:\", \";\"], animationInitialStyle(props.animation), animationItemStyle(props.animation, props.theme));\n});\nvar interactiveStyle = css([\"cursor:pointer;&:hover{\", \" \", \"}\"], function (props) {\n var _props$kindProp;\n return ((_props$kindProp = props.kindProp) == null ? void 0 : _props$kindProp.hover) && getHoverIndicatorStyle(props.kindProp.hover, props.theme);\n}, function (props) {\n return props.hoverIndicator && getHoverIndicatorStyle(props.hoverIndicator, props.theme);\n});\nvar gapStyle = function gapStyle(directionProp, gap, responsive, wrap, theme) {\n var metric = theme.global.edgeSize[gap] || gap;\n var breakpoint = getBreakpointStyle(theme, theme.box.responsiveBreakpoint);\n var responsiveMetric = responsive && breakpoint && breakpoint.edgeSize[gap];\n var styles = [];\n if (directionProp === 'column' || directionProp === 'column-reverse') {\n styles.push(\"row-gap: \" + metric + \";\");\n if (responsiveMetric) {\n styles.push(breakpointStyle(breakpoint, \"row-gap: \" + responsiveMetric + \";\"));\n }\n } else {\n styles.push(\"column-gap: \" + metric + \";\");\n if (wrap) styles.push(\"row-gap: \" + metric + \";\");\n if (responsiveMetric) {\n if (directionProp === 'row' || directionProp === 'row-reverse') {\n styles.push(breakpointStyle(breakpoint, \"column-gap: \" + responsiveMetric + \";\"));\n } else if (directionProp === 'row-responsive') {\n styles.push(breakpointStyle(breakpoint, \"\\n row-gap: \" + responsiveMetric + \";\\n \"));\n }\n }\n }\n return styles;\n};\n\n// NOTE: basis must be after flex! Otherwise, flex overrides basis\nvar StyledBox = styled.div.withConfig({\n displayName: \"StyledBox\",\n componentId: \"sc-13pk1d4-0\"\n})([\"display:flex;box-sizing:border-box;\", \";\", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \"\"], function (props) {\n return !props.basis && 'max-width: 100%;';\n}, genericStyles, function (props) {\n return props.align && alignStyle;\n}, function (props) {\n return props.alignContent && alignContentStyle;\n}, function (props) {\n return props.background && backgroundStyle(props.background, props.theme);\n}, function (props) {\n return props.border && borderStyle(props.border, props.responsive, props.theme);\n}, function (props) {\n return props.directionProp && directionStyle(props.directionProp, props.theme);\n}, function (props) {\n return props.heightProp && heightStyle(props.heightProp, props.theme);\n}, function (props) {\n return props.widthProp && widthStyle(props.widthProp, props.theme);\n}, function (props) {\n return props.flex !== undefined && flexStyle;\n}, function (props) {\n return props.basis && basisStyle;\n}, function (props) {\n return props.fillProp && fillStyle(props.fillProp);\n}, function (props) {\n return props.justify && justifyStyle;\n}, function (props) {\n return props.pad && edgeStyle('padding', props.pad, props.responsive, props.theme.box.responsiveBreakpoint, props.theme);\n}, function (props) {\n return props.round && roundStyle(props.round, props.responsive, props.theme);\n}, function (props) {\n return props.wrapProp && wrapStyle;\n}, function (props) {\n return props.overflowProp && overflowStyle(props.overflowProp);\n}, function (props) {\n return props.elevationProp && elevationStyle(props.elevationProp);\n}, function (props) {\n return props.gap && gapStyle(props.directionProp, props.gap, props.responsive, props.wrapProp, props.theme);\n}, function (props) {\n return props.animation && animationStyle;\n}, function (props) {\n return props.onClick && interactiveStyle;\n}, function (props) {\n return props.onClick && props.focus && props.focusIndicator !== false && focusStyle();\n}, function (props) {\n return props.theme.box && props.theme.box.extend;\n}, function (props) {\n return props.kindProp && props.kindProp.extend;\n});\nStyledBox.defaultProps = {};\nObject.setPrototypeOf(StyledBox.defaultProps, defaultProps);\nvar gapGapStyle = function gapGapStyle(directionProp, gap, responsive, border, theme) {\n var metric = theme.global.edgeSize[gap] || gap;\n var breakpoint = getBreakpointStyle(theme, theme.box.responsiveBreakpoint);\n var responsiveMetric = responsive && breakpoint && breakpoint.edgeSize[gap];\n var styles = [];\n if (directionProp === 'column' || directionProp === 'column-reverse') {\n styles.push(\"height: \" + metric + \";\");\n if (responsiveMetric) {\n styles.push(breakpointStyle(breakpoint, \"height: \" + responsiveMetric + \";\"));\n }\n } else {\n styles.push(\"width: \" + metric + \";\");\n if (responsiveMetric) {\n if (directionProp === 'row' || directionProp === 'row-reverse') {\n styles.push(breakpointStyle(breakpoint, \"width: \" + responsiveMetric + \";\"));\n } else if (directionProp === 'row-responsive') {\n styles.push(breakpointStyle(breakpoint, \"\\n width: auto;\\n height: \" + responsiveMetric + \";\\n \"));\n }\n }\n }\n if (border === 'between' || border && border.side === 'between') {\n var borderSize = border.size || 'xsmall';\n var borderMetric = theme.global.borderSize[borderSize] || borderSize;\n var borderOffset = parseMetricToNum(metric) / 2 - parseMetricToNum(borderMetric) / 2 + \"px\";\n var responsiveBorderMetric = responsive && breakpoint && (breakpoint.borderSize[borderSize] || borderSize);\n var responsiveBorderOffset = responsiveBorderMetric && parseMetricToNum(responsiveMetric || metric) / 2 - parseMetricToNum(responsiveBorderMetric) / 2 + \"px\";\n if (directionProp === 'column' || directionProp === 'column-reverse') {\n var adjustedBorder = typeof border === 'string' ? 'top' : _extends({}, border, {\n side: 'top'\n });\n styles.push(css([\"position:relative;&:after{content:'';position:absolute;width:100%;top:\", \";\", \"}\"], borderOffset, borderStyle(adjustedBorder, responsive, theme)));\n if (responsiveBorderOffset) {\n styles.push(breakpointStyle(breakpoint, \"\\n &:after {\\n content: '';\\n top: \" + responsiveBorderOffset + \";\\n }\"));\n }\n } else {\n var _adjustedBorder = typeof border === 'string' ? 'left' : _extends({}, border, {\n side: 'left'\n });\n styles.push(css([\"position:relative;&:after{content:'';position:absolute;height:100%;left:\", \";\", \"}\"], borderOffset, borderStyle(_adjustedBorder, directionProp !== 'row-responsive' && responsive, theme)));\n if (responsiveBorderOffset) {\n if (directionProp === 'row' || directionProp === 'row-reverse') {\n styles.push(breakpointStyle(breakpoint, \"\\n &:after {\\n content: '';\\n left: \" + responsiveBorderOffset + \";\\n }\"));\n } else if (directionProp === 'row-responsive') {\n var adjustedBorder2 = typeof border === 'string' ? 'top' : _extends({}, border, {\n side: 'top'\n });\n styles.push(breakpointStyle(breakpoint, \"\\n &:after {\\n content: '';\\n height: auto;\\n left: unset;\\n width: 100%;\\n top: \" + responsiveBorderOffset + \";\\n border-left: none;\\n \" + responsiveBorderStyle(adjustedBorder2, theme) + \"\\n }\"));\n }\n }\n }\n }\n return styles;\n};\nvar StyledBoxGap = styled.div.withConfig({\n displayName: \"StyledBox__StyledBoxGap\",\n componentId: \"sc-13pk1d4-1\"\n})([\"flex:0 0 auto;align-self:stretch;\", \";\"], function (props) {\n return props.gap && gapGapStyle(props.directionProp, props.gap, props.responsive, props.border, props.theme);\n});\nStyledBoxGap.defaultProps = {};\nObject.setPrototypeOf(StyledBoxGap.defaultProps, defaultProps);\nexport { StyledBox, StyledBoxGap };","import { css, keyframes } from 'styled-components';\nvar PULSE_SIZES = {\n xsmall: 1.001,\n small: 1.01,\n medium: 1.1,\n large: 1.5,\n xlarge: 2\n};\nvar SLIDE_SIZES = {\n xsmall: 1,\n small: 5,\n medium: 10,\n large: 50,\n xlarge: 200\n};\nvar JIGGLE_SIZES = {\n xsmall: 0.1,\n small: 1,\n medium: 5,\n large: 400,\n xlarge: 1000\n};\nvar ZOOM_SIZES = {\n xsmall: 0.001,\n small: 0.01,\n medium: 0.05,\n large: 0.1,\n xlarge: 0.5\n};\nexport var animationBounds = function animationBounds(type, size) {\n if (size === void 0) {\n size = 'medium';\n }\n if (type === 'draw') {\n return ['', \"stroke-dashoffset: 0\"];\n }\n if (type === 'fadeIn') {\n return ['opacity: 0;', 'opacity: 1;'];\n }\n if (type === 'fadeOut') {\n return ['opacity: 1;', 'opacity: 0;'];\n }\n if (type === 'jiggle') {\n var deg = JIGGLE_SIZES[size];\n return [\"transform: rotate(-\" + deg + \"deg);\", \"transform: rotate(\" + deg + \"deg);\"];\n }\n if (type === 'pulse') {\n return ['transform: scale(1);', \"transform: scale(\" + PULSE_SIZES[size] + \")\"];\n }\n if (type === 'rotateRight') {\n return [\"transform: rotate(0deg);\", \"transform: rotate(359deg);\"];\n }\n if (type === 'rotateLeft') {\n return [\"transform: rotate(0deg);\", \"transform: rotate(-359deg);\"];\n }\n if (type === 'flipIn') {\n return ['transform: rotateY(90deg);', 'transform: rotateY(0);'];\n }\n if (type === 'flipOut') {\n return ['transform: rotateY(0);', 'transform: rotateY(90deg);'];\n }\n if (type === 'slideDown') {\n return [\"transform: translateY(-\" + SLIDE_SIZES[size] + \"%);\", 'transform: none;'];\n }\n if (type === 'slideLeft') {\n return [\"transform: translateX(\" + SLIDE_SIZES[size] + \"%);\", 'transform: none;'];\n }\n if (type === 'slideRight') {\n return [\"transform: translateX(-\" + SLIDE_SIZES[size] + \"%);\", 'transform: none;'];\n }\n if (type === 'slideUp') {\n return [\"transform: translateY(\" + SLIDE_SIZES[size] + \"%);\", 'transform: none;'];\n }\n if (type === 'zoomIn') {\n return [\"transform: scale(\" + (1 - ZOOM_SIZES[size]) + \");\", 'transform: none;'];\n }\n if (type === 'zoomOut') {\n return [\"transform: scale(\" + (1 + ZOOM_SIZES[size]) + \");\", 'transform: none;'];\n }\n return [];\n};\nexport var normalizeTiming = function normalizeTiming(time, defaultTiming) {\n return typeof time === 'number' ? time / 1000.0 + \"s\" : time || defaultTiming;\n};\nexport var animationEnding = function animationEnding(type) {\n if (type === 'draw') {\n return 'linear forwards';\n }\n if (type === 'jiggle') {\n return 'alternate infinite';\n }\n if (type === 'pulse') {\n return 'alternate infinite';\n }\n if (type === 'rotateRight' || type === 'rotateLeft') {\n return 'infinite linear';\n }\n return 'forwards';\n};\nexport var animationObjectStyle = function animationObjectStyle(animation, theme, themeObj) {\n var bounds = animationBounds(animation.type, animation.size);\n var animationTheme = themeObj && themeObj.animation || theme.global.animation;\n if (bounds) {\n var animationTransition = css([\"from{\", \";}to{\", \";}\"], bounds[0], bounds[1]);\n var defaultDuration = function defaultDuration() {\n return normalizeTiming(animationTheme[animation.type] ? animationTheme[animation.type].duration : animation.duration, animationTheme.duration);\n };\n return css([\"\", \" \", \" \", \" \", \"\"], keyframes([\"\", \"\"], animationTransition), normalizeTiming(animation.duration, defaultDuration()), normalizeTiming(animation.delay, '0s'), animationEnding(animation.type));\n }\n return '';\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { animationPropType, backgroundDoc, elevationPropType, genericProps, heightPropType, hoverIndicatorPropType, padPropType, roundPropType, skeletonPropType, widthPropType } from '../../utils/general-prop-types';\nvar OVERFLOW_VALUES = ['auto', 'hidden', 'scroll', 'visible'];\nvar BORDER_SHAPE = PropTypes.shape({\n color: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n dark: PropTypes.string,\n light: PropTypes.string\n })]),\n side: PropTypes.oneOf(['top', 'left', 'bottom', 'right', 'start', 'end', 'horizontal', 'vertical', 'all', 'between']),\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n style: PropTypes.oneOf(['solid', 'dashed', 'dotted', 'double', 'groove', 'ridge', 'inset', 'outset', 'hidden'])\n});\n\n// if you update values here, make sure to update in Drop/doc too.\nvar overflowPropType = PropTypes.oneOfType([PropTypes.oneOf(OVERFLOW_VALUES), PropTypes.shape({\n horizontal: PropTypes.oneOf(OVERFLOW_VALUES),\n vertical: PropTypes.oneOf(OVERFLOW_VALUES)\n}), PropTypes.string]);\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n align: PropTypes.oneOfType([PropTypes.oneOf(['baseline', 'center', 'end', 'start', 'stretch']), PropTypes.string]),\n alignContent: PropTypes.oneOfType([PropTypes.oneOf(['around', 'baseline', 'between', 'center', 'evenly', 'end', 'start', 'stretch']), PropTypes.string]),\n animation: animationPropType,\n background: backgroundDoc,\n basis: PropTypes.oneOfType([PropTypes.oneOf(['xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge', 'full', '1/2', '1/3', '2/3', '1/4', '2/4', '3/4', 'auto']), PropTypes.string]),\n border: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top', 'left', 'bottom', 'right', 'start', 'end', 'horizontal', 'vertical', 'all', 'between']), BORDER_SHAPE, PropTypes.arrayOf(BORDER_SHAPE)]),\n direction: PropTypes.oneOf(['row', 'column', 'row-responsive', 'row-reverse', 'column-reverse']),\n elevation: elevationPropType,\n flex: PropTypes.oneOfType([PropTypes.oneOf(['grow', 'shrink']), PropTypes.bool, PropTypes.shape({\n grow: PropTypes.number,\n shrink: PropTypes.number\n })]),\n fill: PropTypes.oneOfType([PropTypes.oneOf(['horizontal', 'vertical']), PropTypes.bool]),\n focusIndicator: PropTypes.bool,\n gap: PropTypes.oneOfType([PropTypes.oneOf(['none', 'xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n height: heightPropType,\n hoverIndicator: hoverIndicatorPropType,\n justify: PropTypes.oneOf(['around', 'between', 'center', 'end', 'evenly', 'start', 'stretch']),\n onClick: PropTypes.func,\n overflow: overflowPropType,\n pad: padPropType,\n responsive: PropTypes.bool,\n round: roundPropType,\n skeleton: skeletonPropType,\n tag: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n as: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.elementType]),\n width: widthPropType,\n wrap: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['reverse'])])\n });\n}\nexport var BoxPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"background\", \"border\", \"children\", \"cssGap\", \"direction\", \"elevation\", \"fill\", \"gap\", \"kind\", \"onBlur\", \"onClick\", \"onFocus\", \"overflow\", \"responsive\", \"tag\", \"as\", \"wrap\", \"width\", \"height\", \"tabIndex\", \"skeleton\"],\n _excluded2 = [\"colors\", \"size\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { Children, forwardRef, useContext, useEffect, useMemo, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { backgroundIsDark } from '../../utils';\nimport { Keyboard } from '../Keyboard';\nimport { StyledBox, StyledBoxGap } from './StyledBox';\nimport { BoxPropTypes } from './propTypes';\nimport { SkeletonContext, useSkeleton } from '../Skeleton';\nimport { AnnounceContext } from '../../contexts/AnnounceContext';\nimport { OptionsContext } from '../../contexts/OptionsContext';\nvar Box = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var a11yTitle = _ref.a11yTitle,\n backgroundProp = _ref.background,\n border = _ref.border,\n children = _ref.children,\n cssGap = _ref.cssGap,\n _ref$direction = _ref.direction,\n direction = _ref$direction === void 0 ? 'column' : _ref$direction,\n elevation = _ref.elevation,\n fill = _ref.fill,\n gap = _ref.gap,\n kind = _ref.kind,\n _onBlur = _ref.onBlur,\n onClick = _ref.onClick,\n _onFocus = _ref.onFocus,\n overflow = _ref.overflow,\n _ref$responsive = _ref.responsive,\n responsive = _ref$responsive === void 0 ? true : _ref$responsive,\n tag = _ref.tag,\n as = _ref.as,\n wrap = _ref.wrap,\n width = _ref.width,\n height = _ref.height,\n tabIndex = _ref.tabIndex,\n skeletonProp = _ref.skeleton,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n // boxOptions was created to preserve backwards compatibility but\n // should not be supported in v3\n var _useContext = useContext(OptionsContext),\n boxOptions = _useContext.box;\n var skeleton = useSkeleton();\n var background = backgroundProp;\n var announce = useContext(AnnounceContext);\n useEffect(function () {\n var _skeletonProp$message;\n if (skeletonProp != null && (_skeletonProp$message = skeletonProp.message) != null && _skeletonProp$message.start) announce(skeletonProp.message.start);else if (typeof (skeletonProp == null ? void 0 : skeletonProp.message) === 'string') announce(skeletonProp.message);\n return function () {\n var _skeletonProp$message2;\n return (skeletonProp == null ? void 0 : (_skeletonProp$message2 = skeletonProp.message) == null ? void 0 : _skeletonProp$message2.end) && announce(skeletonProp.message.end);\n };\n }, [announce, skeletonProp]);\n var focusable = useMemo(function () {\n return onClick && !(tabIndex < 0);\n }, [onClick, tabIndex]);\n var _useState = useState(),\n focus = _useState[0],\n setFocus = _useState[1];\n var clickProps = useMemo(function () {\n if (focusable) {\n return {\n onClick: onClick,\n onFocus: function onFocus(event) {\n setFocus(true);\n if (_onFocus) _onFocus(event);\n },\n onBlur: function onBlur(event) {\n setFocus(false);\n if (_onBlur) _onBlur(event);\n }\n };\n }\n var result = {};\n if (_onBlur) result.onBlur = _onBlur;\n if (onClick) result.onClick = onClick;\n if (_onFocus) result.onFocus = _onFocus;\n return result;\n }, [focusable, onClick, _onFocus, _onBlur]);\n var adjustedTabIndex = useMemo(function () {\n if (tabIndex !== undefined) return tabIndex;\n if (focusable) return 0;\n return undefined;\n }, [focusable, tabIndex]);\n if ((border === 'between' || border && border.side === 'between') && !gap) {\n console.warn('Box must have a gap to use border between');\n }\n var contents = children;\n if (gap && gap !== 'none' && (!(boxOptions != null && boxOptions.cssGap || cssGap) ||\n // need this approach to show border between\n border === 'between' || (border == null ? void 0 : border.side) === 'between')) {\n var boxAs = !as && tag ? tag : as;\n contents = [];\n var firstIndex;\n Children.forEach(children, function (child, index) {\n if (child) {\n if (firstIndex === undefined) {\n firstIndex = index;\n } else {\n contents.push( /*#__PURE__*/React.createElement(StyledBoxGap\n // eslint-disable-next-line react/no-array-index-key\n , {\n key: \"gap-\" + index,\n as: boxAs === 'span' ? boxAs : 'div',\n gap: gap,\n directionProp: direction,\n responsive: responsive,\n border: border\n }));\n }\n }\n contents.push(child);\n });\n }\n var nextSkeleton = useMemo(function () {\n // Decide if we need to add a new SkeletonContext. We need one if:\n // 1. skeleton info was set in a property OR\n // 2. there already is a SkeletonContext but this box has a\n // background or border. This means the box probably is more\n // distinguishable from the area around it.\n // We keep track of a depth so we know how to alternate backgrounds.\n if (skeletonProp || (background || border) && skeleton) {\n var depth = skeleton ? skeleton.depth + 1 : 0;\n return _extends({}, skeleton, {\n depth: depth\n }, typeof skeletonProp === 'object' ? skeletonProp : {});\n }\n return undefined;\n }, [background, border, skeleton, skeletonProp]);\n var skeletonProps = {};\n if (nextSkeleton) {\n var _theme$skeleton = theme.skeleton,\n skeletonThemeColors = _theme$skeleton.colors,\n skeletonThemeSize = _theme$skeleton.size,\n skeletonThemeProps = _objectWithoutPropertiesLoose(_theme$skeleton, _excluded2);\n var skeletonColors = nextSkeleton.colors ? nextSkeleton.colors[theme.dark ? 'dark' : 'light'] : skeletonThemeColors == null ? void 0 : skeletonThemeColors[theme.dark ? 'dark' : 'light'];\n skeletonProps = _extends({}, skeletonThemeProps);\n background = skeletonColors[nextSkeleton.depth % skeletonColors.length];\n if (skeletonProp != null && skeletonProp.animation) {\n skeletonProps.animation = skeletonProp.animation;\n }\n contents = /*#__PURE__*/React.createElement(SkeletonContext.Provider, {\n value: nextSkeleton\n }, contents);\n }\n\n // construct a new theme object in case we have a background that wants\n // to change the background color context\n var nextTheme = useMemo(function () {\n var result;\n if (background || theme.darkChanged) {\n var dark = backgroundIsDark(background, theme);\n var darkChanged = dark !== undefined && dark !== theme.dark;\n if (darkChanged || theme.darkChanged) {\n result = _extends({}, theme);\n result.dark = dark === undefined ? theme.dark : dark;\n result.background = background;\n } else if (background) {\n // This allows DataTable to intelligently set the background\n // of a pinned header or footer.\n result = _extends({}, theme);\n result.background = background;\n }\n }\n return result || theme;\n }, [background, theme]);\n var content = /*#__PURE__*/React.createElement(StyledBox, _extends({\n as: !as && tag ? tag : as,\n \"aria-label\": a11yTitle,\n background: background,\n border: border,\n ref: ref,\n directionProp: direction,\n elevationProp: elevation,\n fillProp: fill,\n focus: focus,\n gap: ((boxOptions == null ? void 0 : boxOptions.cssGap) || cssGap) && gap && gap !== 'none' && border !== 'between' && (border == null ? void 0 : border.side) !== 'between' && gap,\n kindProp: kind,\n overflowProp: overflow,\n wrapProp: wrap,\n widthProp: width,\n heightProp: height,\n responsive: responsive,\n tabIndex: adjustedTabIndex\n }, clickProps, rest, skeletonProps), /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: nextTheme\n }, contents));\n if (onClick) {\n content = /*#__PURE__*/React.createElement(Keyboard, {\n onEnter: onClick\n }, content);\n }\n return content;\n});\nBox.displayName = 'Box';\nBox.propTypes = BoxPropTypes;\nexport { Box };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { backgroundPropType, genericProps, colorPropType, hoverIndicatorPropType, padPropType } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.node]),\n active: PropTypes.bool,\n as: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.elementType]),\n badge: PropTypes.oneOfType([PropTypes.bool, PropTypes.element, PropTypes.number, PropTypes.shape({\n background: backgroundPropType,\n max: PropTypes.number,\n value: PropTypes.oneOfType([PropTypes.bool, PropTypes.number])\n })]),\n color: colorPropType,\n disabled: PropTypes.bool,\n fill: PropTypes.oneOfType([PropTypes.oneOf(['horizontal', 'vertical']), PropTypes.bool]),\n focusIndicator: PropTypes.bool,\n gap: PropTypes.oneOfType([PropTypes.oneOf(['none', 'xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n hoverIndicator: hoverIndicatorPropType,\n href: PropTypes.string,\n icon: PropTypes.element,\n justify: PropTypes.oneOf(['around', 'between', 'center', 'end', 'evenly', 'start', 'stretch']),\n label: PropTypes.node,\n onClick: PropTypes.func,\n pad: padPropType,\n plain: PropTypes.bool,\n primary: PropTypes.bool,\n reverse: PropTypes.bool,\n secondary: PropTypes.bool,\n size: PropTypes.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n target: PropTypes.oneOfType([PropTypes.oneOf(['_self', '_blank', '_parent', '_top']), PropTypes.string]),\n tip: PropTypes.oneOfType([PropTypes.shape({\n content: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n dropProps: PropTypes.shape({}),\n plain: PropTypes.bool\n }), PropTypes.string]),\n type: PropTypes.oneOf(['button', 'reset', 'submit'])\n });\n}\nexport var ButtonPropTypes = PropType;","import React, { useContext, useRef } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\nimport { parseMetricToNum } from '../../utils';\nimport { useLayoutEffect } from '../../utils/use-isomorphic-layout-effect';\nimport { Box } from '../Box';\nimport { Stack } from '../Stack';\nimport { Text } from '../Text';\nvar StyledBadgeContainer = styled(Box).withConfig({\n displayName: \"Badge__StyledBadgeContainer\",\n componentId: \"sc-1es4ws1-0\"\n})([\"\", \"\"], function (props) {\n return props.theme.button.badge.container.extend;\n});\nexport var Badge = function Badge(_ref) {\n var children = _ref.children,\n content = _ref.content;\n var theme = useContext(ThemeContext);\n var containerRef = useRef();\n var contentRef = useRef();\n var stackRef = useRef();\n var defaultBadgeDimension = typeof content === 'boolean' || content && content.value && typeof content.value === 'boolean' ? // empty badge should be smaller. this value was chosen as a default\n // after experimenting with various values\n parseMetricToNum(theme.button.badge.size.medium) / 2 + \"px\" : theme.button.badge.size.medium;\n\n // scale badge to fit its contents, leaving space horizontally\n // that is proportional to vertical space\n useLayoutEffect(function () {\n // when window resizes and hits a responsive breakpoint, width of the badge\n // can change (because pad is responsive, etc.). we want to recalculate\n // width since badge offset is reliant on its dimensions.\n var onResize = function onResize() {\n if (containerRef != null && containerRef.current) {\n containerRef.current.style.minHeight = '';\n containerRef.current.style.minWidth = '';\n if (contentRef != null && contentRef.current) {\n if (typeof content === 'number' || typeof content === 'object' && content.value) {\n containerRef.current.style.minHeight = defaultBadgeDimension;\n containerRef.current.style.minWidth = defaultBadgeDimension;\n var _contentRef$current$g = contentRef.current.getBoundingClientRect(),\n contentHeight = _contentRef$current$g.height,\n contentWidth = _contentRef$current$g.width;\n\n // only adjust the width if contentHeight > 0\n // jest returns 0 for all getBoundingClientRect values,\n // so this ensures snapshots are closer to correct values\n if (contentHeight) {\n // height of content includes extra space around font from\n // line-height. account for this extra space with 2.5 multiplier\n // to add proportional horizontal space\n var height = defaultBadgeDimension;\n var width = defaultBadgeDimension;\n var verticalSpace = (parseMetricToNum(height) - contentHeight) * 2.5;\n containerRef.current.style.minHeight = height;\n containerRef.current.style.minWidth = Math.max(parseMetricToNum(width), Math.ceil(contentWidth + verticalSpace)) + \"px\";\n }\n } else {\n // caller has provided custom JSX\n containerRef.current.style.minHeight = contentRef.current.getBoundingClientRect().width;\n containerRef.current.style.minWidth = contentRef.current.getBoundingClientRect().height;\n }\n } else {\n containerRef.current.style.minHeight = defaultBadgeDimension;\n containerRef.current.style.minWidth = defaultBadgeDimension;\n }\n }\n };\n window.addEventListener('resize', onResize);\n onResize();\n return function () {\n window.removeEventListener('resize', onResize);\n };\n }, [content, defaultBadgeDimension]);\n\n // offset the badge so it overlaps content\n useLayoutEffect(function () {\n if (stackRef != null && stackRef.current) {\n // when badge has content, offset should be 50%.\n // when badge is empty, offset by a smaller amount to keep the badge\n // closer to the content. this value was chosen as a reasonable default\n // after testing with various grommet icons.\n var offset = typeof content === 'boolean' || content && content.value === true ? '25%' : '50%';\n\n // second child of Stack is the div that receives absolute positioning\n // and contains our badge content\n stackRef.current.children[1].style.top = 0;\n stackRef.current.children[1].style.right = 0;\n // eslint-disable-next-line max-len\n stackRef.current.children[1].style.transform = \"translate(\" + offset + \", -\" + offset + \")\";\n stackRef.current.children[1].style.transformOrigin = '100% 0%';\n }\n }, [content]);\n var value;\n if (typeof content === 'number') value = content;else if (typeof content === 'object') value = content.value;\n var badge;\n if (typeof value === 'number' || typeof value === 'boolean' || typeof content === 'boolean') {\n if (typeof value === 'number') {\n var max = content.max || 9;\n badge = /*#__PURE__*/React.createElement(Text, {\n color: \"text-strong\",\n size: theme.button.badge.text.size.medium,\n weight: \"normal\",\n ref: contentRef\n }, value > max ? max + \"+\" : value);\n }\n badge = /*#__PURE__*/React.createElement(StyledBadgeContainer, {\n ref: containerRef,\n align: \"center\",\n background: content.background || theme.button.badge.container.background,\n flex: false,\n justify: \"center\",\n round: true,\n pad: !(typeof value === 'boolean' || typeof content === 'boolean') ? theme.button.badge.container.pad : undefined\n }, badge);\n // caller has provided their own JSX and we will just render that\n } else badge = /*#__PURE__*/React.createElement(Box, {\n ref: contentRef\n }, content);\n return /*#__PURE__*/React.createElement(Stack, {\n ref: stackRef,\n anchor: \"top-right\"\n }, children, badge);\n};","import styled, { css } from 'styled-components';\nimport { activeStyle, backgroundStyle, disabledStyle, edgeStyle, focusStyle, unfocusStyle, genericStyles, getHoverIndicatorStyle, normalizeColor } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar radiusStyle = function radiusStyle(props) {\n // border.radius shouldn't impact an only-icon rendering.\n var isIconOnly = props.hasIcon && !props.hasLabel;\n var size = props.sizeProp;\n if (!isIconOnly && size && props.theme.button.size && props.theme.button.size[size]) {\n return props.theme.button.size[size].border.radius;\n }\n return props.theme.button.border.radius;\n};\nvar fontStyle = function fontStyle(props) {\n var size = props.sizeProp || 'medium';\n var data = props.theme.text[size];\n return css([\"font-size:\", \";line-height:\", \";\"], data.size, data.height);\n};\nvar padStyle = function padStyle(props) {\n var size = props.sizeProp;\n if (size && props.theme.button.size && props.theme.button.size[size]) {\n return css([\"\", \" \", \"\"], props.theme.button.size[size].pad.vertical, props.theme.button.size[size].pad.horizontal);\n }\n return css([\"\", \" \", \"\"], props.theme.button.padding.vertical, props.theme.button.padding.horizontal);\n};\nvar basicStyle = function basicStyle(props) {\n return css([\"border:\", \" solid \", \";border-radius:\", \";color:\", \";padding:\", \";\", \"\"], props.theme.button.border.width, normalizeColor(props.colorValue || props.theme.button.border.color || 'control', props.theme), radiusStyle(props), normalizeColor(props.theme.button.color || 'text', props.theme), padStyle(props), fontStyle(props));\n};\nvar primaryStyle = function primaryStyle(props) {\n return css([\"\", \" border-radius:\", \";\", \"\"], backgroundStyle(normalizeColor(props.colorValue || props.theme.button.primary && props.theme.button.primary.color || 'control', props.theme), props.theme, props.theme.button.color), radiusStyle(props), props.theme.button.primary && props.theme.button.primary.extend);\n};\nfunction getHoverColor(props) {\n if (props.colorValue) {\n return normalizeColor(props.colorValue, props.theme);\n }\n if (props.active && props.primary && props.theme.button.primary && props.theme.button.primary.active && props.theme.button.primary.active.border && props.theme.button.primary.active.border.color) {\n return normalizeColor(props.theme.button.primary.active.border.color, props.theme);\n }\n return normalizeColor(props.theme.button.border.color || 'control', props.theme);\n}\nvar hoverStyle = css([\"&:hover{\", \" \", \";}\"], function (props) {\n return props.hoverIndicator && getHoverIndicatorStyle(props.hoverIndicator, props.theme);\n}, function (props) {\n return !props.plain && css([\"box-shadow:0px 0px 0px 2px \", \";\"], getHoverColor(props));\n});\nvar fillStyle = function fillStyle(fillContainer) {\n if (fillContainer === 'horizontal') {\n return 'width: 100%;';\n }\n if (fillContainer === 'vertical') {\n return 'height: 100%;';\n }\n if (fillContainer) {\n return \"\\n width: 100%;\\n height: 100%;\\n max-width: none;\\n flex: 1 0 auto;\\n \";\n }\n return undefined;\n};\nvar plainStyle = function plainStyle(props) {\n return css([\"color:\", \";outline:none;border:none;padding:0;text-align:inherit;\"], normalizeColor(props.colorValue || 'inherit', props.theme));\n};\nvar activeButtonStyle = function activeButtonStyle(props) {\n return css([\"\", \" \", \" \", \"\"], activeStyle, props.primary && props.theme.button.primary && props.theme.button.primary.active && props.theme.button.primary.active.border && props.theme.button.primary.active.border.color && \"border: \" + props.theme.button.border.width + \" solid\\n \" + normalizeColor(props.theme.button.primary.active.border.color, props.theme) + \";\\n \", props.primary && props.theme.button.primary && props.theme.button.primary.active && props.theme.button.primary.active.extend);\n};\nvar disabledButtonStyle = function disabledButtonStyle(props) {\n return css([\"\", \" \", \" \", \" \", \"\"], disabledStyle(props.theme.button.disabled.opacity), !props.plain && props.theme.button.disabled.border && props.theme.button.disabled.border.color && \"border: \" + props.theme.button.border.width + \" solid\\n \" + normalizeColor(props.theme.button.disabled.border.color, props.theme) + \";\", props.theme.button.disabled.color && (\n // if primary button, apply disabled color to background. otherwise,\n // apply disabled color to the label\n props.primary ? backgroundStyle(normalizeColor(props.theme.button.disabled.color, props.theme), props.theme, props.theme.button.color) : \"color: \" + normalizeColor(props.theme.button.disabled.color, props.theme) + \";\"), props.theme.button.disabled && props.theme.button.disabled.extend);\n};\n\n// Deprecate props.theme.button.disabled.opacity in V3\nvar StyledButton = styled.button.withConfig({\n displayName: \"StyledButton\",\n componentId: \"sc-323bzc-0\"\n})([\"display:inline-block;box-sizing:border-box;cursor:pointer;font:inherit;text-decoration:none;margin:0;background:transparent;overflow:visible;text-transform:none;\", \" \", \" \", \" \", \" \", \" \", \" \", \" &:focus{\", \"}&:focus:not(:focus-visible){\", \"}\", \" \", \" \", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return props.plain && plainStyle(props);\n}, function (props) {\n return !props.plain && basicStyle(props);\n}, function (props) {\n return props.primary && primaryStyle(props);\n}, function (props) {\n return !props.disabled && !props.selected && !props.focus && hoverStyle;\n}, function (props) {\n return !props.disabled && props.active && activeButtonStyle(props);\n}, function (props) {\n return props.disabled && props.theme.button && props.theme.button.disabled && disabledButtonStyle(props);\n}, function (props) {\n return (!props.plain || props.focusIndicator) && focusStyle();\n}, unfocusStyle(), function (props) {\n return !props.plain && props.theme.button.transition && \"\\n transition-property: \" + props.theme.button.transition.properties.join(',') + \";\\n transition-duration: \" + props.theme.button.transition.duration + \"s;\\n transition-timing-function: \" + props.theme.button.transition.timing + \";\\n \";\n}, function (props) {\n return props.fillContainer && fillStyle(props.fillContainer);\n}, function (props) {\n return props.hasIcon && !props.hasLabel && \"\\n line-height: 0;\\n \";\n}, function (props) {\n return props.pad === true && props.hasIcon && !props.hasLabel && \"\\n padding: \" + props.theme.global.edgeSize.small + \";\\n \";\n}, function (props) {\n return !props.plain && props.pad && edgeStyle('padding', props.pad, false, undefined, props.theme);\n}, function (props) {\n return props.theme.button && props.theme.button.extend;\n});\nStyledButton.defaultProps = {};\nObject.setPrototypeOf(StyledButton.defaultProps, defaultProps);\nexport { StyledButton };","import styled, { css } from 'styled-components';\nimport { activeStyle, disabledStyle, edgeStyle, focusStyle, unfocusStyle, genericStyles, kindPartStyles, parseMetricToNum } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar radiusStyle = function radiusStyle(props) {\n var size = props.sizeProp;\n // caller has specified a themeObj to use for styling\n // relevant for cases like pagination which looks to theme.pagination.button\n var themeObj = typeof props.kind === 'object' ? props.kind : props.theme.button;\n if (size && themeObj.size && themeObj.size[size]) return css([\"border-radius:\", \";\"], themeObj.size[size].border.radius);\n if (themeObj.border && themeObj.border.radius) return css([\"border-radius:\", \";\"], themeObj.border.radius);\n return '';\n};\nvar fontStyle = function fontStyle(props) {\n var size = props.sizeProp || 'medium';\n var data = props.theme.text[size];\n return css([\"font-size:\", \";line-height:\", \";\"], data.size, props.hasIcon && !props.hasLabel ? 0 : data.height);\n};\nvar padFromTheme = function padFromTheme(size, theme, themeObj, kind, iconOnly) {\n var _themeObj$size, _themeObj$size$size, _themeObj$size$size$i, _themeObj$size3, _themeObj$size3$size, _themeObj$size3$size$;\n if (size === void 0) {\n size = 'medium';\n }\n if (size && iconOnly && themeObj != null && (_themeObj$size = themeObj.size) != null && (_themeObj$size$size = _themeObj$size[size]) != null && (_themeObj$size$size$i = _themeObj$size$size.iconOnly) != null && _themeObj$size$size$i.pad) {\n var _themeObj$size2, _themeObj$size2$size, _themeObj$size2$size$;\n var pad = themeObj == null ? void 0 : (_themeObj$size2 = themeObj.size) == null ? void 0 : (_themeObj$size2$size = _themeObj$size2[size]) == null ? void 0 : (_themeObj$size2$size$ = _themeObj$size2$size.iconOnly) == null ? void 0 : _themeObj$size2$size$.pad;\n return {\n vertical: typeof pad === 'string' ? pad : pad.vertical,\n horizontal: typeof pad === 'string' ? pad : pad.horizontal\n };\n }\n if (size && themeObj != null && (_themeObj$size3 = themeObj.size) != null && (_themeObj$size3$size = _themeObj$size3[size]) != null && (_themeObj$size3$size$ = _themeObj$size3$size[kind]) != null && _themeObj$size3$size$.pad) {\n return themeObj.size[size][kind].pad;\n }\n if (size && themeObj.size && themeObj.size[size] && themeObj.size[size].pad) {\n return {\n vertical: themeObj.size[size].pad.vertical,\n horizontal: themeObj.size[size].pad.horizontal\n };\n }\n if (theme.button.padding) {\n return {\n vertical: theme.global.edgeSize[theme.button.padding.vertical] || theme.button.padding.vertical,\n horizontal: theme.global.edgeSize[theme.button.padding.horizontal] || theme.button.padding.horizontal\n };\n }\n return undefined;\n};\nvar padStyle = function padStyle(_ref) {\n var hasIcon = _ref.hasIcon,\n hasLabel = _ref.hasLabel,\n size = _ref.sizeProp,\n theme = _ref.theme,\n kind = _ref.kind;\n // caller has specified a themeObj to use for styling\n // relevant for cases like pagination which looks to theme.pagination.button\n var themeObj = typeof kind === 'object' ? kind : theme.button;\n var iconOnly = hasIcon && !hasLabel;\n var pad = padFromTheme(size, theme, themeObj, kind, iconOnly);\n return pad ? css([\"padding:\", \" \", \";\"], pad.vertical, pad.horizontal) : '';\n};\nvar basicStyle = function basicStyle(props) {\n return css([\"border:none;\", \";\", \" \", \" \", \"\"], radiusStyle(props), padStyle(props), fontStyle(props), props.icon && \"\\n > svg {\\n display: flex;\\n align-self: center;\\n vertical-align: middle;\\n }\\n \");\n};\nvar getPath = function getPath(theme, path) {\n var obj;\n if (path) {\n obj = theme;\n var parts = path.split('.');\n while (obj && parts.length) obj = obj[parts.shift()];\n }\n return obj;\n};\nvar adjustPadStyle = function adjustPadStyle(pad, width) {\n var offset = parseMetricToNum(width);\n return css([\"padding:\", \"px \", \"px;\"], Math.max(parseMetricToNum(pad.vertical) - offset, 0), Math.max(parseMetricToNum(pad.horizontal) - offset, 0));\n};\n\n// build up CSS from basic to specific based on the supplied sub-object paths\nvar kindStyle = function kindStyle(_ref2) {\n var colorValue = _ref2.colorValue,\n hasIcon = _ref2.hasIcon,\n hasLabel = _ref2.hasLabel,\n kind = _ref2.kind,\n size = _ref2.sizeProp,\n themePaths = _ref2.themePaths,\n theme = _ref2.theme;\n var styles = [];\n\n // caller has specified a themeObj to use for styling\n // relevant for cases like pagination which looks to theme.pagination.button\n var themeObj = typeof kind === 'object' ? kind : theme.button;\n var iconOnly = hasIcon && !hasLabel;\n var pad = padFromTheme(size, theme, themeObj, kind, iconOnly);\n themePaths.base.forEach(function (themePath) {\n var obj = getPath(themeObj, themePath);\n if (obj) {\n styles.push(kindPartStyles(obj, theme, colorValue));\n if (obj.border && obj.border.width && pad && !obj.padding) {\n // Adjust padding from the button.size or just top button.padding\n // to deal with the kind's border width. But don't override any\n // padding in the kind itself for backward compatibility\n styles.push(adjustPadStyle(pad, obj.border.width));\n }\n }\n });\n\n // do the styling from the root of the object if caller passes one\n if (!themePaths.base.length && typeof kind === 'object') {\n var obj = kind;\n if (obj) {\n styles.push(kindPartStyles(obj, theme, colorValue));\n if (obj.border && obj.border.width && pad && !obj.padding) {\n // Adjust padding from the button.size or just top button.padding\n // to deal with the kind's border width. But don't override any\n // padding in the kind itself for backward compatibility\n styles.push(adjustPadStyle(pad, obj.border.width));\n }\n }\n }\n themePaths.hover.forEach(function (themePath) {\n var obj = getPath(themeObj, themePath);\n if (obj) {\n var partStyles = kindPartStyles(obj, theme);\n var adjPadStyles = '';\n if (obj.border && obj.border.width && pad && !obj.padding) {\n // Adjust padding from the button.size or just top button.padding\n // to deal with the hover's border width. But don't override any\n // padding in the hover or hover.kind itself for backward compatibility\n adjPadStyles = adjustPadStyle(pad, obj.border.width);\n }\n if (partStyles.length > 0) {\n styles.push(css([\"&:hover{\", \" \", \"}\"], partStyles, adjPadStyles));\n }\n }\n });\n return styles;\n};\nvar hoverIndicatorStyle = function hoverIndicatorStyle(_ref3) {\n var hoverIndicator = _ref3.hoverIndicator,\n theme = _ref3.theme;\n var themishObj = {};\n if (hoverIndicator === true || hoverIndicator === 'background') themishObj.background = theme.global.hover.background;else if (hoverIndicator.color || hoverIndicator.background) {\n if (hoverIndicator.background) themishObj.background = hoverIndicator.background;\n if (hoverIndicator.color) themishObj.color = hoverIndicator.color;\n } else themishObj.background = hoverIndicator;\n var styles = kindPartStyles(themishObj, theme);\n if (styles.length > 0) return css([\"&:hover{\", \"}\"], styles);\n return '';\n};\nvar fillStyle = function fillStyle(fillContainer) {\n if (fillContainer === 'horizontal') {\n return 'width: 100%;';\n }\n if (fillContainer === 'vertical') {\n return 'height: 100%;';\n }\n if (fillContainer) {\n return \"\\n width: 100%;\\n height: 100%;\\n max-width: none;\\n flex: 1 0 auto;\\n \";\n }\n return undefined;\n};\nvar plainStyle = function plainStyle(props) {\n return css([\"outline:none;border:none;padding:0;text-align:inherit;color:inherit;\", \" \", \"\"], props.icon && \"\\n > svg {\\n display: flex;\\n align-self: center;\\n vertical-align: middle;\\n }\\n \", props.hasIcon && !props.hasLabel && \"line-height: 0;\");\n};\nvar StyledButtonKind = styled.button.withConfig({\n // don't let kind attribute leak to DOM\n // https://styled-components.com/docs/api#shouldforwardprop\n shouldForwardProp: function shouldForwardProp(prop, defaultValidatorFn) {\n return !['kind'].includes(prop) && defaultValidatorFn(prop);\n }\n}).withConfig({\n displayName: \"StyledButtonKind\",\n componentId: \"sc-1vhfpnt-0\"\n})([\"display:inline-block;box-sizing:border-box;cursor:pointer;font:inherit;text-decoration:none;margin:0;background:transparent;overflow:visible;text-transform:none;\", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" &:focus{\", \"}&:focus:not(:focus-visible){\", \"}\", \" \", \" \", \"\"], genericStyles, function (props) {\n return props.plain && plainStyle(props);\n}, function (props) {\n return !props.disabled && props.active && activeStyle;\n}, function (props) {\n return !props.plain && basicStyle(props);\n}, function (props) {\n return !props.plain && kindStyle(props);\n}, function (props) {\n return !props.plain && props.pad && edgeStyle('padding', props.pad, false, undefined, props.theme);\n}, function (props) {\n return !props.plain && props.align && \"\\n text-align: \" + props.align + \";\\n \";\n}, function (props) {\n return !props.disabled && props.hoverIndicator && hoverIndicatorStyle(props);\n}, function (props) {\n return props.disabled && disabledStyle(props.theme.button.disabled.opacity);\n}, function (props) {\n return (!props.plain || props.focusIndicator) && focusStyle();\n}, unfocusStyle(), function (props) {\n return !props.plain && props.theme.button.transition && \"\\n transition-property: \" + props.theme.button.transition.properties.join(',') + \";\\n transition-duration: \" + props.theme.button.transition.duration + \"s;\\n transition-timing-function: \" + props.theme.button.transition.timing + \";\\n \";\n}, function (props) {\n return props.fillContainer && fillStyle(props.fillContainer);\n}, function (props) {\n return props.theme.button && props.theme.button.extend;\n});\nStyledButtonKind.defaultProps = {};\nObject.setPrototypeOf(StyledButtonKind.defaultProps, defaultProps);\nexport { StyledButtonKind };","var _excluded = [\"active\", \"align\", \"aria-label\", \"badge\", \"color\", \"children\", \"disabled\", \"icon\", \"focusIndicator\", \"gap\", \"fill\", \"href\", \"justify\", \"kind\", \"label\", \"onBlur\", \"onClick\", \"onFocus\", \"onMouseOut\", \"onMouseOver\", \"pad\", \"plain\", \"primary\", \"reverse\", \"secondary\", \"selected\", \"size\", \"tip\", \"type\", \"a11yTitle\", \"as\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { cloneElement, Children, forwardRef, useContext, useMemo, useState, useCallback } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { backgroundAndTextColors, colorIsDark, findButtonParent, useSizedIcon, normalizeBackground, normalizeColor } from '../../utils';\nimport { defaultProps } from '../../default-props';\nimport { ButtonPropTypes } from './propTypes';\nimport { Box } from '../Box';\nimport { Tip } from '../Tip';\nimport { Badge } from './Badge';\nimport { StyledButton } from './StyledButton';\nimport { StyledButtonKind } from './StyledButtonKind';\nimport { useAnalytics } from '../../contexts/AnalyticsContext';\nimport { Skeleton, useSkeleton } from '../Skeleton';\n\n// We have two Styled* components to separate\n// the newer default|primary|secondary approach,\n// which we use the term \"kind\" to refer to,\n// from the previous approach. Hopefully, when we get to grommet v3,\n// we can drop the old way and just use kind.\n//\n// In the kind approach, we rely on the basic structure of the theme\n// being repeated. For example: button.default, button.active,\n// button.active.default all refer to a similar object containing\n// { background, border, color, padding }.\n// This allows us to use the same code to evaluate color and generate CSS.\n// We just need to build up CSS, since selectors override previous ones.\n// See StyledButtonKind.kindStyles() for this.\n// And we build down to determine icon color, once we have a color from\n// the latest applicable state, we can stop. See Button.getIconColor() for this.\n// backgroundAndTextColor() is used in both cases to ensure we are determining\n// color in the same way, so the icon and label align.\n\n// only when default is in the theme\n// Used to get the color for the icon to match what StyledButtonKind\n// and backgroundStyle() will do for the label.\n// The paths are ordered from basic to specific. Go through them\n// specific to base until we find one that has a color and use that.\nvar getIconColor = function getIconColor(paths, theme, colorProp, kind) {\n if (paths === void 0) {\n paths = [];\n }\n var result = [];\n var index = paths.length - 1;\n // caller has specified a themeObj to use for styling\n // relevant for cases like pagination which looks to theme.pagination.button\n if (typeof kind === 'object') index = 0;\n // stop when we have a color or no more paths\n while (index >= 0 && !result[1]) {\n var baseObj = typeof kind === 'object' && kind || theme.button;\n var obj = baseObj;\n // find sub-object under the button theme that corresponds with this path\n // for example: 'active.primary'\n if (paths[index]) {\n var parts = paths[index].split('.');\n while (obj && parts.length) obj = obj[parts.shift()];\n }\n if (obj) {\n var _obj, _obj$icon, _obj$icon$props;\n // use passed in color for background if the theme has a background color\n var background = colorProp && obj.background && obj.background.color ? colorProp : obj.background;\n\n // if theme object explicitly sets the color to undefined, pass false\n // to indicate that the theme doesn't want any text color\n var objColor = obj.color || (Object.prototype.hasOwnProperty.call(obj, 'color') && obj.color === undefined ? false : undefined);\n var color = void 0;\n if ((_obj = obj) != null && (_obj$icon = _obj.icon) != null && (_obj$icon$props = _obj$icon.props) != null && _obj$icon$props.color) color = obj.icon.props.color;\n // if no icon defined for this state, see if there is an icon\n // with color defined at one higher level\n else if (paths[index + 1]) {\n var _obj2, _obj2$icon, _obj2$icon$props;\n var _parts = paths[index + 1].split('.');\n while (baseObj && _parts.length) obj = baseObj[_parts.shift()];\n if ((_obj2 = obj) != null && (_obj2$icon = _obj2.icon) != null && (_obj2$icon$props = _obj2$icon.props) != null && _obj2$icon$props.color) color = obj.icon.props.color;\n }\n // use passed in color for text if the theme doesn't have\n // background or border color\n if (!color) color = colorProp && (!obj.background || !obj.background.color) && (!obj.border || !obj.border.color) ? colorProp : objColor;\n result = backgroundAndTextColors(background, color, theme);\n }\n index -= 1;\n }\n return result[1] || undefined;\n};\n\n// get the icon for the current button state\nvar getKindIcon = function getKindIcon(paths, theme, kind) {\n if (paths === void 0) {\n paths = [];\n }\n var result;\n var index = paths.length - 1;\n // caller has specified a themeObj to use for styling\n // relevant for cases like pagination which looks to theme.pagination.button\n if (typeof kind === 'object') index = 0;\n // stop when we have a color or no more paths\n while (index >= 0 && !result) {\n var _obj3;\n var obj = typeof kind === 'object' && kind || theme.button;\n // find sub-object under the button theme that corresponds with this path\n // for example: 'active.primary'\n if (paths[index]) {\n var parts = paths[index].split('.');\n while (obj && parts.length) obj = obj[parts.shift()];\n }\n if ((_obj3 = obj) != null && _obj3.icon) result = obj.icon;\n index -= 1;\n }\n return result || undefined;\n};\nvar getPropertyColor = function getPropertyColor(property, paths, theme, kind, primary) {\n if (paths === void 0) {\n paths = [];\n }\n var result;\n if (kind) {\n var obj = typeof kind === 'object' && kind || theme.button;\n // index 0 is default state\n if (paths[0]) {\n var parts = paths[0].split('.');\n while (obj && parts.length) obj = obj[parts.shift()];\n }\n if (obj) {\n result = obj[property] || obj[property] && obj[property].color;\n }\n } else if (primary && theme && theme.button && theme.button.primary) {\n result = theme.button.primary[property] || theme.button.primary[property] && theme.button.primary[property].color;\n } else {\n result = theme && theme.button && theme.button[property] || theme && theme.button && theme.button[property] && theme.button[property].color;\n }\n return result;\n};\nvar Button = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _theme$button$kind, _theme$button2, _theme$button2$badge;\n var active = _ref.active,\n _ref$align = _ref.align,\n align = _ref$align === void 0 ? 'center' : _ref$align,\n ariaLabel = _ref['aria-label'],\n badgeProp = _ref.badge,\n color = _ref.color,\n children = _ref.children,\n disabled = _ref.disabled,\n icon = _ref.icon,\n _ref$focusIndicator = _ref.focusIndicator,\n focusIndicator = _ref$focusIndicator === void 0 ? true : _ref$focusIndicator,\n gap = _ref.gap,\n fill = _ref.fill,\n href = _ref.href,\n justify = _ref.justify,\n kindArg = _ref.kind,\n label = _ref.label,\n _onBlur = _ref.onBlur,\n onClickProp = _ref.onClick,\n _onFocus = _ref.onFocus,\n onMouseOut = _ref.onMouseOut,\n onMouseOver = _ref.onMouseOver,\n pad = _ref.pad,\n plain = _ref.plain,\n primary = _ref.primary,\n reverseProp = _ref.reverse,\n secondary = _ref.secondary,\n selected = _ref.selected,\n sizeProp = _ref.size,\n tip = _ref.tip,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'button' : _ref$type,\n _ref$a11yTitle = _ref.a11yTitle,\n a11yTitle = _ref$a11yTitle === void 0 ? typeof tip === 'string' ? tip : undefined : _ref$a11yTitle,\n as = _ref.as,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var _useState = useState(),\n focus = _useState[0],\n setFocus = _useState[1];\n var _useState2 = useState(false),\n hover = _useState2[0],\n setHover = _useState2[1];\n if ((icon || label) && children) {\n console.warn('Button should not have children if icon or label is provided');\n }\n var skeleton = useSkeleton();\n var sendAnalytics = useAnalytics();\n var onClick = useCallback(function (event) {\n sendAnalytics({\n type: 'buttonClick',\n element: findButtonParent(event.target),\n event: event,\n href: href,\n label: typeof label === 'string' ? label : undefined\n });\n if (onClickProp) onClickProp(event);\n }, [onClickProp, sendAnalytics, href, label]);\n\n // kindArg is object if we are referencing a theme object\n // outside of theme.button\n var kindObj = useMemo(function () {\n return typeof kindArg === 'object';\n }, [kindArg]);\n\n // if the theme has button.default, what kind of Button is this\n var kind = useMemo(function () {\n if (theme.button[\"default\"] || kindObj) {\n if (kindArg) return kindArg;\n if (primary) return 'primary';\n if (secondary) return 'secondary';\n return 'default';\n }\n return undefined; // pre-default, no kind\n }, [kindArg, kindObj, primary, secondary, theme]);\n\n // for backwards compatibility, no-kind button theme did not\n // default to size \"medium\" on buttons with no size prop\n var size = sizeProp || kind && 'medium' || undefined;\n // When we have a kind and are not plain, themePaths stores the relative\n // paths within the theme for the current kind and state of the button.\n // These paths are used with getIconColor() above and kindStyle() within\n // StyledButtonKind.\n var themePaths = useMemo(function () {\n if (!kind || plain) return undefined;\n var result = {\n base: [],\n hover: []\n };\n if (!kindObj) result.base.push(kind);\n if (selected) {\n result.base.push('selected');\n if (!kindObj) result.base.push(\"selected.\" + kind);\n }\n if (disabled) {\n result.base.push('disabled');\n if (!kindObj) result.base.push(\"disabled.\" + kind);\n } else {\n if (active) {\n result.base.push('active');\n if (!kindObj) result.base.push(\"active.\" + kind);\n }\n result.hover.push('hover');\n if (!kindObj) result.hover.push(\"hover.\" + kind);\n if (active) {\n result.hover.push(\"hover.active\");\n if (!kindObj) {\n result.hover.push(\"hover.active.\" + kind);\n }\n }\n }\n return result;\n }, [active, disabled, kind, kindObj, plain, selected]);\n\n // only used when theme does not have button.default\n var isDarkBackground = function isDarkBackground() {\n var backgroundColor = normalizeBackground(normalizeColor(color || theme.button.primary && theme.button.primary.color || theme.global.colors.control || 'brand', theme), theme);\n return colorIsDark(backgroundColor, theme);\n };\n var onMouseOverButton = function onMouseOverButton(event) {\n setHover(true);\n if (onMouseOver) {\n onMouseOver(event);\n }\n };\n var onMouseOutButton = function onMouseOutButton(event) {\n setHover(false);\n if (onMouseOut) {\n onMouseOut(event);\n }\n };\n var kindIcon = hover && getKindIcon(themePaths == null ? void 0 : themePaths.hover, theme, kind) || getKindIcon(themePaths == null ? void 0 : themePaths.base, theme, kind);\n var buttonIcon = icon || kindIcon;\n // only change color if user did not specify the color themselves...\n if (icon && !icon.props.color) {\n if (kind) {\n if (!plain) {\n // match what the label will use\n var iconColor = hover && getIconColor(themePaths.hover, theme) || getIconColor(themePaths.base, theme, color, kind);\n if (iconColor) buttonIcon = /*#__PURE__*/cloneElement(icon, {\n color: iconColor\n });\n }\n } else if (primary) {\n buttonIcon = /*#__PURE__*/cloneElement(icon, {\n color: theme.global.colors.text[isDarkBackground() ? 'dark' : 'light']\n });\n }\n } else if (kindIcon && !plain) {\n var _iconColor = hover && getIconColor(themePaths.hover, theme) || getIconColor(themePaths.base, theme, color, kind);\n if (_iconColor) buttonIcon = /*#__PURE__*/cloneElement(kindIcon, {\n color: _iconColor\n });\n }\n buttonIcon = useSizedIcon(buttonIcon, size, theme);\n if (skeleton) {\n var _theme$text, _theme$button$size;\n return /*#__PURE__*/React.createElement(Skeleton, _extends({\n ref: ref,\n height: ((_theme$text = theme.text[size || 'medium']) == null ? void 0 : _theme$text.height) || size,\n a11yTitle: a11yTitle\n }, rest, (_theme$button$size = theme.button.size) == null ? void 0 : _theme$button$size[size || 'medium'], theme.button.skeleton));\n }\n var reverse = reverseProp != null ? reverseProp : (_theme$button$kind = theme.button[kind]) == null ? void 0 : _theme$button$kind.reverse;\n var domTag = !as && href ? 'a' : as;\n var first = reverse ? label : buttonIcon;\n var second = reverse ? buttonIcon : label;\n var contents;\n if (first && second) {\n var _theme$button, _theme$button$kind2;\n contents = /*#__PURE__*/React.createElement(Box, {\n direction: ((_theme$button = theme.button) == null ? void 0 : (_theme$button$kind2 = _theme$button[kind]) == null ? void 0 : _theme$button$kind2.direction) || 'row',\n align: \"center\",\n justify: justify || (align === 'center' ? 'center' : 'between'),\n gap: gap || theme.button.gap,\n responsive: false\n }, first, second);\n } else if (typeof children === 'function') {\n contents = children({\n disabled: disabled,\n hover: hover,\n focus: focus\n });\n } else {\n contents = first || second || children;\n }\n var background = getPropertyColor('background', themePaths && themePaths.base, theme, kind, primary);\n var border = getPropertyColor('border', themePaths && themePaths.base, theme, kind, primary);\n // set the badge relative to the button content\n // when the button doesn't have background or border\n // (!kind && icon && !label) is necessary because for old button logic,\n // if button has icon but not label, it will be considered \"plain\",\n // so no border or background will be applied\n var innerBadge = ((_theme$button2 = theme.button) == null ? void 0 : (_theme$button2$badge = _theme$button2.badge) == null ? void 0 : _theme$button2$badge.align) !== 'container' && (!background && !border || !kind && icon && !label);\n if (badgeProp && innerBadge) {\n contents = /*#__PURE__*/React.createElement(Badge, {\n content: badgeProp\n }, contents);\n }\n var styledButtonResult;\n if (kind) {\n styledButtonResult = /*#__PURE__*/React.createElement(StyledButtonKind, _extends({}, rest, {\n as: domTag,\n ref: ref,\n active: active,\n align: align,\n \"aria-label\": ariaLabel || a11yTitle,\n badge: badgeProp,\n colorValue: color,\n disabled: disabled,\n hasIcon: !!icon,\n gap: gap,\n hasLabel: !!label,\n icon: icon,\n fillContainer: fill,\n focus: focus,\n focusIndicator: focusIndicator,\n href: href,\n kind: kind,\n themePaths: themePaths,\n onClick: onClick,\n onFocus: function onFocus(event) {\n setFocus(true);\n if (_onFocus) _onFocus(event);\n },\n onBlur: function onBlur(event) {\n setFocus(false);\n if (_onBlur) _onBlur(event);\n },\n onMouseOver: onMouseOverButton,\n onMouseOut: onMouseOutButton,\n pad: pad,\n plain: plain || Children.count(children) > 0,\n primary: primary,\n sizeProp: size,\n type: !href ? type : undefined\n }), contents);\n } else {\n styledButtonResult = /*#__PURE__*/React.createElement(StyledButton, _extends({}, rest, {\n as: domTag,\n ref: ref,\n \"aria-label\": ariaLabel || a11yTitle,\n colorValue: color,\n active: active,\n selected: selected,\n disabled: disabled,\n hasIcon: !!icon,\n gap: gap,\n hasLabel: !!label,\n fillContainer: fill,\n focus: focus,\n focusIndicator: focusIndicator,\n href: href,\n kind: kind,\n themePaths: themePaths,\n onClick: onClick,\n onFocus: function onFocus(event) {\n setFocus(true);\n if (_onFocus) _onFocus(event);\n },\n onBlur: function onBlur(event) {\n setFocus(false);\n if (_onBlur) _onBlur(event);\n },\n onMouseOver: onMouseOverButton,\n onMouseOut: onMouseOutButton,\n pad: pad || !plain,\n plain: typeof plain !== 'undefined' ? plain : Children.count(children) > 0 || icon && !label,\n primary: primary,\n sizeProp: size,\n type: !href ? type : undefined\n }), contents);\n }\n if (tip) {\n if (typeof tip === 'string') {\n styledButtonResult = /*#__PURE__*/React.createElement(Tip, {\n content: tip\n }, styledButtonResult);\n } else {\n styledButtonResult = /*#__PURE__*/React.createElement(Tip, tip, styledButtonResult);\n }\n }\n\n // if button has background or border, place badge relative\n // to outer edge of button\n if (badgeProp && !innerBadge) {\n styledButtonResult = /*#__PURE__*/React.createElement(Badge, {\n content: badgeProp\n }, styledButtonResult);\n }\n return styledButtonResult;\n});\nButton.displayName = 'Button';\nButton.propTypes = ButtonPropTypes;\nexport { Button };","function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError(\"Cannot destructure \" + obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef, useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nvar Card = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _theme$card$hover;\n var rest = _extends({}, (_objectDestructuringEmpty(_ref), _ref));\n var theme = useContext(ThemeContext) || defaultProps.theme;\n return /*#__PURE__*/React.createElement(Box, _extends({\n overflow: \"hidden\",\n kind: _extends({\n hover: (_theme$card$hover = theme.card.hover) == null ? void 0 : _theme$card$hover.container\n }, theme.card.container),\n ref: ref\n }, theme.card.container, rest));\n});\nCard.displayName = 'Card';\nexport { Card };","function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError(\"Cannot destructure \" + obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Header } from '../Header';\nvar CardHeader = function CardHeader(_ref) {\n var rest = _extends({}, (_objectDestructuringEmpty(_ref), _ref));\n var theme = useContext(ThemeContext) || defaultProps.theme;\n return /*#__PURE__*/React.createElement(Header, _extends({}, theme.card.header, rest));\n};\nexport { CardHeader };","import PropTypes from 'prop-types';\nimport { padPropType } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n a11yTitle: PropTypes.string,\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n fill: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.node,\n name: PropTypes.string,\n onChange: PropTypes.func,\n pad: padPropType,\n reverse: PropTypes.bool,\n toggle: PropTypes.bool,\n indeterminate: PropTypes.bool\n };\n}\nexport var CheckBoxPropTypes = PropType;","import styled, { css } from 'styled-components';\nimport { edgeStyle, focusStyle, normalizeColor } from '../../utils';\nimport { defaultProps } from '../../default-props';\n\n// Note: since `fillStyle` is only used in one place, `justify-content` was\n// added to it to simplify its logic. If this is ever reused somewhere else,\n// consider the need of separating those once again.\nvar fillStyle = function fillStyle() {\n return \"\\n width: 100%;\\n height: 100%;\\n max-width: none;\\n flex: 1 0 auto;\\n justify-content: space-between;\\n \";\n};\nvar disabledStyle = \"\\n opacity: 0.5;\\n cursor: default;\\n\";\nvar hoverStyle = css([\":hover input:not([disabled]) + div,:hover input:not([disabled]) + span{border-color:\", \";\", \"}:hover{background-color:\", \";}\"], function (props) {\n var _props$theme$checkBox, _props$theme$checkBox2;\n return normalizeColor((_props$theme$checkBox = props.theme.checkBox.hover) == null ? void 0 : (_props$theme$checkBox2 = _props$theme$checkBox.border) == null ? void 0 : _props$theme$checkBox2.color, props.theme);\n}, function (props) {\n var _props$theme$checkBox3;\n return (_props$theme$checkBox3 = props.theme.checkBox.hover) == null ? void 0 : _props$theme$checkBox3.extend;\n}, function (props) {\n var _props$theme$checkBox4, _props$theme$checkBox5;\n return normalizeColor(!props.disabled && ((_props$theme$checkBox4 = props.theme.checkBox.hover) == null ? void 0 : (_props$theme$checkBox5 = _props$theme$checkBox4.background) == null ? void 0 : _props$theme$checkBox5.color), props.theme);\n});\nvar StyledCheckBoxIcon = styled.svg.withConfig({\n displayName: \"StyledCheckBox__StyledCheckBoxIcon\",\n componentId: \"sc-1dbk5ju-0\"\n})([\"box-sizing:border-box;stroke-width:\", \";stroke:\", \";width:\", \";height:\", \";\", \";\"], function (props) {\n return props.theme.checkBox.check.thickness;\n}, function (props) {\n return normalizeColor(props.theme.checkBox.color || 'control', props.theme);\n}, function (props) {\n return props.theme.checkBox.icon.size || props.theme.checkBox.size;\n}, function (props) {\n return props.theme.checkBox.icon.size || props.theme.checkBox.size;\n}, function (props) {\n return props.theme.checkBox.icon.extend;\n});\nStyledCheckBoxIcon.defaultProps = {};\nObject.setPrototypeOf(StyledCheckBoxIcon.defaultProps, defaultProps);\nvar StyledCheckBoxContainer = styled.label.withConfig({\n displayName: \"StyledCheckBox__StyledCheckBoxContainer\",\n componentId: \"sc-1dbk5ju-1\"\n})([\"display:flex;flex-direction:row;align-items:\", \";user-select:none;\", \" \", \" \", \" \", \" \", \" \", \" \", \"\"], function (props) {\n return typeof props.label === 'string' ? props.theme.checkBox.label.align : undefined;\n}, function (props) {\n return props.fillProp ? fillStyle() : 'width: fit-content;';\n}, function (props) {\n return (props.pad || props.theme.checkBox.pad) && edgeStyle('padding', props.pad || props.theme.checkBox.pad, props.responsive, props.theme.box.responsiveBreakpoint, props.theme);\n}, function (props) {\n return props.disabled && disabledStyle;\n}, function (props) {\n return !props.disabled && 'cursor: pointer;';\n}, hoverStyle, function (props) {\n var _props$theme$checkBox6, _props$theme$checkBox7, _props$theme$checkBox8, _props$theme$checkBox9;\n return props.focus && !props.focusIndicator && \"\\n input:not([disabled]) + div,\\n input:not([disabled]) + span {\\n border-color: \" + normalizeColor((_props$theme$checkBox6 = props.theme.checkBox.hover) == null ? void 0 : (_props$theme$checkBox7 = _props$theme$checkBox6.border) == null ? void 0 : _props$theme$checkBox7.color, props.theme) + \";\\n }\\n \\n background-color: \" + normalizeColor(!props.disabled && ((_props$theme$checkBox8 = props.theme.checkBox.hover) == null ? void 0 : (_props$theme$checkBox9 = _props$theme$checkBox8.background) == null ? void 0 : _props$theme$checkBox9.color), props.theme) + \";\";\n}, function (props) {\n return props.theme.checkBox.extend;\n});\nStyledCheckBoxContainer.defaultProps = {};\nObject.setPrototypeOf(StyledCheckBoxContainer.defaultProps, defaultProps);\nvar StyledCheckBoxInput = styled.input.withConfig({\n displayName: \"StyledCheckBox__StyledCheckBoxInput\",\n componentId: \"sc-1dbk5ju-2\"\n})([\"opacity:0;-moz-appearance:none;width:0;height:0;margin:0;\", \":checked + span > span{\", \":calc( \", \" - \", \" );background:\", \";}\"], function (props) {\n return !props.disabled && 'cursor: pointer;';\n}, function (props) {\n return !props.theme.dir ? 'left' : 'right';\n}, function (props) {\n return props.theme.checkBox.toggle.size;\n}, function (props) {\n return props.theme.checkBox.size;\n}, function (props) {\n return normalizeColor(props.theme.checkBox.color || 'control', props.theme);\n});\nStyledCheckBoxInput.defaultProps = {};\nObject.setPrototypeOf(StyledCheckBoxInput.defaultProps, defaultProps);\nvar StyledCheckBoxBox = styled.div.withConfig({\n displayName: \"StyledCheckBox__StyledCheckBoxBox\",\n componentId: \"sc-1dbk5ju-3\"\n})([\"\", \";\", \";\"], function (props) {\n return props.focus && props.focusIndicator && focusStyle();\n}, function (props) {\n return props.theme.checkBox.check.extend;\n});\nStyledCheckBoxBox.defaultProps = {};\nObject.setPrototypeOf(StyledCheckBoxBox.defaultProps, defaultProps);\nvar StyledCheckBoxToggle = styled.span.withConfig({\n displayName: \"StyledCheckBox__StyledCheckBoxToggle\",\n componentId: \"sc-1dbk5ju-4\"\n})([\"box-sizing:border-box;vertical-align:middle;display:inline-block;width:\", \";height:\", \";border:\", \" solid;border-color:\", \";border-radius:\", \";background-color:\", \";\", \";\", \";\"], function (props) {\n return props.theme.checkBox.toggle.size;\n}, function (props) {\n return props.theme.checkBox.size;\n}, function (props) {\n return props.theme.checkBox.border.width;\n}, function (props) {\n return normalizeColor(props.theme.checkBox.border.color, props.theme);\n}, function (props) {\n return props.theme.checkBox.toggle.radius;\n}, function (props) {\n return props.theme.checkBox.toggle.background ? normalizeColor(props.theme.checkBox.toggle.background, props.theme) : 'transparent';\n}, function (props) {\n return props.focus && props.focusIndicator && focusStyle();\n}, function (props) {\n return props.theme.checkBox.toggle.extend;\n});\nStyledCheckBoxToggle.defaultProps = {};\nObject.setPrototypeOf(StyledCheckBoxToggle.defaultProps, defaultProps);\nvar StyledCheckBoxKnob = styled.span.withConfig({\n displayName: \"StyledCheckBox__StyledCheckBoxKnob\",\n componentId: \"sc-1dbk5ju-5\"\n})([\"box-sizing:border-box;position:relative;display:inherit;top:-\", \";\", \":-\", \";transition:all 0.3s;width:\", \";height:\", \";background:\", \";border-radius:\", \";\", \";\"], function (props) {\n return props.theme.checkBox.border.width;\n}, function (props) {\n return !props.theme.dir ? 'left' : 'right';\n}, function (props) {\n return props.theme.checkBox.border.width;\n}, function (props) {\n return props.theme.checkBox.size;\n}, function (props) {\n return props.theme.checkBox.size;\n}, function (props) {\n return normalizeColor(props.theme.checkBox.toggle.color, props.theme);\n}, function (props) {\n return props.theme.checkBox.toggle.radius;\n}, function (props) {\n return props.theme.checkBox.toggle.knob.extend;\n});\nStyledCheckBoxKnob.defaultProps = {};\nObject.setPrototypeOf(StyledCheckBoxKnob.defaultProps, defaultProps);\nvar StyledCheckBox = styled.div.withConfig({\n displayName: \"StyledCheckBox\",\n componentId: \"sc-1dbk5ju-6\"\n})([\"flex-shrink:0;\"]);\nStyledCheckBox.defaultProps = {};\nObject.setPrototypeOf(StyledCheckBox.defaultProps, defaultProps);\nexport { StyledCheckBoxIcon, StyledCheckBoxContainer, StyledCheckBoxInput, StyledCheckBoxBox, StyledCheckBoxToggle, StyledCheckBoxKnob, StyledCheckBox };","var _excluded = [\"a11yTitle\", \"aria-label\", \"checked\", \"children\", \"defaultChecked\", \"disabled\", \"fill\", \"focus\", \"focusIndicator\", \"id\", \"label\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"onMouseEnter\", \"onMouseLeave\", \"onMouseOut\", \"onMouseOver\", \"pad\", \"reverse\", \"toggle\", \"indeterminate\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext, useEffect, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { removeUndefined } from '../../utils/object';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { FormContext } from '../Form/FormContext';\nimport { CheckBoxPropTypes } from './propTypes';\nimport { StyledCheckBox, StyledCheckBoxBox, StyledCheckBoxIcon, StyledCheckBoxContainer, StyledCheckBoxInput, StyledCheckBoxToggle, StyledCheckBoxKnob } from './StyledCheckBox';\nimport { normalizeColor } from '../../utils';\nvar stopLabelClick = function stopLabelClick(event) {\n // prevents clicking on the label trigging the event twice\n // https://stackoverflow.com/questions/24501497/why-the-onclick-element-will-trigger-twice-for-label-element\n if (event.target.type !== 'checkbox') {\n event.stopPropagation();\n }\n};\nvar CheckBox = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _ref2;\n var a11yTitle = _ref.a11yTitle,\n ariaLabel = _ref['aria-label'],\n checkedProp = _ref.checked,\n children = _ref.children,\n _ref$defaultChecked = _ref.defaultChecked,\n defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,\n disabled = _ref.disabled,\n fill = _ref.fill,\n focusProp = _ref.focus,\n _ref$focusIndicator = _ref.focusIndicator,\n focusIndicator = _ref$focusIndicator === void 0 ? true : _ref$focusIndicator,\n id = _ref.id,\n label = _ref.label,\n name = _ref.name,\n _onBlur = _ref.onBlur,\n _onChange = _ref.onChange,\n _onFocus = _ref.onFocus,\n _onMouseEnter = _ref.onMouseEnter,\n _onMouseLeave = _ref.onMouseLeave,\n _onMouseOut = _ref.onMouseOut,\n _onMouseOver = _ref.onMouseOver,\n pad = _ref.pad,\n reverse = _ref.reverse,\n toggle = _ref.toggle,\n indeterminate = _ref.indeterminate,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var formContext = useContext(FormContext);\n var _formContext$useFormI = formContext.useFormInput({\n name: name,\n value: checkedProp,\n initialValue: defaultChecked\n }),\n checked = _formContext$useFormI[0],\n setChecked = _formContext$useFormI[1];\n var _useState = useState(focusProp),\n focus = _useState[0],\n setFocus = _useState[1];\n useEffect(function () {\n // don't allow checkbox to have focus when disabled\n if (disabled && focusProp) setFocus(false);else setFocus(focusProp);\n }, [disabled, focusProp]);\n useEffect(function () {\n if (checkedProp && indeterminate) {\n console.warn('Checkbox cannot be \"checked\" and \"indeterminate\" at the same time.');\n }\n if (toggle && indeterminate) {\n console.warn('Checkbox of type toggle does not have \"indeterminate\" state.');\n }\n }, [checkedProp, toggle, indeterminate]);\n var themeableProps = {\n checked: checked,\n disabled: disabled,\n focus: focus,\n // when contained in a FormField, focusIndicator = false,\n // so that the FormField has focus style. However, we still\n // need to visually indicate when a CheckBox is active.\n // If focus = true but focusIndicator = false,\n // we will apply the hover treament.\n focusIndicator: focusIndicator,\n reverse: reverse,\n toggle: toggle,\n indeterminate: indeterminate\n };\n var hidden;\n if (disabled && checked) {\n hidden = /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: \"true\"\n });\n }\n var _theme$checkBox$icons = theme.checkBox.icons,\n CheckedIcon = _theme$checkBox$icons.checked,\n IndeterminateIcon = _theme$checkBox$icons.indeterminate;\n var borderColor = normalizeColor(theme.checkBox.border.color, theme);\n if (checked) {\n borderColor = normalizeColor(theme.checkBox.color || 'control', theme);\n }\n var visual = toggle ? /*#__PURE__*/React.createElement(StyledCheckBoxToggle, themeableProps, /*#__PURE__*/React.createElement(StyledCheckBoxKnob, themeableProps)) : /*#__PURE__*/React.createElement(StyledCheckBoxBox, _extends({\n as: Box,\n align: \"center\",\n justify: \"center\",\n width: theme.checkBox.size,\n height: theme.checkBox.size,\n border: {\n size: theme.checkBox.border.width,\n color: borderColor\n },\n round: theme.checkBox.check.radius\n }, themeableProps), !indeterminate && checked && (CheckedIcon ? /*#__PURE__*/React.createElement(CheckedIcon, {\n theme: theme,\n as: StyledCheckBoxIcon\n }) : /*#__PURE__*/React.createElement(StyledCheckBoxIcon, _extends({\n theme: theme,\n viewBox: \"0 0 24 24\",\n preserveAspectRatio: \"xMidYMid meet\"\n }, themeableProps), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M6,11.3 L10.3,16 L18,6.2\"\n }))), !checked && indeterminate && (IndeterminateIcon ? /*#__PURE__*/React.createElement(IndeterminateIcon, {\n theme: theme,\n as: StyledCheckBoxIcon\n }) : /*#__PURE__*/React.createElement(StyledCheckBoxIcon, _extends({\n theme: theme,\n viewBox: \"0 0 24 24\",\n preserveAspectRatio: \"xMidYMid meet\"\n }, themeableProps), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M6,12 L18,12\"\n }))));\n var side = !reverse !== !theme.dir ? 'left' : 'right';\n var checkBoxNode = /*#__PURE__*/React.createElement(StyledCheckBox, _extends({\n as: Box,\n align: \"center\",\n justify: \"center\",\n margin: label && (_ref2 = {}, _ref2[side] = theme.checkBox.gap || 'small', _ref2)\n }, themeableProps), /*#__PURE__*/React.createElement(StyledCheckBoxInput, _extends({\n \"aria-label\": ariaLabel || a11yTitle\n }, rest, {\n ref: ref,\n type: \"checkbox\"\n }, removeUndefined({\n id: id,\n name: name,\n checked: checked,\n disabled: disabled\n }), themeableProps, {\n onFocus: function onFocus(event) {\n setFocus(true);\n if (_onFocus) _onFocus(event);\n },\n onBlur: function onBlur(event) {\n setFocus(false);\n if (_onBlur) _onBlur(event);\n },\n onChange: function onChange(event) {\n setChecked(event.target.checked);\n if (_onChange) _onChange(event);\n }\n })), children ? children({\n checked: checked,\n indeterminate: indeterminate\n }) : visual, hidden);\n var normalizedLabel = typeof label === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, label) : label;\n var first = reverse ? normalizedLabel : checkBoxNode;\n var second = reverse ? checkBoxNode : normalizedLabel;\n return /*#__PURE__*/React.createElement(StyledCheckBoxContainer, _extends({\n fillProp: fill,\n reverse: reverse\n }, removeUndefined({\n htmlFor: id,\n disabled: disabled\n }), {\n checked: checked,\n label: label,\n onClick: stopLabelClick,\n pad: pad,\n onMouseEnter: function onMouseEnter(event) {\n return _onMouseEnter == null ? void 0 : _onMouseEnter(event);\n },\n onMouseOver: function onMouseOver(event) {\n return _onMouseOver == null ? void 0 : _onMouseOver(event);\n },\n onMouseLeave: function onMouseLeave(event) {\n return _onMouseLeave == null ? void 0 : _onMouseLeave(event);\n },\n onMouseOut: function onMouseOut(event) {\n return _onMouseOut == null ? void 0 : _onMouseOut(event);\n }\n }, themeableProps), first, second);\n});\nCheckBox.displayName = 'CheckBox';\nCheckBox.propTypes = CheckBoxPropTypes;\nexport { CheckBox };","import styled, { keyframes } from 'styled-components';\nimport { baseStyle, edgeStyle, roundStyle } from '../../utils/styles';\nimport { backgroundStyle } from '../../utils/background';\nimport { defaultProps } from '../../default-props';\nfunction getTransformOriginStyle(align) {\n var vertical = 'top';\n if (align.bottom) {\n vertical = 'bottom';\n }\n var horizontal = 'left';\n if (align.right) {\n horizontal = 'right';\n }\n return vertical + \" \" + horizontal;\n}\nvar dropKeyFrames = keyframes([\"0%{opacity:0.5;transform:scale(0.8);}100%{opacity:1;transform:scale(1);}\"]);\n\n// The desired margin may be adjusted depending on drops alignment\nvar marginStyle = function marginStyle(theme, align, data, responsive, marginProp) {\n var margin = theme.global.edgeSize[data] || data;\n var adjustedMargin = {};\n // if user provides CSS string such as '50px 12px', apply that always\n var customCSS = typeof margin === 'string' && margin.split(' ').length > 1;\n if (theme.global.drop.intelligentMargin === true && !customCSS && typeof margin === 'string') {\n if (align.top === 'bottom') adjustedMargin.top = margin;else if (align.bottom === 'top') adjustedMargin.bottom = margin;\n if (align.right === 'left') adjustedMargin.left = \"-\" + margin;else if (align.left === 'right') adjustedMargin.left = margin;\n if (!Object.keys(adjustedMargin)) adjustedMargin = 'none';\n } else {\n return edgeStyle('margin', marginProp || theme.global.drop.margin, responsive, theme.global.edgeSize.responsiveBreakpoint, theme);\n }\n return edgeStyle('margin', adjustedMargin, responsive, theme.global.edgeSize.responsiveBreakpoint, theme);\n};\nvar StyledDrop = styled.div.withConfig({\n displayName: \"StyledDrop\",\n componentId: \"sc-16s5rx8-0\"\n})([\"\", \" \", \" position:fixed;z-index:\", \";outline:none;\", \" \", \" opacity:0;transform-origin:\", \";animation:\", \" 0.1s forwards;animation-delay:0.01s;@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){display:flex;align-items:stretch;}\", \"\"], baseStyle, function (props) {\n return !props.plain && (props.round && roundStyle(props.round, true, props.theme) || \"border-radius: \" + props.theme.global.drop.border.radius + \";\");\n}, function (props) {\n return props.theme.global.drop.zIndex;\n}, function (props) {\n return !props.plain && backgroundStyle(props.background || props.theme.global.drop.background, props.theme);\n}, function (props) {\n return !props.plain && (props.margin || props.theme.global.drop.margin) && props.theme.global && marginStyle(props.theme, props.alignProp, props.theme.global.drop.margin, props.responsive, props.margin);\n}, function (props) {\n return getTransformOriginStyle(props.alignProp);\n}, dropKeyFrames, function (props) {\n return props.theme.global.drop && props.theme.global.drop.extend;\n});\nStyledDrop.defaultProps = {};\nObject.setPrototypeOf(StyledDrop.defaultProps, defaultProps);\nexport { StyledDrop };","var _excluded = [\"a11yTitle\", \"aria-label\", \"align\", \"background\", \"onAlign\", \"children\", \"dropTarget\", \"elevation\", \"onClickOutside\", \"onEsc\", \"onKeyDown\", \"overflow\", \"plain\", \"responsive\", \"restrictFocus\", \"stretch\", \"trapFocus\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext, useEffect, useMemo } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { ContainerTargetContext } from '../../contexts/ContainerTargetContext';\nimport { FocusedContainer } from '../FocusedContainer';\nimport { backgroundIsDark, findScrollParents, parseMetricToNum, PortalContext, useForwardedRef } from '../../utils';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { Keyboard } from '../Keyboard';\nimport { StyledDrop } from './StyledDrop';\n\n// using react synthetic event to be able to stop propagation that\n// would otherwise close the layer on ESC.\nvar preventLayerClose = function preventLayerClose(event) {\n var key = event.keyCode ? event.keyCode : event.which;\n if (key === 27) {\n event.stopPropagation();\n }\n};\nvar defaultAlign = {\n top: 'top',\n left: 'left'\n};\nvar DropContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var a11yTitle = _ref.a11yTitle,\n ariaLabel = _ref['aria-label'],\n _ref$align = _ref.align,\n align = _ref$align === void 0 ? defaultAlign : _ref$align,\n background = _ref.background,\n onAlign = _ref.onAlign,\n children = _ref.children,\n dropTarget = _ref.dropTarget,\n elevation = _ref.elevation,\n onClickOutside = _ref.onClickOutside,\n onEsc = _ref.onEsc,\n onKeyDown = _ref.onKeyDown,\n _ref$overflow = _ref.overflow,\n overflow = _ref$overflow === void 0 ? 'auto' : _ref$overflow,\n plain = _ref.plain,\n _ref$responsive = _ref.responsive,\n responsive = _ref$responsive === void 0 ? true : _ref$responsive,\n restrictFocus = _ref.restrictFocus,\n _ref$stretch = _ref.stretch,\n stretch = _ref$stretch === void 0 ? 'width' : _ref$stretch,\n trapFocus = _ref.trapFocus,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var containerTarget = useContext(ContainerTargetContext);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var portalContext = useContext(PortalContext);\n var portalId = useMemo(function () {\n return portalContext.length;\n }, [portalContext]);\n var nextPortalContext = useMemo(function () {\n return [].concat(portalContext, [portalId]);\n }, [portalContext, portalId]);\n var dropRef = useForwardedRef(ref);\n useEffect(function () {\n var onClickDocument = function onClickDocument(event) {\n // determine which portal id the target is in, if any\n var clickedPortalId = null;\n var node = containerTarget === document.body ? event.target : event == null ? void 0 : event.composedPath()[0];\n while (clickedPortalId === null && node !== document) {\n var attr = node.getAttribute('data-g-portal-id');\n if (attr !== null) clickedPortalId = parseInt(attr, 10);\n node = node.parentNode;\n }\n if (clickedPortalId === null || portalContext.indexOf(clickedPortalId) !== -1) {\n onClickOutside(event);\n }\n };\n if (onClickOutside) {\n document.addEventListener('mousedown', onClickDocument);\n }\n return function () {\n if (onClickOutside) {\n document.removeEventListener('mousedown', onClickDocument);\n }\n };\n }, [onClickOutside, containerTarget, portalContext]);\n useEffect(function () {\n var notifyAlign = function notifyAlign() {\n var styleCurrent = dropRef.current.style;\n var alignControl = styleCurrent.top !== '' ? 'top' : 'bottom';\n onAlign(alignControl);\n };\n\n // We try to preserve the maxHeight as changing it causes any scroll\n // position to be lost. We set the maxHeight on mount and if the window\n // is resized.\n var place = function place(preserveHeight) {\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var target = (dropTarget == null ? void 0 : dropTarget.current) || dropTarget;\n var container = dropRef.current;\n if (container && target) {\n // clear prior styling\n container.style.left = '';\n container.style.top = '';\n container.style.bottom = '';\n container.style.width = '';\n if (!preserveHeight) {\n container.style.maxHeight = '';\n }\n // get bounds\n var targetRect = target.getBoundingClientRect();\n var containerRect = container.getBoundingClientRect();\n // determine width\n var width;\n if (stretch) {\n width = Math.min(stretch === 'align' ? Math.min(targetRect.width, containerRect.width) : Math.max(targetRect.width, containerRect.width), windowWidth);\n } else {\n width = Math.min(containerRect.width, windowWidth);\n }\n // set left position\n var left;\n if (align.left) {\n if (align.left === 'left') {\n left = targetRect.left;\n } else if (align.left === 'right') {\n left = targetRect.left + targetRect.width;\n }\n } else if (align.right) {\n if (align.right === 'left') {\n left = targetRect.left - width;\n } else if (align.right === 'right') {\n left = targetRect.left + targetRect.width - width;\n }\n } else {\n left = targetRect.left + targetRect.width / 2 - width / 2;\n }\n if (left + width > windowWidth) {\n left -= left + width - windowWidth;\n } else if (left < 0) {\n left = 0;\n }\n // set top or bottom position\n var top;\n var bottom;\n var maxHeight = containerRect.height;\n\n /* If responsive is true and the Drop doesn't have enough room \n to be fully visible and there is more room in the other \n direction, change the Drop to display above/below. If there is \n less room in the other direction leave the Drop in its current \n position. */\n if (responsive && (align.top === 'top' && targetRect.top < 0 || align.bottom === 'top' && targetRect.top - containerRect.height <= 0 && targetRect.bottom + containerRect.height < windowHeight)) {\n top = targetRect.bottom;\n maxHeight = top;\n } else if (responsive && (align.bottom === 'bottom' && targetRect.bottom > windowHeight || align.top === 'bottom' && targetRect.bottom + containerRect.height >= windowHeight && targetRect.top - containerRect.height > 0)) {\n bottom = targetRect.top;\n maxHeight = bottom;\n } else if (align.top === 'top') {\n top = targetRect.top;\n maxHeight = windowHeight - top;\n } else if (align.top === 'bottom') {\n top = targetRect.bottom;\n maxHeight = windowHeight - top;\n } else if (align.bottom === 'top') {\n bottom = targetRect.top;\n maxHeight = bottom;\n } else if (align.bottom === 'bottom') {\n bottom = targetRect.bottom;\n maxHeight = bottom;\n } else {\n top = targetRect.top + targetRect.height / 2 - containerRect.height / 2;\n }\n container.style.left = left + \"px\";\n if (stretch) {\n // offset width by 0.1 to avoid a bug in ie11 that\n // unnecessarily wraps the text if width is the same\n // NOTE: turned off for now\n container.style.width = width + 0.1 + \"px\";\n }\n // the (position:absolute + scrollTop)\n // is presenting issues with desktop scroll flickering\n if (top !== '') {\n container.style.top = top + \"px\";\n }\n if (bottom !== '') {\n container.style.bottom = windowHeight - bottom + \"px\";\n }\n if (!preserveHeight) {\n if (theme.drop && theme.drop.maxHeight) {\n maxHeight = Math.min(maxHeight, parseMetricToNum(theme.drop.maxHeight));\n }\n container.style.maxHeight = maxHeight + \"px\";\n }\n }\n if (onAlign) notifyAlign();\n };\n var scrollParents;\n var addScrollListeners = function addScrollListeners() {\n scrollParents = findScrollParents(dropTarget);\n scrollParents.forEach(function (scrollParent) {\n return scrollParent.addEventListener('scroll', place);\n });\n };\n var removeScrollListeners = function removeScrollListeners() {\n scrollParents.forEach(function (scrollParent) {\n return scrollParent.removeEventListener('scroll', place);\n });\n scrollParents = [];\n };\n var onResize = function onResize() {\n removeScrollListeners();\n addScrollListeners();\n place(false);\n };\n addScrollListeners();\n window.addEventListener('resize', onResize);\n place(false);\n return function () {\n removeScrollListeners();\n window.removeEventListener('resize', onResize);\n };\n }, [align, containerTarget, onAlign, dropTarget, portalContext, portalId, responsive, restrictFocus, stretch, theme.drop, dropRef]);\n useEffect(function () {\n if (restrictFocus) {\n dropRef.current.focus();\n }\n }, [dropRef, restrictFocus]);\n var content = /*#__PURE__*/React.createElement(StyledDrop, _extends({\n \"aria-label\": a11yTitle || ariaLabel,\n ref: dropRef,\n as: Box,\n background: background,\n plain: plain,\n elevation: !plain ? elevation || theme.global.drop.elevation || theme.global.drop.shadowSize ||\n // backward compatibility\n 'small' : undefined,\n tabIndex: \"-1\",\n alignProp: align,\n overflow: overflow,\n \"data-g-portal-id\": portalId\n }, rest), children);\n var themeContextValue = useMemo(function () {\n var dark;\n if (background || theme.global.drop.background) {\n dark = backgroundIsDark(background || theme.global.drop.background, theme);\n }\n return _extends({}, theme, {\n dark: dark\n });\n }, [background, theme]);\n var dark = themeContextValue.dark;\n if (dark !== undefined && dark !== theme.dark) {\n content = /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: themeContextValue\n }, content);\n }\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: nextPortalContext\n }, /*#__PURE__*/React.createElement(FocusedContainer, {\n onKeyDown: onEsc && preventLayerClose,\n trapFocus: trapFocus\n }, /*#__PURE__*/React.createElement(Keyboard\n // should capture keyboard event before other elements,\n // such as Layer\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n , {\n capture: true,\n onEsc: onEsc ? function (event) {\n event.stopPropagation();\n onEsc(event);\n } : undefined,\n onKeyDown: onKeyDown,\n target: \"document\"\n }, content)));\n});\nexport { DropContainer };","import PropTypes from 'prop-types';\nexport var a11yTitlePropType = PropTypes.string;\nexport var alignPropType = PropTypes.oneOfType([PropTypes.oneOf(['baseline', 'center', 'end', 'start', 'stretch']), PropTypes.string]);\nvar ANIMATION_TYPE = PropTypes.oneOf(['fadeIn', 'fadeOut', 'jiggle', 'pulse', 'rotateLeft', 'rotateRight', 'slideUp', 'slideDown', 'slideLeft', 'slideRight', 'zoomIn', 'zoomOut']);\nvar ANIMATION_SHAPE = PropTypes.shape({\n type: ANIMATION_TYPE,\n delay: PropTypes.number,\n duration: PropTypes.number,\n size: PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge'])\n});\nexport var animationPropType = PropTypes.oneOfType([ANIMATION_TYPE, ANIMATION_SHAPE, PropTypes.arrayOf(PropTypes.oneOfType([ANIMATION_TYPE, ANIMATION_SHAPE]))]);\nexport var colorPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n dark: PropTypes.string,\n light: PropTypes.string\n})]);\nexport var backgroundPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n clip: PropTypes.oneOfType([PropTypes.oneOf(['text']), PropTypes.string]),\n color: colorPropType,\n dark: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n image: PropTypes.string,\n position: PropTypes.string,\n opacity: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number, PropTypes.oneOf(['weak', 'medium', 'strong'])]),\n repeat: PropTypes.oneOfType([PropTypes.oneOf(['no-repeat', 'repeat']), PropTypes.string]),\n rotate: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n size: PropTypes.oneOfType([PropTypes.oneOf(['cover', 'contain']), PropTypes.string]),\n light: PropTypes.string\n})]);\nexport var backgroundDoc = backgroundPropType;\nexport var MARGIN_SIZES = ['xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge'];\nexport var marginProp = PropTypes.oneOfType([PropTypes.oneOf(['none'].concat(MARGIN_SIZES)), PropTypes.shape({\n bottom: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n end: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n left: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n right: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n start: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n top: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n vertical: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string])\n}), PropTypes.string]);\nvar PAD_SIZES = ['xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge'];\nexport var padPropType = PropTypes.oneOfType([PropTypes.oneOf(['none'].concat(PAD_SIZES)), PropTypes.shape({\n bottom: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n end: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n left: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n right: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n start: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n top: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n vertical: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string])\n}), PropTypes.string]);\nexport var genericProps = {\n a11yTitle: a11yTitlePropType,\n alignSelf: PropTypes.oneOf(['start', 'center', 'end', 'stretch', 'baseline']),\n gridArea: PropTypes.string,\n margin: marginProp\n};\nexport var elevationPropType = PropTypes.oneOfType([PropTypes.oneOf(['none', 'xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]);\nexport var hoverIndicatorPropType = PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.oneOf(['background']), backgroundPropType, PropTypes.shape({\n background: backgroundPropType,\n elevation: elevationPropType\n})]);\nexport var pointPropType = PropTypes.oneOf(['circle', 'diamond', 'square', 'star', 'triangle', 'triangleDown']);\nexport var patternPropType = PropTypes.oneOf(['squares', 'circles', 'stripesHorizontal', 'stripesVertical', 'stripesDiagonalDown', 'stripesDiagonalUp']);\nexport var roundPropType = PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge', 'full']), PropTypes.string, PropTypes.shape({\n corner: PropTypes.oneOf(['top', 'left', 'bottom', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string])\n})]);\nexport var skeletonColorsPropType = PropTypes.shape({\n dark: PropTypes.arrayOf(PropTypes.string),\n light: PropTypes.arrayOf(PropTypes.string)\n});\nexport var skeletonPropType = PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n animation: animationPropType,\n colors: skeletonColorsPropType,\n depth: PropTypes.number,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n start: PropTypes.string,\n end: PropTypes.string\n })])\n})]);\nvar dimSizeType = PropTypes.oneOf(['xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge']);\nexport var heightPropType = PropTypes.oneOfType([dimSizeType, PropTypes.string, PropTypes.shape({\n height: PropTypes.oneOfType([dimSizeType, PropTypes.string]),\n min: PropTypes.oneOfType([dimSizeType, PropTypes.string]),\n max: PropTypes.oneOfType([dimSizeType, PropTypes.string])\n})]);\nexport var widthPropType = PropTypes.oneOfType([dimSizeType, PropTypes.string, PropTypes.shape({\n width: PropTypes.oneOfType([dimSizeType, PropTypes.string]),\n min: PropTypes.oneOfType([dimSizeType, PropTypes.string]),\n max: PropTypes.oneOfType([dimSizeType, PropTypes.string])\n})]);\nexport var OVERFLOW_VALUES = ['auto', 'hidden', 'scroll', 'visible'];","import PropTypes from 'prop-types';\nimport { backgroundDoc, roundPropType, marginProp, OVERFLOW_VALUES } from '../../utils/general-prop-types';\n\n// if you update values here, make sure to update in Box too.\nvar dropOverflowPropTypes = PropTypes.oneOfType([PropTypes.oneOf(OVERFLOW_VALUES), PropTypes.shape({\n horizontal: PropTypes.oneOf(OVERFLOW_VALUES),\n vertical: PropTypes.oneOf(OVERFLOW_VALUES)\n}), PropTypes.string]);\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n align: PropTypes.shape({\n top: PropTypes.oneOf(['top', 'bottom']),\n bottom: PropTypes.oneOf(['top', 'bottom']),\n right: PropTypes.oneOf(['left', 'right']),\n left: PropTypes.oneOf(['left', 'right'])\n }),\n background: backgroundDoc,\n elevation: PropTypes.oneOfType([PropTypes.oneOf(['none', 'xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n inline: PropTypes.bool,\n margin: marginProp,\n onClickOutside: PropTypes.func,\n onEsc: PropTypes.func,\n overflow: dropOverflowPropTypes,\n plain: PropTypes.bool,\n responsive: PropTypes.bool,\n restrictFocus: PropTypes.bool,\n round: roundPropType,\n stretch: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['align'])]),\n target: PropTypes.object.isRequired,\n trapFocus: PropTypes.bool\n };\n}\nexport var DropPropTypes = PropType;","var _excluded = [\"inline\", \"restrictFocus\", \"target\", \"trapFocus\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useEffect, useState, useContext, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { getNewContainer, setFocusWithoutScroll } from '../../utils';\nimport { DropContainer } from './DropContainer';\nimport { ContainerTargetContext } from '../../contexts/ContainerTargetContext';\nimport { DropPropTypes } from './propTypes';\nvar Drop = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var inline = _ref.inline,\n restrictFocus = _ref.restrictFocus,\n dropTarget = _ref.target,\n _ref$trapFocus = _ref.trapFocus,\n trapFocus = _ref$trapFocus === void 0 ? true : _ref$trapFocus,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var _useState = useState(),\n originalFocusedElement = _useState[0],\n setOriginalFocusedElement = _useState[1];\n useEffect(function () {\n return setOriginalFocusedElement(document.activeElement);\n }, []);\n var _useState2 = useState(),\n dropContainer = _useState2[0],\n setDropContainer = _useState2[1];\n var containerTarget = useContext(ContainerTargetContext);\n var containerChildNodesLength = useRef(null);\n useEffect(function () {\n // we need this condition to prevent getNewContainer to run multiple times\n // in the event that the component gets created, destroyed, and recreated.\n // see https://reactjs.org/docs/strict-mode.html#ensuring-reusable-state\n if (!(containerChildNodesLength != null && containerChildNodesLength.current)) {\n containerChildNodesLength.current = containerTarget.childNodes.length;\n setDropContainer(!inline ? getNewContainer(containerTarget) : undefined);\n }\n }, [containerTarget, inline]);\n\n // just a few things to clean up when the Drop is unmounted\n useEffect(function () {\n return function () {\n if (restrictFocus && originalFocusedElement) {\n if (originalFocusedElement.focus) {\n setFocusWithoutScroll(originalFocusedElement);\n } else if (originalFocusedElement.parentNode && originalFocusedElement.parentNode.focus) {\n // required for IE11 and Edge\n setFocusWithoutScroll(originalFocusedElement.parentNode);\n }\n }\n if (dropContainer) {\n containerTarget.removeChild(dropContainer);\n }\n };\n }, [containerTarget, dropContainer, originalFocusedElement, restrictFocus]);\n var content = /*#__PURE__*/React.createElement(DropContainer, _extends({\n ref: ref,\n dir: theme && theme.dir,\n dropTarget: dropTarget,\n restrictFocus: restrictFocus,\n trapFocus: trapFocus\n }, rest));\n if (inline) return content;\n if (dropContainer) return /*#__PURE__*/createPortal(content, dropContainer);\n return null;\n});\nDrop.displayName = 'Drop';\nDrop.propTypes = DropPropTypes;\nexport { Drop };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { genericProps } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n disabled: PropTypes.bool,\n dropAlign: PropTypes.shape({\n top: PropTypes.oneOf(['top', 'bottom']),\n bottom: PropTypes.oneOf(['top', 'bottom']),\n right: PropTypes.oneOf(['left', 'right']),\n left: PropTypes.oneOf(['left', 'right'])\n }),\n dropContent: PropTypes.element.isRequired,\n dropTarget: PropTypes.object,\n dropProps: PropTypes.object,\n onClose: PropTypes.func,\n onOpen: PropTypes.func,\n open: PropTypes.bool\n });\n}\nexport var DropButtonPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"onAlign\", \"disabled\", \"dropAlign\", \"dropProps\", \"dropContent\", \"dropTarget\", \"id\", \"open\", \"onClick\", \"onClose\", \"onOpen\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useCallback, useEffect, useState } from 'react';\nimport { Button } from '../Button';\nimport { Drop } from '../Drop';\nimport { useForwardedRef } from '../../utils';\nimport { DropButtonPropTypes } from './propTypes';\nvar defaultDropAlign = {\n top: 'top',\n left: 'left'\n};\nvar DropButton = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _ref$a11yTitle = _ref.a11yTitle,\n a11yTitle = _ref$a11yTitle === void 0 ? 'Open Drop' : _ref$a11yTitle,\n onAlign = _ref.onAlign,\n disabled = _ref.disabled,\n _ref$dropAlign = _ref.dropAlign,\n dropAlign = _ref$dropAlign === void 0 ? defaultDropAlign : _ref$dropAlign,\n dropProps = _ref.dropProps,\n dropContent = _ref.dropContent,\n dropTarget = _ref.dropTarget,\n id = _ref.id,\n open = _ref.open,\n onClick = _ref.onClick,\n onClose = _ref.onClose,\n onOpen = _ref.onOpen,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var buttonRef = useForwardedRef(ref);\n var _useState = useState(),\n show = _useState[0],\n setShow = _useState[1];\n useEffect(function () {\n if (open !== undefined && open !== show) {\n setShow(open);\n }\n }, [open, show]);\n var onDropClose = useCallback(function (event) {\n // if the user has clicked on our Button, don't do anything here,\n // handle that in onClickInternal() below.\n var node = event.target;\n while (node !== document && node !== buttonRef.current) {\n node = node.parentNode;\n }\n if (node !== buttonRef.current) {\n // don't change internal state if caller is driving\n if (open === undefined) setShow(false);\n if (onClose) onClose(event);\n }\n }, [buttonRef, onClose, open]);\n var onClickInternal = useCallback(function (event) {\n if (!show) {\n setShow(true);\n if (onOpen) onOpen(event);\n } else {\n setShow(false);\n if (onClose) onClose(event);\n }\n if (onClick) onClick(event);\n }, [onClick, onClose, onOpen, show]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, _extends({\n id: id,\n ref: buttonRef,\n a11yTitle: a11yTitle,\n disabled: disabled\n }, rest, {\n onClick: onClickInternal\n })), show && buttonRef.current && /*#__PURE__*/React.createElement(Drop, _extends({\n id: id ? id + \"__drop\" : undefined,\n onAlign: onAlign,\n restrictFocus: true,\n align: dropAlign,\n target: dropTarget || buttonRef,\n onClickOutside: onDropClose,\n onEsc: onDropClose\n }, dropProps), dropContent));\n});\nDropButton.displayName = 'DropButton';\nDropButton.propTypes = DropButtonPropTypes;\nexport { DropButton };","var _excluded = [\"hidden\", \"restrictScroll\", \"children\", \"trapFocus\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport { makeNodeFocusable, makeNodeUnfocusable } from '../utils';\nimport { RootsContext } from '../contexts/RootsContext';\nexport var FocusedContainer = function FocusedContainer(_ref) {\n var _ref$hidden = _ref.hidden,\n hidden = _ref$hidden === void 0 ? false : _ref$hidden,\n _ref$restrictScroll = _ref.restrictScroll,\n restrictScroll = _ref$restrictScroll === void 0 ? false : _ref$restrictScroll,\n children = _ref.children,\n trapFocus = _ref.trapFocus,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var _useState = useState(''),\n bodyOverflowStyle = _useState[0],\n setBodyOverflowStyle = _useState[1];\n var ref = useRef(null);\n var roots = useContext(RootsContext);\n var _useState2 = useState(roots),\n nextRoots = _useState2[0],\n setNextRoots = _useState2[1];\n useEffect(function () {\n // make sure value of null is not added to array\n if (ref.current) setNextRoots([].concat(roots, [ref.current]));\n }, [roots]);\n useEffect(function () {\n if (bodyOverflowStyle !== 'hidden' && !hidden && restrictScroll && trapFocus) {\n setBodyOverflowStyle(document.body.style.overflow);\n document.body.style.overflow = 'hidden';\n }\n return function () {\n if (bodyOverflowStyle !== 'hidden' && !hidden && restrictScroll && trapFocus) {\n document.body.style.overflow = bodyOverflowStyle;\n }\n };\n }, [bodyOverflowStyle, hidden, trapFocus, restrictScroll]);\n useEffect(function () {\n var timer = setTimeout(function () {\n if (!hidden && trapFocus && roots && roots[0]) {\n roots.forEach(makeNodeUnfocusable);\n }\n }, 0);\n return function () {\n // remove trap and restore ability to focus on the last root only\n if (roots && roots[0]) makeNodeFocusable(roots[roots.length - 1]);\n clearTimeout(timer);\n };\n }, [hidden, roots, trapFocus]);\n return /*#__PURE__*/React.createElement(RootsContext.Provider, {\n value: nextRoots\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n \"aria-hidden\": hidden\n }, rest), children));\n};","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n errors: PropTypes.shape({}),\n infos: PropTypes.shape({}),\n kind: PropTypes.string,\n messages: PropTypes.shape({\n invalid: PropTypes.string,\n required: PropTypes.string\n }),\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func,\n onValidate: PropTypes.func,\n validate: PropTypes.oneOf(['blur', 'submit', 'change']),\n value: PropTypes.shape({})\n };\n}\nexport var FormPropTypes = PropType;","var _excluded = [\"children\", \"errors\", \"infos\", \"messages\", \"kind\", \"onChange\", \"onReset\", \"onSubmit\", \"onValidate\", \"validate\", \"value\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { useAnalytics } from '../../contexts';\nimport { MessageContext } from '../../contexts/MessageContext';\nimport { useForwardedRef } from '../../utils';\nimport { FormContext } from './FormContext';\nimport { FormPropTypes } from './propTypes';\nvar defaultValue = {};\nvar defaultTouched = {};\nvar defaultValidationResults = {\n errors: {},\n infos: {}\n};\nvar stringToArray = function stringToArray(string) {\n var match = string == null ? void 0 : string.match(/^(.+)\\[([0-9]+)\\]\\.(.*)$/);\n if (match) {\n var arrayName = match[1],\n indexOfArray = match[2],\n arrayObjName = match[3];\n return {\n indexOfArray: indexOfArray,\n arrayName: arrayName,\n arrayObjName: arrayObjName\n };\n }\n return undefined;\n};\nvar getValueAt = function getValueAt(valueObject, pathArg) {\n if (valueObject === undefined) return undefined;\n var path = Array.isArray(pathArg) ? pathArg : pathArg.split('.');\n if (path.length === 1) return valueObject[path];\n return getValueAt(valueObject[path.shift()], path);\n};\nvar setValueAt = function setValueAt(valueObject, pathArg, value) {\n var object = valueObject;\n var path = Array.isArray(pathArg) ? pathArg : pathArg.split('.');\n if (path.length === 1) object[path] = value;else {\n var key = path.shift();\n if (!object[key]) object[key] = {};\n setValueAt(object[key], path, value);\n }\n};\nvar getFieldValue = function getFieldValue(name, value) {\n var isArrayField = stringToArray(name);\n if (isArrayField) {\n var _value$arrayName;\n var indexOfArray = isArrayField.indexOfArray,\n arrayName = isArrayField.arrayName,\n arrayObjName = isArrayField.arrayObjName;\n var obj = (_value$arrayName = value[arrayName]) == null ? void 0 : _value$arrayName[indexOfArray];\n return arrayObjName ? obj == null ? void 0 : obj[arrayObjName] : obj;\n }\n return getValueAt(value, name);\n};\nvar setFieldValue = function setFieldValue(name, componentValue, prevValue) {\n var nextValue = _extends({}, prevValue);\n var isArrayField = stringToArray(name);\n if (isArrayField) {\n var indexOfArray = isArrayField.indexOfArray,\n arrayName = isArrayField.arrayName,\n arrayObjName = isArrayField.arrayObjName;\n if (!nextValue[arrayName]) nextValue[arrayName] = [];\n if (arrayObjName) {\n var _nextValue$arrayName$;\n if (!nextValue[arrayName][indexOfArray]) nextValue[arrayName][indexOfArray] = (_nextValue$arrayName$ = {}, _nextValue$arrayName$[arrayObjName] = componentValue, _nextValue$arrayName$);\n nextValue[arrayName][indexOfArray][arrayObjName] = componentValue;\n } else nextValue[arrayName][indexOfArray] = componentValue;\n } else {\n setValueAt(nextValue, name, componentValue);\n }\n return nextValue;\n};\n\n// Apply validation rule to field value and send correct messaging.\nvar validate = function validate(rule, fieldValue, formValue, format, messages) {\n var result;\n if (typeof rule === 'function') {\n result = rule(fieldValue, formValue);\n } else if (rule.regexp) {\n if (!rule.regexp.test(fieldValue)) {\n result = rule.message || format({\n id: 'form.invalid',\n messages: messages\n });\n if (rule.status) {\n result = {\n message: result,\n status: rule.status\n };\n }\n }\n }\n return result;\n};\n\n// Validates particular key in formValue\nvar validateName = function validateName(validationRules, required) {\n return function (name, formValue, format, messages) {\n var fieldValue = getFieldValue(name, formValue);\n var validationResult;\n if (required && (\n // false is for CheckBox\n fieldValue === undefined || fieldValue === '' || fieldValue === false || Array.isArray(fieldValue) && !fieldValue.length)) {\n validationResult = format({\n id: 'form.required',\n messages: messages\n });\n } else if (validationRules) {\n if (Array.isArray(validationRules)) {\n validationRules.some(function (rule) {\n validationResult = validate(rule, fieldValue, formValue, format, messages);\n return !!validationResult;\n });\n } else {\n validationResult = validate(validationRules, fieldValue, formValue, format, messages);\n }\n }\n return validationResult;\n };\n};\n\n// Validates all keys in formValue\nvar validateForm = function validateForm(validationRules, formValue, format, messages, omitValid) {\n var nextErrors = {};\n var nextInfos = {};\n validationRules.forEach(function (_ref) {\n var name = _ref[0],\n _ref$ = _ref[1],\n field = _ref$.field,\n input = _ref$.input;\n if (!omitValid) {\n nextErrors[name] = undefined;\n nextInfos[name] = undefined;\n }\n var result;\n if (input) {\n // input() a validation function supplied through useFormInput()\n result = input(name, formValue, format, messages);\n }\n if (field && !result) {\n // field() a validation function supplied through useFormField()\n result = field(name, formValue, format, messages);\n }\n // typeof error === 'object' is implied for both cases of error with\n // a status message and for an error object that is a react node\n if (typeof result === 'object') {\n if (result.status === 'info') {\n nextInfos[name] = result.message;\n } else {\n nextErrors[name] = result.message || result; // could be a node\n }\n } else if (typeof result === 'string') {\n nextErrors[name] = result;\n }\n });\n return [nextErrors, nextInfos];\n};\nvar Form = /*#__PURE__*/forwardRef(function (_ref2, ref) {\n var children = _ref2.children,\n _ref2$errors = _ref2.errors,\n errorsProp = _ref2$errors === void 0 ? defaultValidationResults.errors : _ref2$errors,\n _ref2$infos = _ref2.infos,\n infosProp = _ref2$infos === void 0 ? defaultValidationResults.infos : _ref2$infos,\n messages = _ref2.messages,\n kind = _ref2.kind,\n onChange = _ref2.onChange,\n _onReset = _ref2.onReset,\n _onSubmit = _ref2.onSubmit,\n onValidate = _ref2.onValidate,\n _ref2$validate = _ref2.validate,\n validateOn = _ref2$validate === void 0 ? 'submit' : _ref2$validate,\n valueProp = _ref2.value,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded);\n var formRef = useForwardedRef(ref);\n var _useContext = useContext(MessageContext),\n format = _useContext.format;\n var _useState = useState(valueProp || defaultValue),\n valueState = _useState[0],\n setValueState = _useState[1];\n var value = useMemo(function () {\n return valueProp || valueState;\n }, [valueProp, valueState]);\n var _useState2 = useState(defaultTouched),\n touched = _useState2[0],\n setTouched = _useState2[1];\n var _useState3 = useState({\n errors: errorsProp,\n infos: infosProp\n }),\n validationResults = _useState3[0],\n setValidationResults = _useState3[1];\n // maintain a copy of validationResults in a ref for useEffects\n // which can't depend on validationResults directly without\n // causing infinite renders.\n var validationResultsRef = useRef({});\n // Simulated onMount state. Consider Form to be mounted once it has\n // accounted for values originating from controlled inputs (available\n // at second rendering).\n var _useState4 = useState('unmounted'),\n mounted = _useState4[0],\n setMounted = _useState4[1];\n useEffect(function () {\n if (!mounted) setMounted('mounting');else if (mounted === 'mounting') setMounted('mounted');\n }, [mounted]);\n // `pendingValidation` is the name of the FormField awaiting validation.\n var _useState5 = useState(undefined),\n pendingValidation = _useState5[0],\n setPendingValidation = _useState5[1];\n var validationRulesRef = useRef({});\n var requiredFields = useRef([]);\n var analyticsRef = useRef({\n start: new Date(),\n errors: {}\n });\n var sendAnalytics = useAnalytics();\n var buildValid = useCallback(function (nextErrors) {\n var valid = false;\n valid = requiredFields.current.filter(function (n) {\n return Object.keys(validationRulesRef.current).includes(n);\n }).every(function (field) {\n return value[field] && (value[field] !== '' || value[field] !== false);\n });\n if (Object.keys(nextErrors).length > 0) valid = false;\n return valid;\n }, [value]);\n\n // Only keep validation results for current form fields. In the case of a\n // dynamic form, a field possessing an error may have been removed from the\n // form; need to clean up any previous related validation results.\n var filterRemovedFields = function filterRemovedFields(prevValidations) {\n var nextValidations = prevValidations;\n return Object.keys(nextValidations).filter(function (n) {\n return !validationRulesRef.current[n] || nextValidations[n] === undefined;\n }).forEach(function (n) {\n return delete nextValidations[n];\n });\n };\n var updateAnalytics = function updateAnalytics() {\n var _validationResultsRef;\n var errorFields = Object.keys((_validationResultsRef = validationResultsRef.current) == null ? void 0 : _validationResultsRef.errors);\n var errorCounts = analyticsRef.current.errors;\n if (errorFields.length > 0) {\n errorFields.forEach(function (key) {\n errorCounts[key] = (errorCounts[key] || 0) + 1;\n });\n }\n };\n var applyValidationRules = useCallback(function (validationRules) {\n var _validateForm = validateForm(validationRules, value, format, messages),\n validatedErrors = _validateForm[0],\n validatedInfos = _validateForm[1];\n setValidationResults(function (prevValidationResults) {\n // Keep any previous errors and infos for untouched keys,\n // these may have come from a Submit.\n var nextErrors = _extends({}, prevValidationResults.errors, validatedErrors);\n var nextInfos = _extends({}, prevValidationResults.infos, validatedInfos);\n // Remove previous errors and infos for keys no longer in the\n // form, these may have been fields removed from a dynamic form.\n filterRemovedFields(nextErrors);\n filterRemovedFields(nextInfos);\n var nextValidationResults = {\n errors: nextErrors,\n infos: nextInfos\n };\n if (onValidate) onValidate(_extends({}, nextValidationResults, {\n valid: buildValid(nextErrors)\n }));\n validationResultsRef.current = nextValidationResults;\n updateAnalytics();\n return nextValidationResults;\n });\n }, [buildValid, format, messages, onValidate, value]);\n\n // Validate all fields holding values onMount if set to\n // validate when blur or change.\n useEffect(function () {\n var validationRules = Object.entries(validationRulesRef.current);\n // Use simulated onMount state to account for values provided by\n // controlled inputs.\n if (mounted !== 'mounted' && ['blur', 'change'].includes(validateOn) && Object.keys(value).length > 0 && Object.keys(touched).length === 0) {\n applyValidationRules(validationRules.filter(function (_ref3) {\n var n = _ref3[0];\n return value[n];\n })\n // Exlude empty arrays which may be initial values in\n // an input such as DateInput.\n .filter(function (_ref4) {\n var n = _ref4[0];\n return !(Array.isArray(value[n]) && value[n].length === 0);\n }));\n }\n }, [applyValidationRules, mounted, touched, validateOn, value]);\n\n // Run validation against fields with pendingValidations from onBlur\n // and/or onChange.\n useEffect(function () {\n var validationRules = Object.entries(validationRulesRef.current);\n var timer = setTimeout(function () {\n if (pendingValidation && ['blur', 'change'].includes(validateOn)) {\n applyValidationRules(validationRules.filter(function (_ref5) {\n var n = _ref5[0];\n return touched[n] || pendingValidation.includes(n);\n }));\n setPendingValidation(undefined);\n }\n // Complete any potential click events before running onBlur validation.\n // Otherwise, click events like reset, etc. may not be registered. For a\n // detailed scenario/discussion, see: https://github.com/grommet/grommet/issues/4863\n // Values empirically tested; 120 was selected because it is the largest\n // Chrome: 100, Safari: 120, Firefox: 80\n }, 120);\n return function () {\n return clearTimeout(timer);\n };\n }, [applyValidationRules, pendingValidation, touched, validateOn]);\n\n // Re-run validation rules for all fields with prior errors.\n // if validate=blur this helps re-validate if there are errors\n // as the user fixes them (basically act like validate=change for that)\n useEffect(function () {\n var _validationResultsRef2;\n var validationRules = Object.entries(validationRulesRef.current);\n if ((_validationResultsRef2 = validationResultsRef.current) != null && _validationResultsRef2.errors && Object.keys(validationResultsRef.current.errors).length > 0) {\n applyValidationRules(validationRules.filter(function (_ref6) {\n var n = _ref6[0];\n return touched[n] && validationResultsRef.current.errors[n];\n }));\n }\n }, [applyValidationRules, touched]);\n useEffect(function () {\n var element = formRef.current;\n analyticsRef.current = {\n start: new Date(),\n errors: {}\n };\n sendAnalytics({\n type: 'formOpen',\n element: element\n });\n return function () {\n if (!analyticsRef.current.submitted) {\n sendAnalytics({\n type: 'formClose',\n element: element,\n errors: analyticsRef.current.errors,\n elapsed: new Date().getTime() - analyticsRef.current.start.getTime()\n });\n }\n };\n }, [sendAnalytics, formRef]);\n\n // There are three basic patterns of handling form input value state:\n //\n // 1 - form controlled\n //\n // In this model, the caller sets `value` and `onChange` properties\n // on the Form component to supply the values used by the input fields.\n // In useFormContext(), componentValue would be undefined and formValue\n // is be set to whatever the form state has. Whenever the form state\n // changes, we update the contextValue so the input component will use\n // that. When the input component changes, we will call update() to\n // update the form state.\n //\n // 2 - input controlled\n //\n // In this model, the caller sets `value` and `onChange` properties\n // on the input components, like TextInput, to supply the value for it.\n // In useFormContext(), componentValue is this value and we ensure to\n // update the form state, via update(), and set the contextValue from\n // the componentValue. When the input component changes, we will\n // call update() to update the form state.\n //\n // 3 - uncontrolled\n //\n // In this model, the caller doesn't set a `value` or `onChange` property\n // at either the form or input component levels.\n // In useFormContext(), componentValue is undefined and valueProp is\n // undefined and nothing much happens here. That is, unless the\n // calling component needs to know the state in order to work, such\n // as CheckBox or Select. In this case, those components supply\n // an initialValue, which will trigger updating the contextValue so\n // they can have access to it.\n //\n var formContextValue = useMemo(function () {\n var useFormInput = function useFormInput(_ref7) {\n var name = _ref7.name,\n componentValue = _ref7.value,\n initialValue = _ref7.initialValue,\n validateArg = _ref7.validate;\n var _useState6 = useState(initialValue),\n inputValue = _useState6[0],\n setInputValue = _useState6[1];\n var formValue = name ? getFieldValue(name, value) : undefined;\n // for dynamic forms, we need to track when an input has been added to\n // the form value. if the input is unmounted, we will delete its\n // key/value from the form value.\n var keyCreated = useRef(false);\n\n // This effect is for pattern #2, where the controlled input\n // component is driving the value via componentValue.\n useEffect(function () {\n if (name &&\n // we have somewhere to put this\n componentValue !== undefined &&\n // input driving\n componentValue !== formValue // don't already have it\n ) {\n setValueState(function (prevValue) {\n return setFieldValue(name, componentValue, prevValue);\n });\n // don't onChange on programmatic changes\n }\n }, [componentValue, formValue, name]);\n\n // on unmount, if the form is uncontrolled, remove the key/value\n // from the form value\n useEffect(function () {\n return function () {\n if (keyCreated.current) {\n keyCreated.current = false;\n setValueState(function (prevValue) {\n var nextValue = _extends({}, prevValue);\n var isArrayField = stringToArray(name);\n if (isArrayField) {\n var arrayName = isArrayField.arrayName;\n delete nextValue[arrayName];\n } else {\n delete nextValue[name];\n }\n return nextValue;\n });\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [] // only run onmount and unmount\n );\n\n // Create validation rules for fields\n useEffect(function () {\n if (validateArg) {\n if (!validationRulesRef.current[name]) {\n validationRulesRef.current[name] = {};\n }\n validationRulesRef.current[name].input = validateName(validateArg);\n return function () {\n return delete validationRulesRef.current[name].input;\n };\n }\n return undefined;\n }, [validateArg, name]);\n var useValue;\n if (componentValue !== undefined)\n // input component drives, pattern #2\n useValue = componentValue;else if (valueProp && name && formValue !== undefined)\n // form drives, pattern #1\n useValue = formValue;else if (formValue === undefined && name)\n // form has reset, so reset input value as well\n useValue = initialValue;else useValue = inputValue;\n return [useValue, function (nextComponentValue) {\n if (name) {\n // we have somewhere to put this\n var nextTouched = _extends({}, touched);\n nextTouched[name] = true;\n if (!touched[name]) {\n // don't update if not needed\n setTouched(nextTouched);\n }\n\n // if nextValue doesn't have a key for name, this must be\n // uncontrolled form. we will flag this field was added so\n // we know to remove its value from the form if it is dynamically\n // removed\n if (!(name in value)) keyCreated.current = true;\n var nextValue = setFieldValue(name, nextComponentValue, value);\n setValueState(nextValue);\n if (onChange) onChange(nextValue, {\n touched: nextTouched\n });\n }\n if (initialValue !== undefined) setInputValue(nextComponentValue);\n }];\n };\n var useFormField = function useFormField(_ref8) {\n var errorArg = _ref8.error,\n infoArg = _ref8.info,\n name = _ref8.name,\n required = _ref8.required,\n disabled = _ref8.disabled,\n validateArg = _ref8.validate;\n var error = disabled ? undefined : errorArg || validationResults.errors[name];\n var info = infoArg || validationResults.infos[name];\n\n // Create validation rules for field\n useEffect(function () {\n var index = requiredFields.current.indexOf(name);\n if (required) {\n if (index === -1) requiredFields.current.push(name);\n } else if (index !== -1) requiredFields.current.splice(index, 1);\n if (validateArg || required) {\n if (!validationRulesRef.current[name]) {\n validationRulesRef.current[name] = {};\n }\n validationRulesRef.current[name].field = validateName(validateArg, required);\n return function () {\n delete validationRulesRef.current[name].field;\n var requiredFieldIndex = requiredFields.current.indexOf(name);\n if (requiredFieldIndex !== -1) {\n requiredFields.current.splice(requiredFieldIndex, 1);\n }\n };\n }\n return undefined;\n }, [error, name, required, validateArg, disabled]);\n return {\n error: error,\n info: info,\n inForm: true,\n onBlur: validateOn === 'blur' ? function () {\n return setPendingValidation(pendingValidation ? [].concat(pendingValidation, [name]) : [name]);\n } : undefined,\n onChange: validateOn === 'change' ? function () {\n return setPendingValidation(pendingValidation ? [].concat(pendingValidation, [name]) : [name]);\n } : undefined\n };\n };\n return {\n useFormField: useFormField,\n useFormInput: useFormInput,\n kind: kind\n };\n }, [onChange, kind, pendingValidation, touched, validateOn, validationResults.errors, validationResults.infos, value, valueProp]);\n return /*#__PURE__*/React.createElement(\"form\", _extends({\n ref: formRef\n }, rest, {\n onReset: function onReset(event) {\n sendAnalytics({\n type: 'formReset',\n element: formRef.current,\n data: event,\n errors: analyticsRef.current.errors,\n elapsed: new Date().getTime() - analyticsRef.current.start.getTime()\n });\n setPendingValidation(undefined);\n if (!valueProp) {\n setValueState(defaultValue);\n if (onChange) onChange(defaultValue, {\n touched: defaultTouched\n });\n }\n setTouched(defaultTouched);\n setValidationResults(defaultValidationResults);\n analyticsRef.current = {\n start: new Date(),\n errors: {}\n };\n if (_onReset) {\n event.persist(); // extract from React's synthetic event pool\n var adjustedEvent = event;\n adjustedEvent.value = defaultValue;\n _onReset(adjustedEvent);\n }\n },\n onSubmit: function onSubmit(event) {\n // Don't submit the form via browser form action. We don't want it\n // if the validation fails. And, we assume a javascript action handler\n // otherwise.\n event.preventDefault();\n setPendingValidation(undefined);\n var _validateForm2 = validateForm(Object.entries(validationRulesRef.current), value, format, messages, true),\n nextErrors = _validateForm2[0],\n nextInfos = _validateForm2[1];\n setValidationResults(function () {\n var nextValidationResults = {\n errors: nextErrors,\n infos: nextInfos,\n // Show form's validity when clicking on Submit\n valid: buildValid(nextErrors)\n };\n if (onValidate) onValidate(nextValidationResults);\n validationResultsRef.current = nextValidationResults;\n updateAnalytics();\n return nextValidationResults;\n });\n if (Object.keys(nextErrors).length === 0 && _onSubmit) {\n event.persist(); // extract from React's synthetic event pool\n var adjustedEvent = event;\n adjustedEvent.value = value;\n adjustedEvent.touched = touched;\n _onSubmit(adjustedEvent);\n sendAnalytics({\n type: 'formSubmit',\n element: formRef.current,\n data: adjustedEvent,\n errors: analyticsRef.current.errors,\n elapsed: new Date().getTime() - analyticsRef.current.start.getTime()\n });\n analyticsRef.current.errors = {};\n analyticsRef.current.submitted = true;\n }\n }\n }), /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, children));\n});\nForm.displayName = 'Form';\nForm.propTypes = FormPropTypes;\nexport { Form };","import React, { useState } from 'react';\n\n// When not a descendant of a Form, FormContext still provides a basic\n// useFormInput. It doesn't do anything for components like TextInput.\n// But, it does store the value for components like CheckBox or Select\n// where the grommet component needs to know the value in order to\n// render custom visuals.\nvar useFormInput = function useFormInput(_ref) {\n var valueProp = _ref.value,\n initialValue = _ref.initialValue;\n var _useState = useState(valueProp !== undefined ? valueProp : initialValue),\n value = _useState[0],\n setValue = _useState[1];\n\n // Returns an array [value and function to set the value]\n return [valueProp !== undefined ? valueProp : value, function (nextValue) {\n if (initialValue !== undefined) setValue(nextValue);\n }];\n};\nvar useFormField = function useFormField(_ref2) {\n var error = _ref2.error,\n info = _ref2.info,\n disabled = _ref2.disabled;\n return {\n error: error,\n info: info,\n disabled: disabled\n };\n};\nexport var FormContext = /*#__PURE__*/React.createContext({\n useFormField: useFormField,\n useFormInput: useFormInput,\n noForm: true\n});","import styled from 'styled-components';\nimport { Box } from '../Box';\nimport { defaultProps } from '../../default-props';\nvar StyledCheckBoxGroup = styled(Box).withConfig({\n displayName: \"StyledCheckBoxGroup\",\n componentId: \"sc-2nhc5d-0\"\n})([\"\", \"\"], function (props) {\n return props.theme.checkBoxGroup && props.theme.checkBoxGroup.container && props.theme.checkBoxGroup.container.extend;\n});\nStyledCheckBoxGroup.defaultProps = {};\nObject.setPrototypeOf(StyledCheckBoxGroup.defaultProps, defaultProps);\nexport { StyledCheckBoxGroup };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n value: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n defaultValue: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n disabled: PropTypes.bool,\n labelKey: PropTypes.string,\n name: PropTypes.string,\n onChange: PropTypes.func,\n options: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.arrayOf(PropTypes.shape({}))]),\n valueKey: PropTypes.string\n };\n}\nexport var CheckBoxGroupPropTypes = PropType;","var _excluded = [\"children\", \"defaultValue\", \"value\", \"disabled\", \"focusIndicator\", \"gap\", \"labelKey\", \"valueKey\", \"onChange\", \"options\", \"name\"],\n _excluded2 = [\"value\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { CheckBox } from '../CheckBox';\nimport { FormContext } from '../Form/FormContext';\nimport { StyledCheckBoxGroup } from './StyledCheckBoxGroup';\nimport { CheckBoxGroupPropTypes } from './propTypes';\nvar CheckBoxGroup = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n defaultValue = _ref.defaultValue,\n valueProp = _ref.value,\n disabledProp = _ref.disabled,\n _ref$focusIndicator = _ref.focusIndicator,\n focusIndicator = _ref$focusIndicator === void 0 ? true : _ref$focusIndicator,\n gap = _ref.gap,\n labelKey = _ref.labelKey,\n valueKey = _ref.valueKey,\n onChange = _ref.onChange,\n optionsProp = _ref.options,\n name = _ref.name,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var formContext = useContext(FormContext);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n\n // In case option is a string, normalize it to be an object\n var options = optionsProp.map(function (option) {\n return typeof option === 'string' ? {\n disabled: disabledProp,\n value: option,\n label: option\n } : option;\n });\n\n // 'value' is an array of checked valueKeys\n var _formContext$useFormI = formContext.useFormInput({\n name: name,\n value: valueProp,\n initialValue: defaultValue || []\n }),\n value = _formContext$useFormI[0],\n setValue = _formContext$useFormI[1];\n\n // Logic is necessary to maintain a proper data structure for Form logic\n var onCheckBoxChange = function onCheckBoxChange(event, optionValue, option) {\n // deep copy of value\n var nextValue = JSON.parse(JSON.stringify(value)) || [];\n var optionIndex = nextValue.indexOf(optionValue);\n // If the value option isn't in the array, add it.\n // Otherwise, remove it.\n if (optionIndex < 0) nextValue.push(optionValue);else nextValue.splice(optionIndex, 1);\n setValue(nextValue);\n // Similar functionality to Select onChange()\n if (onChange) {\n event.persist(); // extract from React synthetic event pool\n var adjustedEvent = event;\n adjustedEvent.value = nextValue;\n adjustedEvent.option = option;\n onChange(adjustedEvent);\n }\n };\n return /*#__PURE__*/React.createElement(StyledCheckBoxGroup, _extends({\n ref: ref,\n role: \"group\"\n }, theme.checkBoxGroup.container, {\n gap: gap || (theme.checkBoxGroup.container && theme.checkBoxGroup.container.gap ? theme.checkBoxGroup.container.gap : 'small') // consistent with RadioButtonGroup default\n }, rest), options.map(function (option, index) {\n var optionValue = option.value;\n var label = labelKey ? option[labelKey] : option.label;\n var valueOption = valueKey ? option[valueKey] : optionValue;\n var checked = value.indexOf(valueOption) >= 0;\n var disabled = disabledProp || option.disabled;\n var key = label + \"-\" + valueOption;\n if (option.checked) console.warn( // eslint-disable-next-line max-len\n \"'checked' prop of an individual CheckBox shouldn't be used in a CheckBoxGroup component. Use the CheckBoxGroup 'value' prop instead.\");\n // value shouldn't propagate the input field and the onChange option\n var omit = option.value,\n optionRest = _objectWithoutPropertiesLoose(option, _excluded2);\n var optionProps = _extends({}, optionRest, {\n label: label,\n disabled: disabled\n });\n return /*#__PURE__*/React.createElement(CheckBox, _extends({\n key: key\n }, optionProps, {\n disabled: disabled,\n checked: checked\n // when contained in a FormField, focusIndicator = false,\n // so that the FormField has focus style. However, we still\n // need to visually indicate when a CheckBox is active.\n // In CheckBox, if focus = true but focusIndicator = false,\n // we will apply the hover treament.\n ,\n focusIndicator: focusIndicator,\n label: label,\n onChange: function onChange(event) {\n return onCheckBoxChange(event, valueOption, optionProps);\n }\n }), children ? function (state) {\n return children(options[index], state);\n } : null);\n }));\n});\nCheckBoxGroup.displayName = 'CheckBoxGroup';\nCheckBoxGroup.propTypes = CheckBoxGroupPropTypes;\nexport { CheckBoxGroup };","import styled, { css } from 'styled-components';\nimport { focusStyle, normalizeColor } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar disabledStyle = \"\\n opacity: 0.5;\\n cursor: default;\\n\";\nvar StyledRadioButtonContainer = styled.label.withConfig({\n displayName: \"StyledRadioButton__StyledRadioButtonContainer\",\n componentId: \"sc-g1f6ld-0\"\n})([\"display:flex;flex-direction:row;align-items:center;user-select:none;width:fit-content;\", \" \", \":hover input:not([disabled]) + div,:hover input:not([disabled]) + span{border-color:\", \";}:hover{background-color:\", \";}\", \" \", \";\"], function (props) {\n return props.disabled && disabledStyle;\n}, function (props) {\n return !props.disabled && 'cursor: pointer;';\n}, function (props) {\n return normalizeColor(props.theme.radioButton.hover.border.color, props.theme);\n}, function (props) {\n return normalizeColor(!props.disabled && props.theme.radioButton.hover && props.theme.radioButton.hover.background && props.theme.radioButton.hover.background.color, props.theme);\n}, function (props) {\n return props.focus && !props.focusIndicator && \"\\n input:not([disabled]) + div,\\n input:not([disabled]) + span {\\n border-color: \" + normalizeColor(props.theme.radioButton.hover.border.color, props.theme) + \";\\n }\\n background-color: \" + normalizeColor(!props.disabled && props.theme.radioButton.hover && props.theme.radioButton.hover.background && props.theme.radioButton.hover.background.color, props.theme) + \";\\n \";\n}, function (props) {\n return props.theme.radioButton.container.extend;\n});\nStyledRadioButtonContainer.defaultProps = {};\nObject.setPrototypeOf(StyledRadioButtonContainer.defaultProps, defaultProps);\nvar StyledRadioButtonInput = styled.input.withConfig({\n displayName: \"StyledRadioButton__StyledRadioButtonInput\",\n componentId: \"sc-g1f6ld-1\"\n})([\"opacity:0;-moz-appearance:none;width:0;height:0;margin:0;\", \";\"], function (props) {\n return !props.disabled && 'cursor: pointer;';\n});\nStyledRadioButtonInput.defaultProps = {};\nObject.setPrototypeOf(StyledRadioButtonInput.defaultProps, defaultProps);\nvar StyledRadioButtonLabel = styled.span.withConfig({\n displayName: \"StyledRadioButton__StyledRadioButtonLabel\",\n componentId: \"sc-g1f6ld-2\"\n})([\"\", \"\"], function (props) {\n return props.theme.radioButton.font.weight && css([\"font-weight:\", \";\"], props.theme.radioButton.font.weight);\n});\nStyledRadioButtonLabel.defaultProps = {};\nObject.setPrototypeOf(StyledRadioButtonLabel.defaultProps, defaultProps);\nvar StyledRadioButtonIcon = styled.svg.withConfig({\n displayName: \"StyledRadioButton__StyledRadioButtonIcon\",\n componentId: \"sc-g1f6ld-3\"\n})([\"box-sizing:border-box;width:\", \";height:\", \";fill:\", \";\", \";\"], function (props) {\n return props.theme.radioButton.icon.size || props.theme.radioButton.size;\n}, function (props) {\n return props.theme.radioButton.icon.size || props.theme.radioButton.size;\n}, function (props) {\n return normalizeColor(props.theme.radioButton.check.color || 'control', props.theme);\n}, function (props) {\n return props.theme.radioButton.icon.extend;\n});\nStyledRadioButtonIcon.defaultProps = {};\nObject.setPrototypeOf(StyledRadioButtonIcon.defaultProps, defaultProps);\nvar StyledRadioButtonBox = styled.div.withConfig({\n displayName: \"StyledRadioButton__StyledRadioButtonBox\",\n componentId: \"sc-g1f6ld-4\"\n})([\"background-color:\", \";\", \";\", \";\"], function (props) {\n var _props$theme$radioBut;\n return normalizeColor((_props$theme$radioBut = props.theme.radioButton.check.background) == null ? void 0 : _props$theme$radioBut.color, props.theme);\n}, function (props) {\n return props.focus && focusStyle();\n}, function (props) {\n return props.theme.radioButton.check.extend;\n});\nStyledRadioButtonBox.defaultProps = {};\nObject.setPrototypeOf(StyledRadioButtonBox.defaultProps, defaultProps);\nvar StyledRadioButton = styled.div.withConfig({\n displayName: \"StyledRadioButton\",\n componentId: \"sc-g1f6ld-5\"\n})([\"\", \";\"], function (props) {\n return props.theme.radioButton && props.theme.radioButton.extend;\n});\nStyledRadioButton.defaultProps = {};\nObject.setPrototypeOf(StyledRadioButton.defaultProps, defaultProps);\nexport { StyledRadioButtonContainer, StyledRadioButtonInput, StyledRadioButtonLabel, StyledRadioButtonIcon, StyledRadioButtonBox, StyledRadioButton };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n a11yTitle: PropTypes.string,\n checked: PropTypes.bool,\n children: PropTypes.func,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.node,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func\n };\n}\nexport var RadioButtonPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"checked\", \"children\", \"disabled\", \"focus\", \"focusIndicator\", \"id\", \"label\", \"name\", \"onChange\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { Box } from '../Box';\nimport { defaultProps } from '../../default-props';\nimport { normalizeColor, removeUndefined } from '../../utils';\nimport { StyledRadioButton, StyledRadioButtonContainer, StyledRadioButtonIcon, StyledRadioButtonInput, StyledRadioButtonLabel, StyledRadioButtonBox } from './StyledRadioButton';\nimport { RadioButtonPropTypes } from './propTypes';\nvar RadioButton = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var a11yTitle = _ref.a11yTitle,\n checked = _ref.checked,\n children = _ref.children,\n disabled = _ref.disabled,\n focus = _ref.focus,\n focusIndicator = _ref.focusIndicator,\n id = _ref.id,\n label = _ref.label,\n name = _ref.name,\n onChange = _ref.onChange,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var _useState = useState(),\n hover = _useState[0],\n setHover = _useState[1];\n var normalizedLabel = typeof label === 'string' ? /*#__PURE__*/React.createElement(StyledRadioButtonLabel, null, label) : label;\n var Icon = theme.radioButton.icons.circle;\n var borderColor = normalizeColor(theme.radioButton.border.color, theme);\n if (checked) {\n borderColor = normalizeColor(theme.radioButton.color || 'control', theme);\n }\n return /*#__PURE__*/React.createElement(StyledRadioButtonContainer, _extends({}, removeUndefined({\n htmlFor: id,\n disabled: disabled\n }), {\n onClick: function onClick(event) {\n // prevents clicking on the label trigging the event twice\n // https://stackoverflow.com/questions/24501497/why-the-onclick-element-will-trigger-twice-for-label-element\n if (event.target.type !== 'radio') {\n event.stopPropagation();\n }\n },\n focus: focus,\n focusIndicator: focusIndicator,\n onMouseEnter: function onMouseEnter() {\n return setHover(true);\n },\n onMouseLeave: function onMouseLeave() {\n return setHover(false);\n }\n }), /*#__PURE__*/React.createElement(StyledRadioButton, {\n as: Box,\n flex: false,\n margin: label ? {\n right: theme.radioButton.gap || 'small'\n } : undefined\n }, /*#__PURE__*/React.createElement(StyledRadioButtonInput, _extends({\n \"aria-label\": a11yTitle\n }, rest, {\n ref: ref,\n type: \"radio\"\n }, removeUndefined({\n id: id,\n name: name,\n checked: checked,\n disabled: disabled,\n onChange: onChange\n }))), children ? children({\n checked: checked,\n focus: focus && focusIndicator,\n hover: hover\n }) : /*#__PURE__*/React.createElement(StyledRadioButtonBox, {\n focus: focus && focusIndicator,\n as: Box,\n align: \"center\",\n justify: \"center\",\n width: theme.radioButton.size,\n height: theme.radioButton.size,\n border: {\n size: theme.radioButton.border.width,\n color: borderColor\n },\n round: theme.radioButton.check.radius\n }, checked && (Icon ? /*#__PURE__*/React.createElement(Icon, {\n theme: theme,\n as: StyledRadioButtonIcon\n }) : /*#__PURE__*/React.createElement(StyledRadioButtonIcon, {\n viewBox: \"0 0 24 24\",\n preserveAspectRatio: \"xMidYMid meet\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 6\n }))))), normalizedLabel);\n});\nRadioButton.displayName = 'RadioButton';\nRadioButton.propTypes = RadioButtonPropTypes;\nexport { RadioButton };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n children: PropTypes.func,\n disabled: PropTypes.bool,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n options: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.arrayOf(PropTypes.number), PropTypes.arrayOf(PropTypes.bool), PropTypes.arrayOf(PropTypes.shape({\n disabled: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]).isRequired\n }))]).isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool, PropTypes.object])\n };\n}\nexport var RadioButtonGroupPropTypes = PropType;","var _excluded = [\"children\", \"defaultValue\", \"disabled\", \"focusIndicator\", \"name\", \"onChange\", \"options\", \"value\", \"gap\"],\n _excluded2 = [\"disabled\", \"id\", \"label\", \"value\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext, useEffect, useRef, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { FormContext } from '../Form/FormContext';\nimport { defaultProps } from '../../default-props';\nimport { Keyboard } from '../Keyboard';\nimport { Box } from '../Box';\nimport { RadioButton } from '../RadioButton';\nimport { RadioButtonGroupPropTypes } from './propTypes';\nvar RadioButtonGroup = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n defaultValue = _ref.defaultValue,\n disabled = _ref.disabled,\n _ref$focusIndicator = _ref.focusIndicator,\n focusIndicator = _ref$focusIndicator === void 0 ? true : _ref$focusIndicator,\n name = _ref.name,\n _onChange = _ref.onChange,\n optionsProp = _ref.options,\n valueProp = _ref.value,\n gap = _ref.gap,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var formContext = useContext(FormContext);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n\n // normalize options to always use an object\n var options = optionsProp.map(function (o) {\n return typeof o !== 'object' ? {\n disabled: disabled,\n id: rest.id ? rest.id + \"-\" + o : \"\" + o,\n // force string\n label: typeof o !== 'string' ? JSON.stringify(o) : o,\n value: o\n } : _extends({\n disabled: disabled\n }, o);\n });\n var _formContext$useFormI = formContext.useFormInput({\n name: name,\n value: valueProp,\n initialValue: defaultValue || ''\n }),\n value = _formContext$useFormI[0],\n setValue = _formContext$useFormI[1];\n\n // track if focus is on one of the radio buttons\n var _useState = useState(),\n focus = _useState[0],\n setFocus = _useState[1];\n var optionRefs = useRef([]);\n var valueIndex = React.useMemo(function () {\n var result;\n options.some(function (option, index) {\n if (option.value === value) {\n result = index;\n return true;\n }\n return false;\n });\n return result;\n }, [options, value]);\n useEffect(function () {\n // if tab comes back to RadioButtonGroup when there still is no selection,\n // we want focus to be on the first RadioButton\n if (focus && !valueIndex) {\n optionRefs.current[0].focus();\n }\n }, [focus, valueIndex]);\n var onNext = function onNext() {\n if (valueIndex !== undefined && valueIndex < options.length - 1) {\n var nextIndex = valueIndex + 1;\n // ensure change event occurs\n optionRefs.current[nextIndex].click();\n }\n };\n var onPrevious = function onPrevious() {\n if (valueIndex > 0) {\n var nextIndex = valueIndex - 1;\n // ensure change event occurs\n optionRefs.current[nextIndex].click();\n }\n };\n var onFocus = function onFocus() {\n // Delay just a wee bit so Chrome doesn't missing turning the button on.\n // Chrome behaves differently in that focus is given to radio buttons\n // when the user selects one, unlike Safari and Firefox.\n setTimeout(function () {\n setFocus(true);\n }, 1);\n };\n var onBlur = function onBlur() {\n return setFocus(false);\n };\n return /*#__PURE__*/React.createElement(Keyboard, {\n target: \"document\",\n onUp: focus ? onPrevious : undefined,\n onDown: focus ? onNext : undefined,\n onLeft: focus ? onPrevious : undefined,\n onRight: focus ? onNext : undefined\n }, /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n role: \"radiogroup\"\n }, theme.radioButtonGroup.container, {\n gap: gap || (theme.radioButtonGroup.container && theme.radioButtonGroup.container.gap ? theme.radioButtonGroup.container.gap : 'small')\n }, rest), options.map(function (_ref2, index) {\n var optionDisabled = _ref2.disabled,\n id = _ref2.id,\n label = _ref2.label,\n optionValue = _ref2.value,\n optionRest = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n // if focus is within the RadioButtonGroup, determine\n // which radio button should be the active one\n var focusable = optionValue === value || value === undefined && !index ||\n // when nothing has been selected, show focus\n // on the first radiobutton\n value === '' && index === 0;\n return /*#__PURE__*/React.createElement(RadioButton, _extends({\n ref: function ref(aRef) {\n optionRefs.current[index] = aRef;\n },\n key: optionValue,\n name: name,\n label: !children ? label : undefined,\n disabled: optionDisabled,\n checked: optionValue === value,\n focus: focus && focusable\n // when contained in a FormField, focusIndicator = false,\n // so that the FormField has focus style. However, we still\n // need to visually indicate when a RadioButton is active.\n // In RadioButton, if focus = true but focusIndicator = false,\n // we will apply the hover treament.\n ,\n focusIndicator: focusIndicator,\n id: id,\n value: optionValue,\n onFocus: onFocus,\n onBlur: onBlur,\n onChange: function onChange(event) {\n setValue(optionValue);\n if (_onChange) _onChange(event);\n },\n tabIndex: focusable ? '0' : '-1' // necessary for Firefox\n }, optionRest), children ? function (state) {\n return children(optionsProp[index], state);\n } : null);\n })));\n});\nRadioButtonGroup.displayName = 'RadioButtonGroup';\nRadioButtonGroup.propTypes = RadioButtonGroupPropTypes;\nexport { RadioButtonGroup };","import PropTypes from 'prop-types';\nimport { marginProp } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n a11yTitle: PropTypes.string,\n component: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n contentProps: PropTypes.object,\n disabled: PropTypes.bool,\n error: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n help: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n htmlFor: PropTypes.string,\n info: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n name: PropTypes.string,\n margin: marginProp,\n pad: PropTypes.bool,\n required: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n indicator: PropTypes.bool\n })]),\n validate: PropTypes.oneOfType([PropTypes.shape({\n regexp: PropTypes.instanceOf(RegExp),\n // regular expression\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n status: PropTypes.oneOf(['error', 'info'])\n }), PropTypes.func, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({\n regexp: PropTypes.instanceOf(RegExp),\n // regular expression\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n status: PropTypes.oneOf(['error', 'info'])\n }), PropTypes.func]))])\n };\n}\nexport var FormFieldPropTypes = PropType;","var _excluded = [\"error\", \"info\", \"message\", \"type\"],\n _excluded2 = [\"component\", \"disabled\", \"invalid\", \"name\", \"onChange\"],\n _excluded3 = [\"children\", \"className\", \"component\", \"contentProps\", \"disabled\", \"error\", \"help\", \"htmlFor\", \"info\", \"label\", \"margin\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"pad\", \"required\", \"style\", \"validate\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { Children, cloneElement, forwardRef, useContext, useState, useEffect } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { containsFocus, shouldKeepFocus, withinDropPortal, PortalContext } from '../../utils';\nimport { focusStyle } from '../../utils/styles';\nimport { parseMetricToNum } from '../../utils/mixins';\nimport { useForwardedRef } from '../../utils/refs';\nimport { Box } from '../Box';\nimport { CheckBox } from '../CheckBox';\nimport { CheckBoxGroup } from '../CheckBoxGroup';\nimport { RadioButtonGroup } from '../RadioButtonGroup';\nimport { Text } from '../Text';\nimport { TextInput } from '../TextInput';\nimport { FormContext } from '../Form/FormContext';\nimport { FormFieldPropTypes } from './propTypes';\nvar grommetInputNames = ['CheckBox', 'CheckBoxGroup', 'TextInput', 'Select', 'MaskedInput', 'SelectMultiple', 'TextArea', 'DateInput', 'FileInput', 'RadioButtonGroup', 'RangeInput', 'RangeSelector', 'StarRating', 'ThumbsRating'];\nvar grommetInputPadNames = ['CheckBox', 'CheckBoxGroup', 'RadioButtonGroup', 'RangeInput', 'RangeSelector'];\nvar isGrommetInput = function isGrommetInput(comp) {\n return comp && (grommetInputNames.indexOf(comp.displayName) !== -1 || grommetInputPadNames.indexOf(comp.displayName) !== -1);\n};\nvar FormFieldBox = styled(Box).withConfig({\n displayName: \"FormField__FormFieldBox\",\n componentId: \"sc-m9hood-0\"\n})([\"\", \" \", \"\"], function (props) {\n return props.focus && focusStyle({\n justBorder: true\n });\n}, function (props) {\n return props.theme.formField && props.theme.formField.extend;\n});\nvar FormFieldContentBox = styled(Box).withConfig({\n displayName: \"FormField__FormFieldContentBox\",\n componentId: \"sc-m9hood-1\"\n})([\"\", \"\"], function (props) {\n return props.focus && focusStyle({\n justBorder: true\n });\n});\nvar StyledMessageContainer = styled(Box).withConfig({\n displayName: \"FormField__StyledMessageContainer\",\n componentId: \"sc-m9hood-2\"\n})([\"\", \"\"], function (props) {\n return props.messageType && props.theme.formField[props.messageType].container && props.theme.formField[props.messageType].container.extend;\n});\nvar RequiredText = styled(Text).withConfig({\n displayName: \"FormField__RequiredText\",\n componentId: \"sc-m9hood-3\"\n})([\"color:inherit;font-weight:inherit;line-height:inherit;\"]);\nvar ScreenReaderOnly = styled(Text).withConfig({\n displayName: \"FormField__ScreenReaderOnly\",\n componentId: \"sc-m9hood-4\"\n})([\"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;\"]);\nvar Message = function Message(_ref) {\n var error = _ref.error,\n info = _ref.info,\n message = _ref.message,\n type = _ref.type,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n if (message) {\n var icon;\n var containerProps;\n if (type) {\n icon = theme.formField[type] && theme.formField[type].icon;\n containerProps = theme.formField[type] && theme.formField[type].container;\n }\n var messageContent;\n if (typeof message === 'string') messageContent = /*#__PURE__*/React.createElement(Text, rest, message);else messageContent = /*#__PURE__*/React.createElement(Box, rest, message);\n return icon || containerProps ? /*#__PURE__*/React.createElement(StyledMessageContainer, _extends({\n direction: \"row\",\n messageType: type\n }, containerProps), icon && /*#__PURE__*/React.createElement(Box, {\n flex: false\n }, icon), messageContent) : messageContent;\n }\n return null;\n};\nvar Input = function Input(_ref2) {\n var component = _ref2.component,\n disabled = _ref2.disabled,\n invalid = _ref2.invalid,\n name = _ref2.name,\n _onChange = _ref2.onChange,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n var formContext = useContext(FormContext);\n var _formContext$useFormI = formContext.useFormInput({\n name: name,\n value: rest.value\n }),\n value = _formContext$useFormI[0],\n setValue = _formContext$useFormI[1];\n var InputComponent = component || TextInput;\n // Grommet input components already check for FormContext\n // and, using their `name`, end up calling the useFormInput.setValue()\n // already. For custom components, we expect they will call\n // this onChange() and we'll call setValue() here, primarily\n // for backwards compatibility.\n var extraProps = isGrommetInput(InputComponent) ? {\n focusIndicator: false,\n onChange: _onChange,\n plain: true\n } : {\n value: value,\n onChange: function onChange(event) {\n setValue(event.value !== undefined ? event.value : event.target.value);\n if (_onChange) _onChange(event);\n }\n };\n return /*#__PURE__*/React.createElement(InputComponent, _extends({\n name: name,\n disabled: disabled,\n \"aria-invalid\": invalid || undefined\n }, rest, extraProps));\n};\nvar useDebounce = function useDebounce() {\n var _useState = useState(),\n func = _useState[0],\n setFunc = _useState[1];\n var theme = useContext(ThemeContext) || defaultProps.theme;\n useEffect(function () {\n var timer;\n if (func) timer = setTimeout(function () {\n return func();\n }, theme.global.debounceDelay);\n return function () {\n return clearTimeout(timer);\n };\n }, [func, theme.global.debounceDelay]);\n return setFunc;\n};\nvar FormField = /*#__PURE__*/forwardRef(function (_ref3, ref) {\n var children = _ref3.children,\n className = _ref3.className,\n component = _ref3.component,\n contentProps = _ref3.contentProps,\n disabled = _ref3.disabled,\n errorProp = _ref3.error,\n help = _ref3.help,\n htmlFor = _ref3.htmlFor,\n infoProp = _ref3.info,\n label = _ref3.label,\n margin = _ref3.margin,\n name = _ref3.name,\n _onBlur = _ref3.onBlur,\n onChange = _ref3.onChange,\n _onFocus = _ref3.onFocus,\n pad = _ref3.pad,\n required = _ref3.required,\n style = _ref3.style,\n validate = _ref3.validate,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded3);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var formContext = useContext(FormContext);\n var _formContext$useFormF = formContext.useFormField({\n disabled: disabled,\n error: errorProp,\n info: infoProp,\n name: name,\n required: required,\n validate: validate\n }),\n error = _formContext$useFormF.error,\n info = _formContext$useFormF.info,\n inForm = _formContext$useFormF.inForm,\n contextOnBlur = _formContext$useFormF.onBlur,\n contextOnChange = _formContext$useFormF.onChange;\n var formKind = formContext.kind;\n var _useState2 = useState(),\n focus = _useState2[0],\n setFocus = _useState2[1];\n var formFieldRef = useForwardedRef(ref);\n var formFieldTheme = theme.formField;\n var themeBorder = formFieldTheme.border;\n var debounce = useDebounce();\n var portalContext = useContext(PortalContext);\n\n // This is here for backwards compatibility. In case the child is a grommet\n // input component, set plain and focusIndicator props, if they aren't\n // already set.\n var wantContentPad = component && (component === CheckBox || component === CheckBoxGroup || component === RadioButtonGroup);\n var contents = themeBorder && children && Children.map(children, function (child) {\n if (child && child.type && grommetInputPadNames.indexOf(child.type.displayName) !== -1) {\n wantContentPad = true;\n }\n if (child && child.type && grommetInputNames.indexOf(child.type.displayName) !== -1 && child.props.plain === undefined && child.props.focusIndicator === undefined) {\n var _formFieldTheme$check;\n return /*#__PURE__*/cloneElement(child, {\n plain: true,\n focusIndicator: false,\n pad: 'CheckBox'.indexOf(child.type.displayName) !== -1 ? formFieldTheme == null ? void 0 : (_formFieldTheme$check = formFieldTheme.checkBox) == null ? void 0 : _formFieldTheme$check.pad : undefined\n });\n }\n return child;\n }) || children;\n\n // put rest on container, unless we use internal Input\n var containerRest = rest;\n if (inForm) {\n if (!contents) containerRest = {};\n contents = contents || /*#__PURE__*/React.createElement(Input, _extends({\n component: component,\n disabled: disabled,\n invalid: !!error,\n name: name,\n label: component === CheckBox ? label : undefined\n }, rest));\n }\n var themeContentProps = _extends({}, formFieldTheme.content);\n if (!pad && !wantContentPad) {\n themeContentProps.pad = undefined;\n }\n if (themeBorder && themeBorder.position === 'inner') {\n if (error && formFieldTheme.error) {\n themeContentProps.background = formFieldTheme.error.background;\n } else if (disabled && formFieldTheme.disabled) {\n themeContentProps.background = formFieldTheme.disabled.background;\n }\n }\n\n // fileinput handle\n // use fileinput plain use formfield to drive the border\n var isFileInputComponent;\n if (children && Children.forEach(children, function (child) {\n if (child && child.type && 'FileInput'.indexOf(child.type.displayName) !== -1) isFileInputComponent = true;\n })) ;\n if (component && component.displayName === 'FileInput' && !isFileInputComponent) {\n isFileInputComponent = true;\n }\n if (!themeBorder) {\n contents = /*#__PURE__*/React.createElement(Box, _extends({}, themeContentProps, contentProps), contents);\n }\n var borderColor;\n if (disabled && formFieldTheme.disabled.border && formFieldTheme.disabled.border.color) {\n borderColor = formFieldTheme.disabled.border.color;\n } else if (\n // backward compatibility check\n error && themeBorder && themeBorder.error.color || error && formFieldTheme.error && formFieldTheme.error.border) {\n if (themeBorder.error.color && formFieldTheme.error.border === undefined) {\n borderColor = themeBorder.error.color || 'status-critical';\n } else if (formFieldTheme.error.border && formFieldTheme.error.border.color) {\n borderColor = formFieldTheme.error.border.color || 'status-critical';\n }\n } else if (focus && formFieldTheme.focus && formFieldTheme.focus.border && formFieldTheme.focus.border.color) {\n borderColor = formFieldTheme.focus.border.color;\n } else {\n borderColor = themeBorder && themeBorder.color || 'border';\n }\n var labelStyle;\n if (formKind) {\n labelStyle = _extends({}, formFieldTheme[formKind].label);\n } else labelStyle = _extends({}, formFieldTheme.label);\n if (disabled) {\n labelStyle.color = formFieldTheme.disabled && formFieldTheme.disabled.label ? formFieldTheme.disabled.label.color : labelStyle.color;\n }\n var abut;\n var abutMargin;\n var outerStyle = style;\n\n // If fileinput is wrapped in a formfield we want to use\n // the border style from the fileInput.theme. We also do not\n // want the foocus around the formfield since the the focus\n // is on the anchor/button inside fileinput\n\n if (themeBorder) {\n var innerProps = themeBorder.position === 'inner' ? {\n border: _extends({}, themeBorder, {\n size: isFileInputComponent ? theme.fileInput.border.size : undefined,\n style: isFileInputComponent ? theme.fileInput.border.style : undefined,\n side: isFileInputComponent ? theme.fileInput.border.side : themeBorder.side || 'bottom',\n color: borderColor\n }),\n round: formFieldTheme.round,\n focus: isFileInputComponent ? undefined : focus\n } : {};\n contents = /*#__PURE__*/React.createElement(FormFieldContentBox, _extends({}, themeContentProps, innerProps, contentProps), contents);\n var mergedMargin = margin || formFieldTheme.margin;\n abut = themeBorder.position === 'outer' && (themeBorder.side === 'all' || themeBorder.side === 'horizontal' || !themeBorder.side) && !(mergedMargin && (typeof mergedMargin === 'string' && mergedMargin !== 'none' || mergedMargin.bottom && mergedMargin.bottom !== 'none' || mergedMargin.horizontal && mergedMargin.horizontal !== 'none'));\n if (abut) {\n // marginBottom is set to overlap adjacent fields\n abutMargin = {\n bottom: '-1px'\n };\n if (margin) {\n abutMargin = margin;\n } else if (themeBorder.size) {\n // if the user defines a margin,\n // then the default margin below will be overridden\n abutMargin = {\n bottom: \"-\" + parseMetricToNum(theme.global.borderSize[themeBorder.size] || themeBorder.size) + \"px\"\n };\n }\n outerStyle = _extends({\n position: focus ? 'relative' : undefined,\n zIndex: focus ? 10 : undefined\n }, style);\n }\n }\n var outerBackground;\n if (themeBorder && themeBorder.position === 'outer') {\n if (error && formFieldTheme.error && formFieldTheme.error.background) {\n outerBackground = formFieldTheme.error.background;\n } else if (focus && formFieldTheme.focus && formFieldTheme.focus.background && formFieldTheme.focus.background.color) {\n outerBackground = formFieldTheme.focus.background.color;\n } else if (disabled && formFieldTheme.disabled && formFieldTheme.disabled.background) {\n outerBackground = formFieldTheme.disabled.background;\n }\n }\n var outerProps = themeBorder && themeBorder.position === 'outer' ? {\n border: _extends({}, themeBorder, {\n color: borderColor\n }),\n round: formFieldTheme.round,\n focus: focus\n } : {};\n var requiredIndicator = theme.formField.label.requiredIndicator;\n if (requiredIndicator === true)\n // accessibility resource: https://www.deque.com/blog/anatomy-of-accessible-forms-required-form-fields/\n // this approach allows the required indicator to be hidden visually,\n // but present for assistive tech.\n // using aria-hidden so screen does not read out \"star\" and\n // just reads out \"required\"\n requiredIndicator = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RequiredText, {\n \"aria-hidden\": \"true\"\n }, \"*\"), /*#__PURE__*/React.createElement(ScreenReaderOnly, null, \"required\"));\n var showRequiredIndicator = required && requiredIndicator;\n if (typeof required === 'object' && required.indicator === false) showRequiredIndicator = false;\n return /*#__PURE__*/React.createElement(FormFieldBox, _extends({\n ref: formFieldRef,\n className: className,\n background: outerBackground,\n margin: abut ? abutMargin : margin || _extends({}, formFieldTheme.margin)\n }, outerProps, {\n style: outerStyle,\n onFocus: function onFocus(event) {\n var _formFieldRef$current;\n var root = (_formFieldRef$current = formFieldRef.current) == null ? void 0 : _formFieldRef$current.getRootNode();\n if (root) {\n setFocus(containsFocus(formFieldRef.current) && shouldKeepFocus(root));\n }\n if (_onFocus) _onFocus(event);\n },\n onBlur: function onBlur(event) {\n setFocus(false);\n\n // if input has a drop and focus is within drop\n // prevent onBlur validation from running until\n // focus is no longer within the drop or input\n if (contextOnBlur && !formFieldRef.current.contains(event.relatedTarget) && !withinDropPortal(event.relatedTarget, portalContext)) {\n contextOnBlur(event);\n }\n if (_onBlur) _onBlur(event);\n },\n onChange: contextOnChange || onChange ? function (event) {\n event.persist();\n if (onChange) onChange(event);\n if (contextOnChange) debounce(function () {\n return function () {\n return contextOnChange(event);\n };\n });\n } : undefined\n }, containerRest), label && component !== CheckBox || help ? /*#__PURE__*/React.createElement(React.Fragment, null, label && component !== CheckBox && /*#__PURE__*/React.createElement(Text, _extends({\n as: \"label\",\n htmlFor: htmlFor\n }, labelStyle), label, showRequiredIndicator ? requiredIndicator : undefined), /*#__PURE__*/React.createElement(Message, _extends({\n message: help\n }, formFieldTheme.help))) : undefined, contents, /*#__PURE__*/React.createElement(Message, _extends({\n type: \"error\",\n message: error\n }, formFieldTheme.error)), /*#__PURE__*/React.createElement(Message, _extends({\n type: \"info\",\n message: info\n }, formFieldTheme.info)));\n});\nFormField.displayName = 'FormField';\nFormField.propTypes = FormFieldPropTypes;\nexport { FormField };","import styled, { css } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { alignContentStyle, alignStyle, borderStyle, edgeStyle, genericStyles, heightStyle, widthStyle } from '../../utils';\nvar fillStyle = function fillStyle(fill) {\n if (!fill) {\n return fill;\n }\n if (fill === 'horizontal') {\n return 'width: 100%;';\n }\n if (fill === 'vertical') {\n return 'height: 100%;';\n }\n return \"\\n width: 100%;\\n height: 100%;\\n \";\n};\nvar JUSTIFY_MAP = {\n center: 'center',\n end: 'flex-end',\n start: 'flex-start',\n stretch: 'stretch'\n};\nvar justifyStyle = css([\"justify-items:\", \";\"], function (props) {\n return JUSTIFY_MAP[props.justify];\n});\nvar JUSTIFY_CONTENT_MAP = {\n around: 'space-around',\n between: 'space-between',\n center: 'center',\n end: 'flex-end',\n start: 'flex-start',\n stretch: 'stretch'\n};\nvar justifyContentStyle = css([\"justify-content:\", \";\"], function (props) {\n return JUSTIFY_CONTENT_MAP[props.justifyContent];\n});\nvar gapSizes = function gapSizes(props) {\n var result = [];\n if (typeof props.gap === 'string') {\n var size = props.theme.global.edgeSize[props.gap] || props.gap;\n result[0] = size;\n result[1] = size;\n } else if (props.gap) {\n if (props.gap.row) result[0] = props.theme.global.edgeSize[props.gap.row] || props.gap.row;\n if (props.gap.column) result[1] = props.theme.global.edgeSize[props.gap.column] || props.gap.column;\n }\n return result;\n};\nvar gapStyle = function gapStyle(props) {\n var sizes = gapSizes(props);\n if (sizes[0] !== undefined && sizes[1] !== undefined) {\n return \"grid-gap: \" + sizes[0] + \" \" + sizes[1] + \";\";\n }\n if (sizes[0] !== undefined) {\n return \"grid-row-gap: \" + sizes[0] + \";\";\n }\n if (sizes[1] !== undefined) {\n return \"grid-column-gap: \" + sizes[1] + \";\";\n }\n return '';\n};\nvar SIZE_MAP = {\n flex: '1fr',\n full: '100%',\n '1/2': '50%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/3': '33.33%',\n '2/3': '66.66%'\n};\nvar normalizeSize = function normalizeSize(size, props) {\n return SIZE_MAP[size] || props.theme.global.size[size] || size;\n};\nvar getRepeatCount = function getRepeatCount(count) {\n return typeof count === 'number' ? count : \"auto-\" + (count || 'fit');\n};\nvar getRepeatSize = function getRepeatSize(size, props) {\n if (size === 'flex') return '1fr';\n var gaps = gapSizes(props);\n var min;\n var max;\n var minFill;\n if (Array.isArray(size)) {\n var _size$ = size[0],\n minSize = _size$ === void 0 ? 'auto' : _size$,\n _size$2 = size[1],\n maxSize = _size$2 === void 0 ? 'auto' : _size$2;\n min = normalizeSize(minSize, props);\n if (min.search(/px/) !== -1) minFill = true;\n max = normalizeSize(maxSize, props);\n if (gaps[1] !== undefined) {\n // account for the column gap when using fractional sizes, e.g. 1/3\n if (minSize.indexOf('/') !== -1) min = \"calc(\" + min + \" - (\" + gaps[1] + \" * (1 - \" + minSize + \")))\";\n if (maxSize.indexOf('/') !== -1) max = \"calc(\" + max + \" - (\" + gaps[1] + \" * (1 - \" + maxSize + \")))\";\n }\n } else {\n min = normalizeSize(size, props);\n if (min.search(/px/) !== -1) minFill = true;\n max = '1fr';\n if (gaps[1] !== undefined) {\n // account for column gap with fractional sizes, e.g. 1/3\n if (size.indexOf('/') !== -1) min = \"calc(\" + min + \" - (\" + gaps[1] + \" * (1 - \" + size + \")))\";\n }\n }\n if (minFill) {\n // ensure we never go beyond the container width,\n // for mobile/narrow situations\n min = \"min(\" + min + \", 100%)\";\n }\n return \"minmax(\" + min + \", \" + max + \")\";\n};\nvar columnsStyle = function columnsStyle(props) {\n if (Array.isArray(props.columns)) {\n return css([\"grid-template-columns:\", \";\"], props.columns.map(function (s) {\n if (Array.isArray(s)) {\n return \"minmax(\" + normalizeSize(s[0], props) + \", \" + normalizeSize(s[1], props) + \")\";\n }\n return normalizeSize(s, props);\n }).join(' '));\n }\n if (typeof props.columns === 'object') {\n return css([\"grid-template-columns:repeat( \", \",\", \" );\"], getRepeatCount(props.columns.count), getRepeatSize(props.columns.size, props));\n }\n return css([\"grid-template-columns:repeat( auto-fill,\", \" );\"], getRepeatSize(props.columns, props));\n};\nvar rowsStyle = function rowsStyle(props) {\n if (Array.isArray(props.rowsProp)) {\n return css([\"grid-template-rows:\", \";\"], props.rowsProp.map(function (s) {\n if (Array.isArray(s)) {\n return \"minmax(\" + normalizeSize(s[0], props) + \", \" + normalizeSize(s[1], props) + \")\";\n }\n return normalizeSize(s, props);\n }).join(' '));\n }\n return css([\"grid-auto-rows:\", \";\"], props.theme.global.size[props.rowsProp]);\n};\nvar areasStyle = function areasStyle(props) {\n // translate areas objects into grid-template-areas syntax\n if (!Array.isArray(props.rowsProp) || !Array.isArray(props.columns)) {\n console.warn('Grid `areas` requires `rows` and `columns` to be arrays.');\n }\n if (Array.isArray(props.areas) && props.areas.every(function (area) {\n return Array.isArray(area);\n })) {\n return \"grid-template-areas: \" + props.areas.map(function (area) {\n return \"\\\"\" + area.join(' ') + \"\\\"\";\n }).join(' ') + \";\";\n }\n var cells = props.rowsProp.map(function () {\n return props.columns.map(function () {\n return '.';\n });\n });\n props.areas.forEach(function (area) {\n for (var row = area.start[1]; row <= area.end[1]; row += 1) {\n for (var column = area.start[0]; column <= area.end[0]; column += 1) {\n cells[row][column] = area.name;\n }\n }\n });\n return \"grid-template-areas: \" + cells.map(function (r) {\n return \"\\\"\" + r.join(' ') + \"\\\"\";\n }).join(' ') + \";\";\n};\nvar StyledGrid = styled.div.attrs(function (props) {\n return {\n 'aria-label': props.a11yTitleProp\n };\n}).withConfig({\n displayName: \"StyledGrid\",\n componentId: \"sc-1wofa1l-0\"\n})([\"display:grid;box-sizing:border-box;\", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return props.border && borderStyle(props.border, props.responsive, props.theme);\n}, function (props) {\n return fillStyle(props.fillContainer);\n}, function (props) {\n return props.align && alignStyle;\n}, function (props) {\n return props.alignContent && alignContentStyle;\n}, function (props) {\n return props.areas && areasStyle(props);\n}, function (props) {\n return props.columns && columnsStyle(props);\n}, function (props) {\n return props.gap && gapStyle(props);\n}, function (props) {\n return props.justify && justifyStyle;\n}, function (props) {\n return props.justifyContent && justifyContentStyle;\n}, function (props) {\n return props.pad && edgeStyle('padding', props.pad, props.responsive, props.theme.global.edgeSize.responsiveBreakpoint, props.theme);\n}, function (props) {\n return props.rowsProp && rowsStyle(props);\n}, function (props) {\n return props.heightProp && heightStyle(props.heightProp, props.theme);\n}, function (props) {\n return props.widthProp && widthStyle(props.widthProp, props.theme);\n}, function (props) {\n return props.theme.grid && props.theme.grid.extend;\n});\nStyledGrid.defaultProps = {};\nObject.setPrototypeOf(StyledGrid.defaultProps, defaultProps);\nexport { StyledGrid };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { alignPropType, genericProps, heightPropType, padPropType, widthPropType } from '../../utils/general-prop-types';\nvar fixedSizes = ['xsmall', 'small', 'medium', 'large', 'xlarge'];\nvar sizes = ['xsmall', 'small', 'medium', 'large', 'xlarge', 'full', '1/2', '1/3', '2/3', '1/4', '2/4', '3/4', 'flex', 'auto'];\nvar edgeSizes = ['xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'none'];\nvar BORDER_SHAPE = PropTypes.shape({\n color: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n dark: PropTypes.string,\n light: PropTypes.string\n })]),\n side: PropTypes.oneOf(['top', 'left', 'bottom', 'right', 'start', 'end', 'horizontal', 'vertical', 'all', 'between']),\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n style: PropTypes.oneOf(['solid', 'dashed', 'dotted', 'double', 'groove', 'ridge', 'inset', 'outset', 'hidden'])\n});\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n align: alignPropType,\n alignContent: PropTypes.oneOfType([PropTypes.oneOf(['around', 'baseline', 'between', 'center', 'evenly', 'end', 'start', 'stretch']), PropTypes.string]),\n areas: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n start: PropTypes.arrayOf(PropTypes.number),\n end: PropTypes.arrayOf(PropTypes.number)\n })), PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string))]),\n border: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top', 'left', 'bottom', 'right', 'start', 'end', 'horizontal', 'vertical', 'all']), BORDER_SHAPE, PropTypes.arrayOf(BORDER_SHAPE)]),\n columns: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(sizes), PropTypes.string])), PropTypes.oneOf(sizes), PropTypes.string])), PropTypes.oneOf(sizes), PropTypes.shape({\n count: PropTypes.oneOfType([PropTypes.oneOf(['fit', 'fill']), PropTypes.number]),\n size: PropTypes.oneOfType([PropTypes.oneOf(sizes), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(sizes), PropTypes.string])), PropTypes.string])\n }), PropTypes.string]),\n fill: PropTypes.oneOfType([PropTypes.oneOf(['horizontal', 'vertical']), PropTypes.bool]),\n gap: PropTypes.oneOfType([PropTypes.oneOf(edgeSizes), PropTypes.shape({\n row: PropTypes.oneOfType([PropTypes.oneOf(edgeSizes), PropTypes.string]),\n column: PropTypes.oneOfType([PropTypes.oneOf(edgeSizes), PropTypes.string])\n }), PropTypes.string]),\n height: heightPropType,\n justify: PropTypes.oneOf(['start', 'center', 'end', 'stretch']),\n justifyContent: PropTypes.oneOf(['start', 'center', 'end', 'between', 'around', 'stretch']),\n pad: padPropType,\n responsive: PropTypes.bool,\n rows: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(sizes), PropTypes.string])), PropTypes.oneOf(sizes), PropTypes.string])), PropTypes.oneOf(fixedSizes), PropTypes.string]),\n tag: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n as: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n width: widthPropType\n });\n}\nexport var GridPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"aria-label\", \"border\", \"fill\", \"height\", \"responsive\", \"rows\", \"tag\", \"as\", \"width\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef } from 'react';\nimport { StyledGrid } from './StyledGrid';\nimport { GridPropTypes } from './propTypes';\nvar Grid = /*#__PURE__*/forwardRef(function (props, ref) {\n var a11yTitle = props.a11yTitle,\n ariaLabel = props['aria-label'],\n border = props.border,\n fill = props.fill,\n height = props.height,\n _props$responsive = props.responsive,\n responsive = _props$responsive === void 0 ? true : _props$responsive,\n rows = props.rows,\n tag = props.tag,\n as = props.as,\n width = props.width,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n return /*#__PURE__*/React.createElement(StyledGrid, _extends({\n ref: ref,\n a11yTitleProp: ariaLabel || a11yTitle,\n as: !as && tag ? tag : as,\n border: border,\n fillContainer: fill,\n heightProp: height,\n responsive: responsive,\n rowsProp: rows,\n widthProp: width\n }, rest));\n});\nGrid.displayName = 'Grid';\nGrid.propTypes = GridPropTypes;\n\n// Defualting to true to support existing code that relies on\n// grid.available to create a fallback option\nGrid.available = true;\nexport { Grid };","import styled, { css } from 'styled-components';\nimport { baseStyle } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar fullStyle = function fullStyle(full) {\n if (full === 'min') return css([\"min-height:100vh;\"]);\n return css([\"width:100vw;height:100vh;overflow:auto;\"]);\n};\nvar StyledGrommet = styled.div.withConfig({\n displayName: \"StyledGrommet\",\n componentId: \"sc-19lkkz7-0\"\n})([\"\", \" \", \" \", \" \", \" \", \"\"], function (props) {\n return !props.plain && baseStyle;\n}, function (props) {\n return props.full && fullStyle(props.full);\n}, function (props) {\n return props.theme.global.font.face;\n}, function (props) {\n return props.theme.grommet.extend;\n}, function (props) {\n return props.cssVars && Object.keys(props.theme.global.colors).filter(function (k) {\n return typeof props.theme.global.colors[k] === 'string';\n }).map(function (k) {\n return \"--\" + k + \": \" + props.theme.global.colors[k] + \";\";\n }).join('\\n');\n});\nStyledGrommet.defaultProps = {};\nObject.setPrototypeOf(StyledGrommet.defaultProps, defaultProps);\nexport { StyledGrommet };","import PropTypes from 'prop-types';\nimport { backgroundDoc } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n background: backgroundDoc,\n dir: PropTypes.oneOf(['rtl']),\n full: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['min'])]),\n options: PropTypes.shape({\n layer: PropTypes.shape({\n singleId: PropTypes.bool\n })\n }),\n plain: PropTypes.bool,\n cssVars: PropTypes.bool,\n theme: PropTypes.object,\n themeMode: PropTypes.oneOf(['dark', 'light', 'auto']),\n userAgent: PropTypes.string,\n containerTarget: PropTypes.object,\n messages: PropTypes.shape({\n format: PropTypes.func,\n messages: PropTypes.shape({\n fileInput: PropTypes.shape({\n browse: PropTypes.string,\n dropPrompt: PropTypes.string,\n dropPromptMultiple: PropTypes.string,\n files: PropTypes.string,\n remove: PropTypes.string,\n removeAll: PropTypes.string\n }),\n form: PropTypes.shape({\n invalid: PropTypes.string,\n required: PropTypes.string\n }),\n menu: PropTypes.shape({\n openMenu: PropTypes.string,\n closeMenu: PropTypes.string\n }),\n rangeSelector: PropTypes.shape({\n lower: PropTypes.string,\n upper: PropTypes.string\n }),\n select: PropTypes.shape({\n multiple: PropTypes.string\n }),\n skipLinks: PropTypes.shape({\n skipTo: PropTypes.string\n }),\n tabs: PropTypes.shape({\n tabContents: PropTypes.string\n }),\n textInput: PropTypes.shape({\n enterSelect: PropTypes.string,\n suggestionsCount: PropTypes.string,\n suggestionsExist: PropTypes.string,\n suggestionIsOpen: PropTypes.string\n }),\n video: PropTypes.shape({\n closeMenu: PropTypes.string,\n fullScreen: PropTypes.string,\n progressMeter: PropTypes.string,\n scrubber: PropTypes.string,\n openMenu: PropTypes.string,\n pauseButton: PropTypes.string,\n playButton: PropTypes.string,\n volumeDown: PropTypes.string,\n volumeUp: PropTypes.string\n })\n }),\n onAnalytics: PropTypes.func\n })\n };\n}\nexport var GrommetPropTypes = PropType;","var _excluded = [\"children\", \"full\", \"containerTarget\", \"theme\", \"options\", \"messages\", \"onAnalytics\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useEffect, useMemo, useState } from 'react';\nimport { createGlobalStyle } from 'styled-components';\nimport { ContainerTargetContext, ResponsiveContext, ThemeContext } from '../../contexts';\nimport { deepMerge, backgroundIsDark, getBreakpoint, getDeviceBreakpoint, normalizeColor, useForwardedRef } from '../../utils';\nimport { base as baseTheme } from '../../themes';\nimport { StyledGrommet } from './StyledGrommet';\nimport { RootsContext } from '../../contexts/RootsContext';\nimport { OptionsContext } from '../../contexts/OptionsContext';\nimport { format as _format, MessageContext } from '../../contexts/MessageContext';\nimport defaultMessages from '../../languages/default.json';\nimport { GrommetPropTypes } from './propTypes';\nimport { AnalyticsProvider } from '../../contexts/AnalyticsContext';\nvar FullGlobalStyle = createGlobalStyle([\"body{margin:0;}\"]);\nvar deviceResponsive = function deviceResponsive(userAgent, theme) {\n // log('--deviceResponsive', userAgent, theme);\n /*\n * Regexes provided for mobile and tablet detection are meant to replace\n * a full-featured specific library due to contributing a considerable size\n * into the bundle.\n *\n * User agents found https://deviceatlas.com/blog/list-of-user-agent-strings\n */\n if (userAgent) {\n if (/(tablet|ipad|playbook|silk)|(android(?!.*mobile))/i.test(userAgent)) {\n return getDeviceBreakpoint('tablet', theme);\n }\n if (/Mobile|iPhone|Android/.test(userAgent)) {\n return getDeviceBreakpoint('phone', theme);\n }\n return getDeviceBreakpoint('computer', theme);\n }\n return undefined;\n};\nvar defaultOptions = {};\nvar Grommet = /*#__PURE__*/forwardRef(function (props, ref) {\n var children = props.children,\n full = props.full,\n _props$containerTarge = props.containerTarget,\n containerTarget = _props$containerTarge === void 0 ? typeof document === 'object' ? document.body : undefined : _props$containerTarge,\n themeProp = props.theme,\n _props$options = props.options,\n options = _props$options === void 0 ? defaultOptions : _props$options,\n messagesProp = props.messages,\n onAnalytics = props.onAnalytics,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var background = props.background,\n dir = props.dir,\n themeMode = props.themeMode,\n userAgent = props.userAgent;\n var _useState = useState(),\n stateResponsive = _useState[0],\n setResponsive = _useState[1];\n var _useState2 = useState([]),\n roots = _useState2[0],\n setRoots = _useState2[1];\n var theme = useMemo(function () {\n var nextTheme = deepMerge(baseTheme, themeProp || {});\n\n // if user provides specific menu alignment, we don't want\n // the defaults to be included at all (can cause issues with controlMirror)\n // override merged value with themeProp value\n if (themeProp && themeProp.menu && themeProp.menu.drop && themeProp.menu.drop.align) {\n delete nextTheme.menu.drop.align;\n nextTheme.menu.drop.align = themeProp.menu.drop.align;\n }\n var themeBackground = nextTheme.global.colors.background;\n nextTheme.dark = (themeMode || nextTheme.defaultMode) === 'dark';\n if (themeMode === 'auto' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n nextTheme.dark = true;\n }\n var color = normalizeColor(background || themeBackground, nextTheme);\n nextTheme.dark = backgroundIsDark(color, nextTheme);\n nextTheme.baseBackground = background || themeBackground;\n // This allows DataTable to intelligently set the background of a pinned\n // header or footer.\n nextTheme.background = nextTheme.baseBackground;\n if (dir) {\n nextTheme.dir = dir;\n }\n return nextTheme;\n }, [background, dir, themeMode, themeProp]);\n var messages = useMemo(function () {\n // combine the passed in messages, if any, with the default\n // messages and format function.\n var nextMessages = deepMerge(defaultMessages, (messagesProp == null ? void 0 : messagesProp.messages) || {});\n return {\n messages: nextMessages,\n format: function format(opts) {\n var message = (messagesProp == null ? void 0 : messagesProp.format) && messagesProp.format(opts);\n return typeof message !== 'undefined' ? message : _format(opts, nextMessages);\n }\n };\n }, [messagesProp]);\n useEffect(function () {\n var onResize = function onResize() {\n setResponsive(getBreakpoint(document.body.clientWidth, theme));\n };\n window.addEventListener('resize', onResize);\n onResize();\n return function () {\n window.removeEventListener('resize', onResize);\n };\n }, [theme]);\n var responsive = stateResponsive || deviceResponsive(userAgent, theme) || theme.global.deviceBreakpoints.tablet;\n var grommetRef = useForwardedRef(ref);\n useEffect(function () {\n if (grommetRef.current) setRoots([grommetRef.current]);\n }, [grommetRef]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, /*#__PURE__*/React.createElement(ResponsiveContext.Provider, {\n value: responsive\n }, /*#__PURE__*/React.createElement(RootsContext.Provider, {\n value: roots\n }, /*#__PURE__*/React.createElement(ContainerTargetContext.Provider, {\n value: containerTarget\n }, /*#__PURE__*/React.createElement(OptionsContext.Provider, {\n value: options\n }, /*#__PURE__*/React.createElement(MessageContext.Provider, {\n value: messages\n }, /*#__PURE__*/React.createElement(AnalyticsProvider, {\n onAnalytics: onAnalytics\n }, /*#__PURE__*/React.createElement(StyledGrommet, _extends({\n full: full\n }, rest, {\n ref: grommetRef\n }), children), full && /*#__PURE__*/React.createElement(FullGlobalStyle, null))))))));\n});\nGrommet.displayName = 'Grommet';\nGrommet.propTypes = GrommetPropTypes;\nexport { Grommet };","var _excluded = [\"sticky\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useContext, useEffect } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { findScrollParent, useForwardedRef } from '../../utils';\nimport { Box } from '../Box';\nvar Header = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _theme$header2, _theme$header2$sticky;\n var sticky = _ref.sticky,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext);\n var headerRef = useForwardedRef(ref);\n useEffect(function () {\n var scrollTop = 0;\n var updateScrollDir = function updateScrollDir() {\n // target is its scroll parent\n var target = findScrollParent(headerRef.current);\n var header = headerRef.current;\n if (target && sticky === 'scrollup') {\n var nextScrollTop = target === document ? window.pageYOffset : target.scrollTop;\n if (scrollTop - nextScrollTop <= 0) {\n header.style.top = \"-\" + header.getBoundingClientRect().height + \"px\";\n header.style.zIndex = '';\n } else if (scrollTop - nextScrollTop > 0) {\n var _theme$header, _theme$header$sticky;\n // ensure that header moves with the target\n header.style.position = 'sticky';\n header.style.top = '0px';\n header.style.zIndex = \"\" + ((_theme$header = theme.header) == null ? void 0 : (_theme$header$sticky = _theme$header.sticky) == null ? void 0 : _theme$header$sticky.zIndex);\n header.style.transition = 'top 0.6s';\n }\n scrollTop = nextScrollTop;\n }\n };\n if (sticky === 'scrollup') {\n updateScrollDir();\n window.addEventListener('resize', updateScrollDir);\n window.addEventListener('scroll', updateScrollDir, true);\n }\n return function () {\n if (sticky === 'scrollup') {\n window.removeEventListener('resize', updateScrollDir);\n window.removeEventListener('scroll', updateScrollDir, true);\n }\n };\n }, [headerRef, sticky, (_theme$header2 = theme.header) == null ? void 0 : (_theme$header2$sticky = _theme$header2.sticky) == null ? void 0 : _theme$header2$sticky.zIndex]);\n return /*#__PURE__*/React.createElement(Box, _extends({\n align: \"center\",\n as: \"header\",\n direction: \"row\",\n flex: false,\n justify: \"between\",\n gap: \"medium\",\n ref: headerRef\n }, rest));\n});\nHeader.displayName = 'Header';\nexport { Header };","import styled, { css } from 'styled-components';\nimport { breakpointStyle, genericStyles, normalizeColor, textAlignStyle } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar sizeStyle = function sizeStyle(props) {\n // size is a combination of the level and size properties\n var size = props.size || 'medium';\n var headingTheme = props.theme.heading;\n var levelStyle = headingTheme.level[props.level];\n if (levelStyle) {\n var data = levelStyle[size];\n var styles = [css([\"font-size:\", \";line-height:\", \";max-width:\", \";font-weight:\", \";overflow-wrap:\", \";\"], data ? data.size : size, data ? data.height : 'normal', props.fillProp && 'none' || data && data.maxWidth || levelStyle.medium.maxWidth, props.weight || levelStyle.font.weight || headingTheme.weight, props.overflowWrap)];\n if (props.responsive && headingTheme.responsiveBreakpoint) {\n var breakpoint = props.theme.global.breakpoints[headingTheme.responsiveBreakpoint];\n if (breakpoint) {\n var responsiveData = headingTheme.level[props.level + 1] ? headingTheme.level[props.level + 1][size] : headingTheme.level[props.level][size];\n if (responsiveData) {\n styles.push(breakpointStyle(breakpoint, \"\\n font-size: \" + responsiveData.size + \";\\n line-height: \" + responsiveData.height + \";\\n max-width: \" + (props.fillProp && 'none' || responsiveData.maxWidth) + \";\\n \"));\n }\n }\n }\n return styles;\n }\n console.warn(\"Heading level \" + props.level + \" is not defined in your theme.\");\n return '';\n};\nvar fontFamily = function fontFamily(props) {\n var _ref = props.theme.heading.level[props.level] || {},\n font = _ref.font;\n if (font && font.family) {\n return css([\"font-family:\", \";\"], font.family);\n }\n return props.theme.heading.font ? css([\"font-family:\", \";\"], props.theme.heading.font.family) : '';\n};\nvar truncateStyle = \"\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n\";\nvar colorStyle = css([\"color:\", \";\"], function (props) {\n return normalizeColor(props.colorProp || props.theme.heading.color, props.theme);\n});\nvar StyledHeading = styled.h1.withConfig({\n displayName: \"StyledHeading\",\n componentId: \"sc-1rdh4aw-0\"\n})([\"\", \" \", \" \", \" \", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return fontFamily(props);\n}, function (props) {\n return sizeStyle(props);\n}, function (props) {\n return props.textAlign && textAlignStyle;\n}, function (props) {\n return props.truncate && truncateStyle;\n}, function (props) {\n return (props.colorProp || props.theme.heading.color) && colorStyle;\n}, function (props) {\n return props.theme.heading && props.theme.heading.extend;\n});\nStyledHeading.defaultProps = {};\nObject.setPrototypeOf(StyledHeading.defaultProps, defaultProps);\nexport { StyledHeading };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { colorPropType, genericProps } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n color: colorPropType,\n fill: PropTypes.bool,\n level: PropTypes.oneOf([1, 2, 3, 4, 5, 6, '1', '2', '3', '4', '5', '6']),\n overflowWrap: PropTypes.oneOfType([PropTypes.oneOf(['normal', 'break-word', 'anywhere']), PropTypes.string]),\n responsive: PropTypes.bool,\n size: PropTypes.oneOfType([PropTypes.oneOf(['small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n textAlign: PropTypes.oneOf(['start', 'center', 'end', 'justify']),\n truncate: PropTypes.bool,\n weight: PropTypes.oneOfType([PropTypes.oneOf(['normal', 'bold', 'lighter', 'bolder']), PropTypes.number, PropTypes.string])\n });\n}\nexport var HeadingPropTypes = PropType;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef, useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { Skeleton } from '../Skeleton';\nvar HeadingSkeleton = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var as = _ref.as,\n level = _ref.level,\n size = _ref.size;\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var levelStyle = theme.heading.level[level];\n var data = levelStyle == null ? void 0 : levelStyle[size || 'medium'];\n var height = data ? data.height : size;\n return /*#__PURE__*/React.createElement(Skeleton, _extends({\n as: as,\n ref: ref,\n height: height\n }, theme.heading.skeleton));\n});\nHeadingSkeleton.displayName = 'HeadingSkeleton';\nHeadingSkeleton.defaultProps = {\n level: 1\n};\nexport { HeadingSkeleton };","var _excluded = [\"children\", \"color\", \"fill\", \"level\", \"overflowWrap\", \"weight\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useState } from 'react';\nimport { useLayoutEffect } from '../../utils/use-isomorphic-layout-effect';\nimport { StyledHeading } from './StyledHeading';\nimport { HeadingPropTypes } from './propTypes';\nimport { useForwardedRef } from '../../utils';\nimport { useSkeleton } from '../Skeleton';\nimport { HeadingSkeleton } from './HeadingSkeleton';\nvar Heading = /*#__PURE__*/forwardRef(function (_ref, ref // munged to avoid styled-components putting it in the DOM\n) {\n var children = _ref.children,\n color = _ref.color,\n fill = _ref.fill,\n level = _ref.level,\n overflowWrapProp = _ref.overflowWrap,\n weight = _ref.weight,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var headingRef = useForwardedRef(ref);\n var _useState = useState(overflowWrapProp || 'break-word'),\n overflowWrap = _useState[0],\n setOverflowWrap = _useState[1];\n var skeleton = useSkeleton();\n\n // handle overflowWrap of heading\n useLayoutEffect(function () {\n var updateOverflowWrap = function updateOverflowWrap() {\n var wrap;\n if (!overflowWrapProp && headingRef.current) {\n wrap = headingRef.current.scrollWidth > headingRef.current.offsetWidth ? 'anywhere' : 'break-word';\n setOverflowWrap(wrap);\n }\n };\n window.addEventListener('resize', updateOverflowWrap);\n updateOverflowWrap();\n return function () {\n return window.removeEventListener('resize', updateOverflowWrap);\n };\n }, [headingRef, overflowWrapProp]);\n var content = children;\n if (skeleton) {\n content = /*#__PURE__*/React.createElement(HeadingSkeleton, _extends({\n level: level,\n fill: fill\n }, rest));\n }\n return (\n /*#__PURE__*/\n // enforce level to be a number\n React.createElement(StyledHeading, _extends({\n as: \"h\" + level,\n colorProp: color,\n fillProp: fill,\n level: +level,\n overflowWrap: overflowWrap,\n weight: weight\n }, rest, {\n ref: headingRef\n }), content)\n );\n});\nHeading.displayName = 'Heading';\nHeading.defaultProps = {\n level: 1,\n responsive: true\n};\nHeading.propTypes = HeadingPropTypes;\nexport { Heading };","import styled, { css } from 'styled-components';\nimport { fillStyle, genericStyles } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar FIT_MAP = {\n cover: 'cover',\n contain: 'contain'\n};\nvar fitStyle = css([\"flex:1 1;overflow:hidden;object-fit:\", \";\"], function (props) {\n return FIT_MAP[props.fit];\n});\nvar StyledImage = styled.img.withConfig({\n displayName: \"StyledImage\",\n componentId: \"sc-ey4zx9-0\"\n})([\"\", \" \", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return props.fit && fitStyle;\n}, function (props) {\n return props.fillProp && fillStyle(props.fillProp);\n}, function (props) {\n return props.theme.image && props.theme.image.extend;\n}, function (props) {\n return props.opacityProp && \"opacity: \" + (props.opacityProp === true ? props.theme.global.opacity.medium : props.theme.global.opacity[props.opacityProp] || props.opacityProp) + \";\\n \";\n});\nStyledImage.defaultProps = {};\nObject.setPrototypeOf(StyledImage.defaultProps, defaultProps);\nexport { StyledImage };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { genericProps } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n fill: PropTypes.oneOfType([PropTypes.oneOf(['horizontal', 'vertical']), PropTypes.bool]),\n fit: PropTypes.oneOf(['cover', 'contain']),\n fallback: PropTypes.string,\n opacity: PropTypes.oneOfType([PropTypes.oneOf(['weak', 'medium', 'strong']), PropTypes.string, PropTypes.bool])\n });\n}\nexport var ImagePropTypes = PropType;","var _excluded = [\"a11yTitle\", \"fallback\", \"onError\", \"onLoad\", \"opacity\", \"fill\", \"src\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useState } from 'react';\nimport { StyledImage } from './StyledImage';\nimport { ImagePropTypes } from './propTypes';\nvar Image = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var a11yTitle = _ref.a11yTitle,\n fallback = _ref.fallback,\n onError = _ref.onError,\n onLoad = _ref.onLoad,\n opacity = _ref.opacity,\n fill = _ref.fill,\n src = _ref.src,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var _useState = useState(false),\n isFallbackInUse = _useState[0],\n setFallbackInUse = _useState[1];\n var handleError = function handleError(event) {\n if (onError) onError(event);\n if (!isFallbackInUse && fallback && fallback !== '') {\n // eslint-disable-next-line no-param-reassign\n event.target.src = fallback;\n setFallbackInUse(true);\n }\n };\n var handleOnLoad = function handleOnLoad(event) {\n if (onLoad) onLoad(event);\n setFallbackInUse(false);\n };\n var extraProps = {\n onError: (onError || fallback) && handleError,\n onLoad: handleOnLoad\n };\n return /*#__PURE__*/React.createElement(StyledImage, _extends({\n \"aria-label\": a11yTitle\n }, rest, extraProps, {\n ref: ref,\n opacityProp: opacity,\n fillProp: fill,\n src: src === undefined ? '' : src\n }));\n});\nImage.displayName = 'Image';\nImage.propTypes = ImagePropTypes;\nexport { Image };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n children: PropTypes.func,\n items: PropTypes.arrayOf(PropTypes.any),\n onMore: PropTypes.func,\n renderMarker: PropTypes.func,\n replace: PropTypes.bool,\n show: PropTypes.number,\n step: PropTypes.number\n };\n}\nexport var InfiniteScrollPropTypes = PropType;","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useLayoutEffect } from '../../utils/use-isomorphic-layout-effect';\nimport { findScrollParent, findScrollParents, isNodeAfterScroll, isNodeBeforeScroll } from '../../utils';\nimport { Box } from '../Box';\nimport { InfiniteScrollPropTypes } from './propTypes';\nvar calculateLastPageBound = function calculateLastPageBound(show, step) {\n return show ? Math.floor((show + step) / step) - 1 : 0;\n};\nvar InfiniteScroll = function InfiniteScroll(_ref) {\n var children = _ref.children,\n _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items,\n onMore = _ref.onMore,\n renderMarker = _ref.renderMarker,\n replace = _ref.replace,\n show = _ref.show,\n _ref$step = _ref.step,\n step = _ref$step === void 0 ? 50 : _ref$step;\n // item index to be made visible initially\n var _useState = useState(),\n scrollShow = _useState[0],\n setScrollShow = _useState[1];\n\n // the last page we have items for\n var lastPage = useMemo(function () {\n return Math.max(0, Math.ceil(items.length / step) - 1);\n }, [items.length, step]);\n\n // the pages we are rendering\n var _useState2 = useState([0, calculateLastPageBound(show, step)]),\n renderPageBounds = _useState2[0],\n setRenderPageBounds = _useState2[1];\n\n // the heights of the pages, approximated after we render the first page\n // and then updated for pages that have rendered\n var _useState3 = useState([]),\n pageHeights = _useState3[0],\n setPageHeights = _useState3[1];\n\n // what we're waiting for onMore to give us\n var _useState4 = useState(0),\n pendingLength = _useState4[0],\n setPendingLength = _useState4[1];\n var aboveMarkerRef = useRef(); // only when replacing\n var belowMarkerRef = useRef();\n\n // scroll and resize handling\n useEffect(function () {\n var scrollParents;\n var evaluate = function evaluate() {\n if (!scrollParents) return;\n var scrollParent = scrollParents[0];\n\n // Determine the scroll position of the scroll container\n var top;\n var height;\n if (scrollParent === document) {\n top = document.documentElement.scrollTop || document.body.scrollTop;\n height = window.innerHeight;\n } else {\n top = scrollParent.scrollTop;\n var rect = scrollParent.getBoundingClientRect();\n height = rect.height;\n }\n var offset = height / 4; // so we pre-load when the user scrolls slowly\n\n // Use the pageHeights to determine what pages we should render based\n // on the current scroll window.\n var nextBeginPage = 0;\n var index = 0;\n var pagesHeight = pageHeights[index] || 0;\n while (pageHeights[index + 1] && pagesHeight < top - offset) {\n index += 1;\n nextBeginPage += 1;\n pagesHeight += pageHeights[index];\n }\n var nextEndPage = nextBeginPage;\n while (pageHeights[index] !== undefined && pagesHeight < top + height + offset) {\n index += 1;\n nextEndPage += 1;\n // when we haven't rendered the nextEndPage and we aren't replacing,\n // we might not have a height for it yet\n pagesHeight += pageHeights[index] || 0;\n }\n if (!replace) {\n // when not replacing, never shrink bounds\n nextBeginPage = 0;\n nextEndPage = Math.max(renderPageBounds[1], nextEndPage);\n }\n if (show) {\n // ensure we try to render any show page\n var showPage = calculateLastPageBound(show, step);\n nextBeginPage = Math.min(showPage, nextBeginPage);\n nextEndPage = Math.max(showPage, nextEndPage);\n }\n if (nextBeginPage !== renderPageBounds[0] || nextEndPage !== renderPageBounds[1]) {\n setRenderPageBounds([nextBeginPage, nextEndPage]);\n }\n };\n var timer;\n var debounce = function debounce() {\n clearTimeout(timer);\n timer = setTimeout(evaluate, 10);\n };\n\n // might not be there yet or might have already rendered everything\n if (belowMarkerRef.current) {\n scrollParents = findScrollParents(belowMarkerRef.current);\n scrollParents.forEach(function (sp) {\n return sp.addEventListener('scroll', debounce);\n });\n }\n window.addEventListener('resize', debounce);\n evaluate();\n return function () {\n if (scrollParents) {\n scrollParents.forEach(function (sp) {\n return sp.removeEventListener('scroll', debounce);\n });\n }\n window.removeEventListener('resize', debounce);\n clearTimeout(timer);\n };\n }, [pageHeights, renderPageBounds, replace, show, step]);\n\n // check if we need to ask for more\n useEffect(function () {\n if (onMore && renderPageBounds[1] === lastPage && items.length >= pendingLength && items.length > 0) {\n // remember we've asked for more, so we don't keep asking if it takes\n // a while\n setPendingLength(items.length + 1);\n onMore();\n }\n }, [items.length, lastPage, onMore, pendingLength, renderPageBounds, step]);\n useEffect(function () {\n if (items.length === 0 && lastPage === 0 && pendingLength !== 0) {\n setPageHeights([]);\n setPendingLength(0);\n setRenderPageBounds([0, calculateLastPageBound(show, step)]);\n }\n }, [lastPage, pendingLength, show, step, items.length]);\n\n // scroll to any 'show'\n useLayoutEffect(function () {\n // ride out any animation delays, 100ms empirically measured\n var timer = setTimeout(function () {\n if (show && belowMarkerRef.current && show !== scrollShow) {\n // calculate show index based on beginPage\n var showIndex = show - renderPageBounds[0] * step + (renderPageBounds[0] ? 1 : 0);\n var showNode = belowMarkerRef.current.parentNode.children.item(showIndex);\n if (showNode) {\n var scrollParent = findScrollParent(showNode);\n if (isNodeBeforeScroll(showNode, scrollParent)) {\n showNode.scrollIntoView(true);\n } else if (isNodeAfterScroll(showNode, scrollParent)) {\n showNode.scrollIntoView(false);\n }\n // clean up after having shown\n setScrollShow(show);\n }\n }\n }, 100);\n return function () {\n return clearTimeout(timer);\n };\n // Omitting scrollShow as a dependency due to concern that setScrollShow\n // is being called within the timer. If left included, re-renders and other\n // dependency values could change in an unpredictable manner during timer\n // and potentially result in an infinite loop.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [renderPageBounds, show, step]);\n\n // calculate and keep track of page heights\n useLayoutEffect(function () {\n // if don't have a belowMarker, we must have rendered everything already\n if (!belowMarkerRef.current) return;\n\n // calculate page heights for rendered pages\n var rendered = belowMarkerRef.current.parentNode.children;\n // ensure we've rendered the state we have\n // above? + items in rendered pages + below === rendered DOM elements length\n if ((aboveMarkerRef.current ? 1 : 0) + (renderPageBounds[1] - renderPageBounds[0] + 1) * step + 1 === rendered.length) {\n var nextPageHeights;\n\n // step through each page\n var i = renderPageBounds[0];\n var lastBottom;\n while (i <= renderPageBounds[1]) {\n var topIndex = (aboveMarkerRef.current ? 1 : 0) + (i - renderPageBounds[0]) * step;\n var bottomIndex = Math.min(topIndex + step - 1, rendered.length - 1);\n // we use lastBottom for top to ensure grid layouts work\n var top = lastBottom !== undefined ? lastBottom : rendered.item(topIndex).getBoundingClientRect().top;\n var _rendered$item$getBou = rendered.item(bottomIndex).getBoundingClientRect(),\n bottom = _rendered$item$getBou.bottom;\n var height = bottom - top;\n if (bottom && (!pageHeights || pageHeights[i] !== height)) {\n if (!nextPageHeights) nextPageHeights = [].concat(pageHeights || []);\n nextPageHeights[i] = height;\n }\n lastBottom = bottom;\n i += 1;\n }\n\n // estimate page heights for pages we haven't rendered yet\n while (replace && i <= lastPage) {\n if (!pageHeights[i] && pageHeights[i] !== pageHeights[0]) {\n if (!nextPageHeights) nextPageHeights = [].concat(pageHeights || []);\n var _nextPageHeights = nextPageHeights;\n nextPageHeights[i] = _nextPageHeights[0];\n }\n i += 1;\n }\n if (nextPageHeights) setPageHeights(nextPageHeights);\n }\n }, [lastPage, pageHeights, renderPageBounds, replace, step]);\n\n // calculate the height above the first rendered page using the pageHeights\n var aboveHeight = useMemo(function () {\n if (!replace) return 0;\n var height = 0;\n var i = 0;\n while (i < renderPageBounds[0]) {\n height += pageHeights[i] || 0;\n i += 1;\n }\n return height;\n }, [pageHeights, renderPageBounds, replace]);\n\n // calculate the height below the last rendered page using the pageHeights\n var belowHeight = useMemo(function () {\n if (!replace) return 0;\n var height = 0;\n var i = renderPageBounds[1] + 1;\n while (i <= lastPage) {\n height += pageHeights[i] || 0;\n i += 1;\n }\n return height;\n }, [lastPage, pageHeights, renderPageBounds, replace]);\n var firstIndex = renderPageBounds[0] * step;\n var lastIndex = Math.min((renderPageBounds[1] + 1) * step, items.length) - 1;\n var result = [];\n if (aboveHeight) {\n var marker = /*#__PURE__*/React.createElement(Box, {\n key: \"above\",\n ref: aboveMarkerRef,\n flex: false,\n height: aboveHeight + \"px\"\n });\n if (renderMarker) {\n // need to give it a key\n marker = /*#__PURE__*/React.cloneElement(renderMarker(marker), {\n key: 'above'\n });\n }\n result.push(marker);\n }\n items.slice(firstIndex, lastIndex + 1).forEach(function (item, index) {\n var itemsIndex = firstIndex + index;\n var child = children(item, itemsIndex);\n result.push(child);\n });\n if (replace || renderPageBounds[1] < lastPage || onMore) {\n var _marker = /*#__PURE__*/React.createElement(Box, {\n key: \"below\",\n ref: !renderMarker && belowMarkerRef || undefined,\n flex: false,\n height: (belowHeight || 0) + \"px\"\n });\n if (renderMarker) {\n // need to give it a key\n var renderedMarker = renderMarker(_marker);\n _marker = /*#__PURE__*/React.cloneElement(renderedMarker, {\n key: 'below',\n // We need to make sure our belowMarkerRef is tied to a component\n // that has the same parent as the items being rendered. This is so\n // we can use belowMarkerRef.current.parentNode.children to\n // get a reference to the items in the DOM for calculating pageHeights.\n //\n // Since the caller might have included a ref in what their\n // renderMarker returns, we have to take care of both refs.\n // https://github.com/facebook/react/issues/8873#issuecomment-489579878\n ref: function ref(node) {\n // Keep your own reference\n belowMarkerRef.current = node;\n // Call the original ref, if any\n var ref = renderedMarker.ref;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref !== null) {\n ref.current = node;\n }\n }\n });\n }\n result.push(_marker);\n }\n return result;\n};\nInfiniteScroll.propTypes = InfiniteScrollPropTypes;\nexport { InfiniteScroll };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n target: PropTypes.oneOf(['component', 'document']),\n onBackspace: PropTypes.func,\n onComma: PropTypes.func,\n onDown: PropTypes.func,\n onEnter: PropTypes.func,\n onEsc: PropTypes.func,\n onKeyDown: PropTypes.func,\n onLeft: PropTypes.func,\n onRight: PropTypes.func,\n onShift: PropTypes.func,\n onSpace: PropTypes.func,\n onTab: PropTypes.func,\n onUp: PropTypes.func\n };\n}\nexport var KeyboardPropTypes = PropType;","var _excluded = [\"capture\", \"target\", \"children\", \"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { Children, cloneElement, useCallback, useEffect } from 'react';\nimport { KeyboardPropTypes } from './propTypes';\nvar KEYS = {\n 8: 'onBackspace',\n 9: 'onTab',\n 13: 'onEnter',\n 27: 'onEsc',\n 32: 'onSpace',\n 37: 'onLeft',\n 38: 'onUp',\n 39: 'onRight',\n 40: 'onDown',\n 188: 'onComma',\n 16: 'onShift'\n};\nvar Keyboard = function Keyboard(_ref) {\n var capture = _ref.capture,\n target = _ref.target,\n children = _ref.children,\n onKeyDown = _ref.onKeyDown,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var onKeyDownHandler = useCallback(function (event) {\n var key = event.keyCode ? event.keyCode : event.which;\n var callbackName = KEYS[key];\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n if (callbackName && restProps[callbackName]) {\n restProps[callbackName].apply(restProps, [event].concat(rest));\n }\n if (onKeyDown) {\n onKeyDown.apply(void 0, [event].concat(rest));\n }\n }, [onKeyDown, restProps]);\n useEffect(function () {\n if (target === 'document') {\n document.addEventListener('keydown', onKeyDownHandler, capture);\n }\n return function () {\n if (target === 'document') {\n document.removeEventListener('keydown', onKeyDownHandler, capture);\n }\n };\n }, [capture, onKeyDownHandler, target]);\n return target === 'document' ? children : /*#__PURE__*/cloneElement(Children.only(children), {\n onKeyDown: onKeyDownHandler\n });\n};\nKeyboard.propTypes = KeyboardPropTypes;\nexport { Keyboard };","import styled, { css, keyframes } from 'styled-components';\nimport { baseStyle, backgroundStyle, breakpointStyle, parseMetricToNum } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar hiddenPositionStyle = css([\"left:-100%;right:100%;z-index:-1;position:fixed;\"]);\nvar desktopLayerStyle = \"\\n position: fixed;\\n top: 0px;\\n left: 0px;\\n right: 0px;\\n bottom: 0px;\\n\";\nvar responsiveLayerStyle = \"\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n min-height: 100vh;\\n\";\nvar StyledLayer = styled.div.withConfig({\n displayName: \"StyledLayer\",\n componentId: \"sc-rmtehz-0\"\n})([\"\", \" background:transparent;position:relative;z-index:\", \";pointer-events:none;outline:none;\", \" \", \";\"], baseStyle, function (props) {\n return props.theme.layer.zIndex;\n}, function (props) {\n if (props.position === 'hidden') {\n return hiddenPositionStyle;\n }\n var styles = [];\n styles.push(desktopLayerStyle);\n if (props.responsive && props.theme.layer.responsiveBreakpoint && !props.layerTarget) {\n var breakpoint = props.theme.global.breakpoints[props.theme.layer.responsiveBreakpoint];\n styles.push(breakpointStyle(breakpoint, responsiveLayerStyle));\n }\n return styles;\n}, function (props) {\n return props.theme.layer && props.theme.layer.extend;\n});\nStyledLayer.defaultProps = {};\nObject.setPrototypeOf(StyledLayer.defaultProps, defaultProps);\nvar StyledOverlay = styled.div.withConfig({\n displayName: \"StyledLayer__StyledOverlay\",\n componentId: \"sc-rmtehz-1\"\n})([\"position:absolute;\", \" top:0px;left:0px;right:0px;bottom:0px;\", \" \", \" pointer-events:all;will-change:transform;\"], function (props) {\n if (props.responsive && props.theme.layer.responsiveBreakpoint) {\n var breakpoint = props.theme.global.breakpoints[props.theme.layer.responsiveBreakpoint];\n return breakpointStyle(breakpoint, 'position: relative;');\n }\n return '';\n}, function (props) {\n return props.theme.layer.overlay.backdropFilter && \"backdrop-filter: \" + props.theme.layer.overlay.backdropFilter + \";\";\n}, function (props) {\n return !props.plain && props.theme.layer.overlay.background && backgroundStyle(props.theme.layer.overlay.background, props.theme);\n});\nvar getMargin = function getMargin(margin, theme, position) {\n var axis = position.indexOf('top') !== -1 || position.indexOf('bottom') !== -1 ? 'vertical' : 'horizontal';\n var marginValue = margin[position] || margin[axis] || margin;\n var marginApplied = theme.global.edgeSize[marginValue] || marginValue;\n var marginInTheme = !!theme.global.edgeSize[marginValue];\n return !marginInTheme && typeof marginValue !== 'string' ? 0 : parseMetricToNum(marginApplied);\n};\nvar getBounds = function getBounds(bounds, margin, theme, position) {\n if (position === void 0) {\n position = undefined;\n }\n if (position) {\n return bounds[position] + getMargin(margin, theme, position);\n }\n return {\n bottom: bounds.bottom + getMargin(margin, theme, 'bottom'),\n // 'bottom-left': getMargin(margin, theme, 'bottom-left'),\n // 'bottom-right': getMargin(margin, theme, 'bottom-right'),\n end: bounds.right + getMargin(margin, theme, 'end'),\n left: bounds.left + getMargin(margin, theme, 'left'),\n right: bounds.right + getMargin(margin, theme, 'right'),\n start: bounds.left + getMargin(margin, theme, 'start'),\n top: bounds.top + getMargin(margin, theme, 'top')\n // 'top-right': getMargin(margin, theme, 'top-right'),\n // 'top-left': getMargin(margin, theme, 'top-left'),\n };\n};\n\nvar KEYFRAMES = {\n center: {\n vertical: keyframes([\"0%{transform:translateX(-50%) scale(0.8);}100%{transform:translateX(-50%) scale(1);}\"]),\n horizontal: keyframes([\"0%{transform:translateY(-50%) scale(0.8);}100%{transform:translateY(-50) scale(1);}\"]),\n \"true\": keyframes([\"0%{transform:scale(0.8);}100%{transform:scale(1);}\"]),\n \"false\": keyframes([\"0%{transform:translate(-50%,-50%) scale(0.8);}100%{transform:translate(-50%,-50%) scale(1);}\"])\n },\n top: {\n vertical: keyframes([\"0%{transform:translate(-50%,-100%);}100%{transform:translate(-50%,0);}\"]),\n horizontal: keyframes([\"0%{transform:translateY(-100%);}100%{transform:translateY(0);}\"]),\n \"true\": keyframes([\"0%{transform:translateY(-100%);}100%{transform:translateY(0);}\"]),\n \"false\": keyframes([\"0%{transform:translate(-50%,-100%);}100%{transform:translate(-50%,0);}\"])\n },\n bottom: {\n vertical: keyframes([\"0%{transform:translate(-50%,100%);}100%{transform:translate(-50%,0);}\"]),\n horizontal: keyframes([\"0%{transform:translateY(100%);}100%{transform:translateY(0);}\"]),\n \"true\": keyframes([\"0%{transform:translateY(100%);}100%{transform:translateY(0);}\"]),\n \"false\": keyframes([\"0%{transform:translate(-50%,100%);}100%{transform:translate(-50%,0);}\"])\n },\n left: {\n vertical: keyframes([\"0%{transform:translateX(-100%);}100%{transform:translateX(0);}\"]),\n horizontal: keyframes([\"0%{transform:translate(-100%,-50%);}100%{transform:translate(0,-50%);}\"]),\n \"true\": keyframes([\"0%{transform:translateX(-100%);}100%{transform:translateX(0);}\"]),\n \"false\": keyframes([\"0%{transform:translate(-100%,-50%);}100%{transform:translate(0,-50%);}\"])\n },\n right: {\n vertical: keyframes([\"0%{transform:translateX(100%);}100%{transform:translateX(0);}\"]),\n horizontal: keyframes([\"0%{transform:translate(100%,-50%);}100%{transform:translate(0,-50%);}\"]),\n \"true\": keyframes([\"0%{transform:translateX(100%);}100%{transform:translateX(0);}\"]),\n \"false\": keyframes([\"0%{transform:translate(100%,-50%);}100%{transform:translate(0,-50%);}\"])\n },\n start: {\n vertical: keyframes([\"0%{transform:translateX(-100%);}100%{transform:translateX(0);}\"]),\n horizontal: keyframes([\"0%{transform:translate(-100%,-50%);}100%{transform:translate(0,-50%);}\"]),\n \"true\": keyframes([\"0%{transform:translateX(-100%);}100%{transform:translateX(0);}\"]),\n \"false\": keyframes([\"0%{transform:translate(-100%,-50%);}100%{transform:translate(0,-50%);}\"])\n },\n end: {\n vertical: keyframes([\"0%{transform:translateX(100%);}100%{transform:translateX(0);}\"]),\n horizontal: keyframes([\"0%{transform:translate(100%,-50%);}100%{transform:translate(0,-50%);}\"]),\n \"true\": keyframes([\"0%{transform:translateX(100%);}100%{transform:translateX(0);}\"]),\n \"false\": keyframes([\"0%{transform:translate(100%,-50%);}100%{transform:translate(0,-50%);}\"])\n }\n};\nvar animationDuration = 200;\nvar getAnimationStyle = function getAnimationStyle(props, position, full) {\n var animation = props.animation !== undefined ? props.animation : props.animate;\n if (animation === undefined) animation = 'slide';\n var keys;\n if (animation === 'slide' || animation === true) {\n keys = KEYFRAMES[position][full];\n } else if (animation === 'fadeIn') {\n keys = keyframes([\"0%{opacity:0}100%{opacity:1}\"]);\n }\n return keys ? css([\"animation:\", \" \", \"s ease-in-out forwards;\"], keys, animationDuration / 1000.0) : '';\n};\n\n// POSITIONS combines 'position', 'full', and 'margin' properties, since\n// they are all interdependent.\n// Basically, non-full axes combine 50% position with -50% translation.\n// full axes pin to the window edges offset by any margin.\n// The keyframe animations are included as they are done via translations\n// as well so they must take into account the non-animated positioning.\nvar POSITIONS = {\n center: {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:50%;transform:translateX(-50%);\", \"\"], bounds.top, bounds.bottom, function (props) {\n return getAnimationStyle(props, 'center', 'vertical');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;top:50%;transform:translateY(-50%);\", \"\"], bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'center', 'horizontal');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;\", \"\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'center', 'true');\n });\n },\n \"false\": function _false() {\n return css([\"top:50%;left:50%;transform:translate(-50%,-50%);\", \"\"], function (props) {\n return getAnimationStyle(props, 'center', 'false');\n });\n }\n },\n top: {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:50%;transform:translate(-50%,0%);\", \"\"], bounds.top, bounds.bottom, function (props) {\n return getAnimationStyle(props, 'top', 'vertical');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;top:\", \"px;transform:translateY(0);\", \"\"], bounds.left, bounds.right, bounds.top, function (props) {\n return getAnimationStyle(props, 'top', 'horizontal');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;transform:translateY(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"top:\", \"px;left:50%;transform:translate(-50%,0);\", \"\"], bounds.top, function (props) {\n return getAnimationStyle(props, 'top', 'false');\n });\n }\n },\n bottom: {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:50%;transform:translate(-50%,0);\", \"\"], bounds.top, bounds.bottom, function (props) {\n return getAnimationStyle(props, 'bottom', 'vertical');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;bottom:\", \"px;transform:translateY(0);\", \"\"], bounds.left, bounds.top, bounds.bottom, function (props) {\n return getAnimationStyle(props, 'bottom', 'horizontal');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;transform:translateY(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"bottom:\", \"px;left:50%;transform:translate(-50%,0);\", \"\"], bounds.bottom, function (props) {\n return getAnimationStyle(props, 'bottom', 'false');\n });\n }\n },\n left: {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, function (props) {\n return getAnimationStyle(props, 'left', 'vertical');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;top:50%;transform:translate(0,-50%);\", \"\"], bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'left', 'horizontal');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'left', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"left:\", \"px;top:50%;transform:translate(0,-50%);\", \"\"], bounds.left, function (props) {\n return getAnimationStyle(props, 'left', 'false');\n });\n }\n },\n right: {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;right:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.right, function (props) {\n return getAnimationStyle(props, 'right', 'vertical');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;top:50%;transform:translate(0,-50%);\", \"\"], bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'right', 'horizontal');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'right', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"right:\", \"px;top:50%;transform:translate(0,-50%);\", \"\"], bounds.right, function (props) {\n return getAnimationStyle(props, 'right', 'false');\n });\n }\n },\n start: {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;inset-inline-start:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.start, function (props) {\n return getAnimationStyle(props, 'start', 'vertical');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"inset-inline-start:\", \"px;inset-inline-end:\", \"px;top:50%;transform:translate(0,-50%);\", \"\"], bounds.start, bounds.end, function (props) {\n return getAnimationStyle(props, 'start', 'horizontal');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;inset-inline-start:\", \"px;inset-inline-end:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.start, bounds.end, function (props) {\n return getAnimationStyle(props, 'start', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"inset-inline-start:\", \"px;top:50%;transform:translate(0,-50%);\", \"\"], bounds.start, function (props) {\n return getAnimationStyle(props, 'start', 'false');\n });\n }\n },\n end: {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;inset-inline-end:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.end, function (props) {\n return getAnimationStyle(props, 'end', 'vertical');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"inset-inline-start:\", \"px;inset-inline-end:\", \"px;top:50%;transform:translate(0,-50%);\", \"\"], bounds.start, bounds.end, function (props) {\n return getAnimationStyle(props, 'end', 'horizontal');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;inset-inline-start:\", \"px;inset-inline-end:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.start, bounds.end, function (props) {\n return getAnimationStyle(props, 'end', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"inset-inline-end:\", \"px;top:50%;transform:translate(0,-50%);\", \"\"], bounds.end, function (props) {\n return getAnimationStyle(props, 'end', 'false');\n });\n }\n },\n 'top-right': {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;right:\", \"px;transform:translateX(0);\", \";\"], bounds.top, bounds.bottom, bounds.right, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;top:0;transform:translateX(0);\", \";\"], bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;transform:translateX(0);\", \";\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"top:\", \"px;right:\", \"px;transform:translateY(0);\", \";\"], bounds.top, bounds.right, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n }\n },\n 'top-left': {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;top:0;transform:translateX(0);\", \"\"], bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"top:\", \"px;left:\", \"px;transform:translateY(0);\", \"\"], bounds.top, bounds.left, function (props) {\n return getAnimationStyle(props, 'top', 'true');\n });\n }\n },\n 'bottom-right': {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;right:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.right, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;bottom:\", \"px;transform:translateY(0);\", \"\"], bounds.left, bounds.right, bounds.bottom, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"bottom:\", \"px;right:\", \"px;transform:translateY(0);\", \"\"], bounds.bottom, bounds.right, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n }\n },\n 'bottom-left': {\n vertical: function vertical(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n },\n horizontal: function horizontal(bounds) {\n return css([\"left:\", \"px;right:\", \"px;bottom:\", \"px;transform:translateY(0);\", \"\"], bounds.left, bounds.right, bounds.bottom, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n },\n \"true\": function _true(bounds) {\n return css([\"top:\", \"px;bottom:\", \"px;left:\", \"px;right:\", \"px;transform:translateX(0);\", \"\"], bounds.top, bounds.bottom, bounds.left, bounds.right, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n },\n \"false\": function _false(bounds) {\n return css([\"bottom:\", \"px;left:\", \"px;transform:translateY(0);\", \"\"], bounds.bottom, bounds.left, function (props) {\n return getAnimationStyle(props, 'bottom', 'true');\n });\n }\n }\n};\nvar roundStyle = function roundStyle(data, theme, position, margin) {\n var styles = [];\n var size = data === true ? 'medium' : data;\n var round = theme.global.edgeSize[size] || size;\n // if user provides CSS string such as '50px 12px', apply that always\n var customCSS = round.split(' ').length > 1;\n if (margin === 'none' && !customCSS && theme.layer.border.intelligentRounding === true) {\n if (position === 'bottom') {\n styles.push(css([\"border-radius:\", \" \", \" 0 0;\"], round, round));\n } else if (position === 'bottom-left') {\n styles.push(css([\"border-radius:0 \", \" 0 0;\"], round));\n } else if (position === 'bottom-right') {\n styles.push(css([\"border-radius:\", \" 0 0 0;\"], round));\n } else if (position === 'end') {\n // only works on Firefox, what should be fallback?\n styles.push(css([\"border-start-start-radius:\", \";border-end-start-radius:\", \";\"], round, round));\n } else if (position === 'left') {\n styles.push(css([\"border-radius:0 \", \" \", \" 0;\"], round, round));\n } else if (position === 'right') {\n styles.push(css([\"border-radius:\", \" 0 0 \", \";\"], round, round));\n } else if (position === 'start') {\n // only works on Firefox, what should be fallback?\n styles.push(css([\"border-end-end-radius:\", \";border-start-end-radius:\", \";\"], round, round));\n } else if (position === 'top') {\n styles.push(css([\"border-radius:0 0 \", \" \", \";\"], round, round));\n } else if (position === 'top-left') {\n styles.push(css([\"border-radius:0 0 \", \" 0;\"], round));\n } else if (position === 'top-right') {\n styles.push(css([\"border-radius:0 0 0 \", \";\"], round));\n } else {\n // position is center, apply uniform border-radius\n styles.push(css([\"border-radius:\", \";\"], round));\n }\n } else {\n // if there's a margin apply uniform border-radius, or if user has supplied\n // a complex CSS string such as \"50px 20px\" apply this\n styles.push(css([\"border-radius:\", \";\"], round));\n }\n return styles;\n};\nvar bounds = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar desktopContainerStyle = css([\"\", \" max-height:\", \";max-width:\", \";\", \";\", \";\"], function (props) {\n if (!props.modal && props.position === 'hidden') {\n return hiddenPositionStyle;\n }\n return css([\"position:\", \";\"], props.modal || props.layerTarget ? 'absolute' : 'fixed');\n}, function (props) {\n return \"calc(100% - \" + getBounds(bounds, props.margin, props.theme, 'top') + \"px - \" + getBounds(bounds, props.margin, props.theme, 'bottom') + \"px)\";\n}, function (props) {\n return \"calc(100% - \" + getBounds(bounds, props.margin, props.theme, 'left') + \"px - \" + getBounds(bounds, props.margin, props.theme, 'right') + \"px)\";\n}, function (props) {\n return props.plain || props.full && props.margin === 'none' ? \"border-radius: 0;\" : roundStyle(props.theme.layer.border.radius, props.theme, props.position, props.margin);\n}, function (props) {\n return props.position !== 'hidden' && POSITIONS[props.position][props.full](getBounds(bounds, props.margin, props.theme), bounds) || '';\n});\nvar responsiveContainerStyle = function responsiveContainerStyle(props) {\n return css([\"position:relative;max-height:none;max-width:none;border-radius:0;height:\", \";width:\", \";\"], !props.layerTarget ? '100vh' : '100%', !props.layerTarget ? '100vw' : '100%');\n};\nvar elevationStyle = css([\"box-shadow:\", \";\"], function (props) {\n return props.theme.global.elevation[props.theme.dark ? 'dark' : 'light'][props.theme.layer.container.elevation];\n});\nvar StyledContainer = styled.div.withConfig({\n // don't let elevation leak to DOM\n // https://styled-components.com/docs/api#shouldforwardprop\n shouldForwardProp: function shouldForwardProp(prop, defaultValidatorFn) {\n return !['elevation'].includes(prop) && defaultValidatorFn(prop);\n }\n}).withConfig({\n displayName: \"StyledLayer__StyledContainer\",\n componentId: \"sc-rmtehz-2\"\n})([\"\", \" display:flex;flex-direction:column;min-height:\", \";\", \" outline:none;pointer-events:all;z-index:\", \";\", \" \", \" \", \";\", \";\"], function (props) {\n return !props.modal ? baseStyle : '';\n}, function (props) {\n return props.theme.global.size.xxsmall;\n}, function (props) {\n return !props.plain && (props.background || props.theme.layer.background) && backgroundStyle(props.background || props.theme.layer.background, props.theme);\n}, function (props) {\n return props.theme.layer.container.zIndex;\n}, function (props) {\n return !props.plain && props.theme.layer.container.elevation && elevationStyle;\n}, desktopContainerStyle, function (props) {\n if (props.responsive && props.theme.layer.responsiveBreakpoint) {\n var breakpoint = props.theme.global.breakpoints[props.theme.layer.responsiveBreakpoint];\n if (breakpoint) {\n return breakpointStyle(breakpoint, responsiveContainerStyle);\n }\n }\n return '';\n}, function (props) {\n return props.theme.layer.container && props.theme.layer.container.extend;\n});\nStyledContainer.defaultProps = {};\nObject.setPrototypeOf(StyledContainer.defaultProps, defaultProps);\nexport { animationDuration, StyledLayer, StyledOverlay, StyledContainer };","var _excluded = [\"background\", \"children\", \"full\", \"id\", \"margin\", \"modal\", \"onClickOutside\", \"onEsc\", \"plain\", \"position\", \"responsive\", \"target\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext, useEffect, useMemo, useRef } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { FocusedContainer } from '../FocusedContainer';\nimport { Keyboard } from '../Keyboard';\nimport { ResponsiveContext } from '../../contexts/ResponsiveContext';\nimport { OptionsContext } from '../../contexts/OptionsContext';\nimport { ContainerTargetContext } from '../../contexts/ContainerTargetContext';\nimport { useAnalytics } from '../../contexts/AnalyticsContext';\nimport { backgroundIsDark, findVisibleParent, PortalContext } from '../../utils';\nimport { StyledLayer, StyledContainer, StyledOverlay } from './StyledLayer';\nvar HiddenAnchor = styled.a.withConfig({\n displayName: \"LayerContainer__HiddenAnchor\",\n componentId: \"sc-1srj14c-0\"\n})([\"width:0;height:0;overflow:hidden;position:absolute;\"]);\nvar LayerContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var background = _ref.background,\n children = _ref.children,\n _ref$full = _ref.full,\n full = _ref$full === void 0 ? false : _ref$full,\n id = _ref.id,\n _ref$margin = _ref.margin,\n margin = _ref$margin === void 0 ? 'none' : _ref$margin,\n _ref$modal = _ref.modal,\n modal = _ref$modal === void 0 ? true : _ref$modal,\n onClickOutside = _ref.onClickOutside,\n onEsc = _ref.onEsc,\n plain = _ref.plain,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? 'center' : _ref$position,\n _ref$responsive = _ref.responsive,\n responsive = _ref$responsive === void 0 ? true : _ref$responsive,\n layerTarget = _ref.target,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var containerTarget = useContext(ContainerTargetContext);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var size = useContext(ResponsiveContext);\n // layerOptions was created to preserve backwards compatibility but\n // should not be supported in v3\n var _useContext = useContext(OptionsContext),\n layerOptions = _useContext.layer;\n var anchorRef = useRef();\n var containerRef = useRef();\n var layerRef = useRef();\n var portalContext = useContext(PortalContext);\n var portalId = useMemo(function () {\n return portalContext.length;\n }, [portalContext]);\n var nextPortalContext = useMemo(function () {\n return [].concat(portalContext, [portalId]);\n }, [portalContext, portalId]);\n var sendAnalytics = useAnalytics();\n useEffect(function () {\n var start = new Date();\n var element = layerRef.current;\n var isHidden = position === 'hidden';\n if (!isHidden) {\n sendAnalytics({\n type: 'layerOpen',\n element: element\n });\n }\n return function () {\n if (!isHidden) {\n sendAnalytics({\n type: 'layerClose',\n element: element,\n elapsed: new Date().getTime() - start.getTime()\n });\n }\n };\n }, [sendAnalytics, layerRef, position]);\n useEffect(function () {\n if (position !== 'hidden') {\n var node = layerRef.current || containerRef.current || ref.current;\n if (node && node.scrollIntoView) node.scrollIntoView();\n // Once layer is open we make sure it has focus so that you\n // can start tabbing inside the layer. If the caller put focus\n // on an element already, we honor that. Otherwise, we put\n // the focus in the hidden anchor.\n var element = document.activeElement;\n while (element) {\n if (element === containerRef.current) {\n // already have focus inside the container\n break;\n }\n element = element.parentElement;\n }\n if (modal && !element && anchorRef.current) {\n anchorRef.current.focus();\n }\n }\n }, [modal, position, ref]);\n useEffect(function () {\n if (position !== 'hidden') {\n var node = layerRef.current || containerRef.current || ref.current;\n if (node && node.scrollIntoView) node.scrollIntoView();\n }\n }, [position, ref]);\n useEffect(function () {\n var onClickDocument = function onClickDocument(event) {\n // determine which portal id the target is in, if any\n var clickedPortalId = null;\n var node = containerTarget === document.body ? event.target : event == null ? void 0 : event.composedPath()[0];\n while (clickedPortalId === null && node !== document && node !== null) {\n // check if user click occurred within the layer\n var attr = node.getAttribute('data-g-portal-id');\n if (attr !== null && attr !== '') clickedPortalId = parseInt(attr, 10);\n // loop upward through parents to see if clicked element is a child\n // of the Layer. if so, click was inside Layer\n else node = node.parentNode;\n }\n if ((clickedPortalId === null || portalContext.indexOf(clickedPortalId) !== -1) && node !== null) {\n // if the click occurred outside of the Layer portal, call\n // the user's onClickOutside function\n onClickOutside(event);\n }\n };\n\n // if user provides an onClickOutside function, listen for mousedown event\n if (onClickOutside) {\n document.addEventListener('mousedown', onClickDocument);\n }\n if (layerTarget) {\n var updateBounds = function updateBounds() {\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var target = findVisibleParent(layerTarget);\n\n // affects StyledLayer\n var layer = layerRef.current;\n if (layer && target) {\n // clear prior styling\n layer.style.left = '';\n layer.style.top = '';\n layer.style.bottom = '';\n layer.style.width = '';\n\n // get bounds\n var targetRect = target.getBoundingClientRect();\n var layerRect = layer.getBoundingClientRect();\n\n // ensure that layer moves with the target\n layer.style.left = targetRect.left + \"px\";\n layer.style.right = windowWidth - targetRect.right + \"px\";\n layer.style.top = targetRect.top + \"px\";\n layer.style.bottom = windowHeight - targetRect.bottom + \"px\";\n layer.style.maxHeight = targetRect.height;\n layer.style.maxWidth = Math.min(layerRect.width, windowWidth);\n }\n };\n updateBounds();\n window.addEventListener('resize', updateBounds);\n window.addEventListener('scroll', updateBounds, true);\n return function () {\n window.removeEventListener('resize', updateBounds);\n window.removeEventListener('scroll', updateBounds, true);\n if (onClickOutside) {\n document.removeEventListener('mousedown', onClickDocument);\n }\n };\n }\n return function () {\n if (onClickOutside) {\n document.removeEventListener('mousedown', onClickDocument);\n }\n };\n }, [containerTarget, layerTarget, onClickOutside, portalContext, portalId]);\n var content = /*#__PURE__*/React.createElement(StyledContainer, _extends({\n ref: ref || containerRef,\n background: background,\n elevation: theme.layer.container.elevation\n // layerOptions was created to preserve backwards compatibility but\n // should not be supported in v3. In v3, this should always be\n // ${id}__container\n ,\n id: layerOptions && layerOptions.singleId ? id + \"__container\" : id,\n full: full,\n margin: margin,\n modal: modal\n }, rest, {\n position: position,\n plain: plain,\n responsive: responsive,\n layerTarget: layerTarget,\n dir: theme.dir\n // portalId is used to determine if click occurred inside\n // or outside of the layer\n ,\n \"data-g-portal-id\": portalId\n }), /*#__PURE__*/React.createElement(HiddenAnchor, {\n ref: anchorRef,\n tabIndex: \"-1\",\n \"aria-hidden\": \"true\"\n }), children);\n content = /*#__PURE__*/React.createElement(StyledLayer, {\n ref: layerRef,\n id: id,\n plain: plain,\n position: position,\n responsive: responsive,\n layerTarget: layerTarget,\n tabIndex: \"-1\",\n dir: theme.dir\n }, modal && /*#__PURE__*/React.createElement(StyledOverlay, {\n plain: plain,\n responsive: responsive,\n onMouseDown: onClickOutside\n }), content);\n if (onEsc) {\n content = /*#__PURE__*/React.createElement(Keyboard, {\n onEsc: onEsc ? function (event) {\n // prevent further capturing or bubbling of event to other\n // child or parent elements\n event.stopPropagation();\n onEsc(event);\n } : undefined,\n target: modal === false ? 'document' : undefined\n }, content);\n }\n var themeContextValue = useMemo(function () {\n var dark = backgroundIsDark(theme.layer.background, theme);\n return _extends({}, theme, {\n dark: dark\n });\n }, [theme]);\n if (theme.layer.background) {\n var dark = themeContextValue.dark;\n if (dark !== undefined && dark !== theme.dark) {\n content = /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: themeContextValue\n }, content);\n }\n }\n content = /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: nextPortalContext\n }, content);\n var hitResponsiveBreakpoint = responsive && size === theme.layer.responsiveBreakpoint;\n // if layer is responsive and we've hit the breakpoint,\n // the layer will be filling the viewport, so we want to\n // restrict the scroll to the layer and not allow the\n // body to scroll\n if (modal || hitResponsiveBreakpoint) {\n content = /*#__PURE__*/React.createElement(FocusedContainer, {\n hidden: position === 'hidden'\n // if layer has a target, do not restrict scroll.\n // restricting scroll could inhibit the user's\n // ability to scroll the page while the layer is open.\n ,\n restrictScroll: !layerTarget && hitResponsiveBreakpoint ? true : undefined,\n trapFocus: true\n }, content);\n }\n return content;\n});\nexport { LayerContainer };","import PropTypes from 'prop-types';\nimport { backgroundDoc } from '../../utils/general-prop-types';\nvar PAD_SIZES = ['xxsmall', 'xsmall', 'small', 'medium', 'large'];\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n animate: PropTypes.bool,\n animation: PropTypes.oneOfType([PropTypes.oneOf(['slide', 'fadeIn', 'none']), PropTypes.bool]),\n background: backgroundDoc,\n full: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['vertical', 'horizontal'])]),\n margin: PropTypes.oneOfType([PropTypes.oneOf(['none'].concat(PAD_SIZES)), PropTypes.shape({\n bottom: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n end: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n left: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n right: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n start: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n top: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string]),\n vertical: PropTypes.oneOfType([PropTypes.oneOf(PAD_SIZES), PropTypes.string])\n }), PropTypes.string]),\n modal: PropTypes.bool,\n onClickOutside: PropTypes.func,\n onEsc: PropTypes.func,\n plain: PropTypes.bool,\n position: PropTypes.oneOf(['bottom', 'bottom-left', 'bottom-right', 'center', 'end', 'hidden', 'left', 'right', 'start', 'top', 'top-left', 'top-right']),\n responsive: PropTypes.bool,\n target: PropTypes.object\n };\n}\nexport var LayerPropTypes = PropType;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef, useContext, useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useLayoutEffect } from '../../utils/use-isomorphic-layout-effect';\nimport { getNewContainer } from '../../utils';\nimport { LayerContainer } from './LayerContainer';\nimport { animationDuration } from './StyledLayer';\nimport { ContainerTargetContext } from '../../contexts/ContainerTargetContext';\nimport { LayerPropTypes } from './propTypes';\nvar Layer = /*#__PURE__*/forwardRef(function (props, ref) {\n var animate = props.animate,\n animation = props.animation,\n targetChildPosition = props.targetChildPosition;\n var _useState = useState(),\n originalFocusedElement = _useState[0],\n setOriginalFocusedElement = _useState[1];\n useEffect(function () {\n return setOriginalFocusedElement(document.activeElement);\n }, []);\n var _useState2 = useState(),\n layerContainer = _useState2[0],\n setLayerContainer = _useState2[1];\n var containerTarget = useContext(ContainerTargetContext);\n useEffect(function () {\n return setLayerContainer(getNewContainer(containerTarget, targetChildPosition));\n }, [containerTarget, targetChildPosition]);\n\n // just a few things to clean up when the Layer is unmounted\n useLayoutEffect(function () {\n return function () {\n if (originalFocusedElement) {\n if (originalFocusedElement.focus) {\n // wait for the fixed positioning to come back to normal\n // see layer styling for reference\n setTimeout(function () {\n return originalFocusedElement.focus();\n }, 0);\n } else if (originalFocusedElement.parentNode && originalFocusedElement.parentNode.focus) {\n // required for IE11 and Edge\n originalFocusedElement.parentNode.focus();\n }\n }\n if (layerContainer) {\n var activeAnimation = animation !== undefined ? animation : animate;\n if (activeAnimation !== false) {\n // undefined uses 'slide' as the default\n // animate out and remove later\n var layerClone = layerContainer.cloneNode(true);\n layerClone.id = 'layerClone';\n containerTarget.appendChild(layerClone);\n var clonedContainer = layerClone.querySelector('[class*=\"StyledLayer__StyledContainer\"]');\n if (clonedContainer && clonedContainer.style) {\n clonedContainer.style.animationDirection = 'reverse';\n }\n setTimeout(function () {\n // we add the id and query here so the unit tests work\n var clone = containerTarget === document.body ? document.getElementById('layerClone') : containerTarget.getElementById('layerClone');\n if (clone) {\n containerTarget.removeChild(clone);\n layerContainer.remove();\n }\n }, animationDuration);\n } else {\n containerTarget.removeChild(layerContainer);\n }\n }\n };\n }, [animate, animation, containerTarget, layerContainer, originalFocusedElement]);\n return layerContainer ? /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(LayerContainer, _extends({\n ref: ref\n }, props)), layerContainer) : null;\n});\nLayer.displayName = 'Layer';\nLayer.propTypes = LayerPropTypes;\nexport { Layer };","import*as e from\"react\";function n(){return n=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},n.apply(this,arguments)}const t=[\"children\",\"options\"];var r,i;!function(e){e.blockQuote=\"0\",e.breakLine=\"1\",e.breakThematic=\"2\",e.codeBlock=\"3\",e.codeFenced=\"4\",e.codeInline=\"5\",e.footnote=\"6\",e.footnoteReference=\"7\",e.gfmTask=\"8\",e.heading=\"9\",e.headingSetext=\"10\",e.htmlBlock=\"11\",e.htmlComment=\"12\",e.htmlSelfClosing=\"13\",e.image=\"14\",e.link=\"15\",e.linkAngleBraceStyleDetector=\"16\",e.linkBareUrlDetector=\"17\",e.linkMailtoDetector=\"18\",e.newlineCoalescer=\"19\",e.orderedList=\"20\",e.paragraph=\"21\",e.ref=\"22\",e.refImage=\"23\",e.refLink=\"24\",e.table=\"25\",e.tableSeparator=\"26\",e.text=\"27\",e.textBolded=\"28\",e.textEmphasized=\"29\",e.textEscaped=\"30\",e.textMarked=\"31\",e.textStrikethroughed=\"32\",e.unorderedList=\"33\"}(r||(r={})),function(e){e[e.MAX=0]=\"MAX\",e[e.HIGH=1]=\"HIGH\",e[e.MED=2]=\"MED\",e[e.LOW=3]=\"LOW\",e[e.MIN=4]=\"MIN\"}(i||(i={}));const l=[\"allowFullScreen\",\"allowTransparency\",\"autoComplete\",\"autoFocus\",\"autoPlay\",\"cellPadding\",\"cellSpacing\",\"charSet\",\"className\",\"classId\",\"colSpan\",\"contentEditable\",\"contextMenu\",\"crossOrigin\",\"encType\",\"formAction\",\"formEncType\",\"formMethod\",\"formNoValidate\",\"formTarget\",\"frameBorder\",\"hrefLang\",\"inputMode\",\"keyParams\",\"keyType\",\"marginHeight\",\"marginWidth\",\"maxLength\",\"mediaGroup\",\"minLength\",\"noValidate\",\"radioGroup\",\"readOnly\",\"rowSpan\",\"spellCheck\",\"srcDoc\",\"srcLang\",\"srcSet\",\"tabIndex\",\"useMap\"].reduce((e,n)=>(e[n.toLowerCase()]=n,e),{for:\"htmlFor\"}),o={amp:\"&\",apos:\"'\",gt:\">\",lt:\"<\",nbsp:\" \",quot:\"“\"},c=[\"style\",\"script\"],a=/([-A-Z0-9_:]+)(?:\\s*=\\s*(?:(?:\"((?:\\\\.|[^\"])*)\")|(?:'((?:\\\\.|[^'])*)')|(?:\\{((?:\\\\.|{[^}]*?}|[^}])*)\\})))?/gi,s=/mailto:/i,d=/\\n{2,}$/,u=/^(\\s*>[\\s\\S]*?)(?=\\n{2,})/,p=/^ *> ?/gm,f=/^ {2,}\\n/,h=/^(?:( *[-*_])){3,} *(?:\\n *)+\\n/,m=/^\\s*(`{3,}|~{3,}) *(\\S+)?([^\\n]*?)?\\n([\\s\\S]+?)\\s*\\1 *(?:\\n *)*\\n?/,g=/^(?: {4}[^\\n]+\\n*)+(?:\\n *)+\\n?/,y=/^(`+)\\s*([\\s\\S]*?[^`])\\s*\\1(?!`)/,k=/^(?:\\n *)*\\n/,x=/\\r\\n?/g,v=/^\\[\\^([^\\]]+)](:(.*)((\\n+ {4,}.*)|(\\n(?!\\[\\^).+))*)/,b=/^\\[\\^([^\\]]+)]/,$=/\\f/g,E=/^---[ \\t]*\\n(.|\\n)*\\n---[ \\t]*\\n/,w=/^\\s*?\\[(x|\\s)\\]/,S=/^ *(#{1,6}) *([^\\n]+?)(?: +#*)?(?:\\n *)*(?:\\n|$)/,C=/^ *(#{1,6}) +([^\\n]+?)(?: +#*)?(?:\\n *)*(?:\\n|$)/,A=/^([^\\n]+)\\n *(=|-){3,} *(?:\\n *)+\\n/,O=/^ *(?!<[a-z][^ >/]* ?\\/>)<([a-z][^ >/]*) ?((?:[^>]*[^/])?)>\\n?(\\s*(?:<\\1[^>]*?>[\\s\\S]*?<\\/\\1>|(?!<\\1\\b)[\\s\\S])*?)<\\/\\1>(?!<\\/\\1>)\\n*/i,T=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,L=/^<!--[\\s\\S]*?(?:-->)/,R=/^(data|aria|x)-[a-z_][a-z\\d_.-]*$/,z=/^ *<([a-z][a-z0-9:]*)(?:\\s+((?:<.*?>|[^>])*))?\\/?>(?!<\\/\\1>)(\\s*\\n)?/i,M=/^\\{.*\\}$/,I=/^(https?:\\/\\/[^\\s<]+[^<.,:;\"')\\]\\s])/,U=/^<([^ >]+@[^ >]+)>/,j=/^<([^ >]+:\\/[^ >]+)>/,B=/-([a-z])?/gi,N=/^(.*\\|.*)\\n(?: *(\\|? *[-:]+ *\\|[-| :]*)\\n((?:.*\\|.*\\n)*))?\\n?/,H=/^\\[([^\\]]*)\\]:\\s+<?([^\\s>]+)>?\\s*(\"([^\"]*)\")?/,D=/^!\\[([^\\]]*)\\] ?\\[([^\\]]*)\\]/,P=/^\\[([^\\]]*)\\] ?\\[([^\\]]*)\\]/,_=/(\\[|\\])/g,F=/(\\n|^[-*]\\s|^#|^ {2,}|^-{2,}|^>\\s)/,W=/\\t/g,G=/(^ *\\||\\| *$)/g,Z=/^ *:-+: *$/,q=/^ *:-+ *$/,V=/^ *-+: *$/,X=\"((?:\\\\[.*?\\\\][([].*?[)\\\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~~.*?~~|==.*?==|.|\\\\n)*?)\",Q=new RegExp(`^([*_])\\\\1${X}\\\\1\\\\1(?!\\\\1)`),J=new RegExp(`^([*_])${X}\\\\1(?!\\\\1|\\\\w)`),K=new RegExp(`^==${X}==`),Y=new RegExp(`^~~${X}~~`),ee=/^\\\\([^0-9A-Za-z\\s])/,ne=/^[\\s\\S]+?(?=[^0-9A-Z\\s\\u00c0-\\uffff&#;.()'\"]|\\d+\\.|\\n\\n| {2,}\\n|\\w+:\\S|$)/i,te=/^\\n+/,re=/^([ \\t]*)/,ie=/\\\\([^\\\\])/g,le=/ *\\n+$/,oe=/(?:^|\\n)( *)$/,ce=\"(?:\\\\d+\\\\.)\",ae=\"(?:[*+-])\";function se(e){return\"( *)(\"+(1===e?ce:ae)+\") +\"}const de=se(1),ue=se(2);function pe(e){return new RegExp(\"^\"+(1===e?de:ue))}const fe=pe(1),he=pe(2);function me(e){return new RegExp(\"^\"+(1===e?de:ue)+\"[^\\\\n]*(?:\\\\n(?!\\\\1\"+(1===e?ce:ae)+\" )[^\\\\n]*)*(\\\\n|$)\",\"gm\")}const ge=me(1),ye=me(2);function ke(e){const n=1===e?ce:ae;return new RegExp(\"^( *)(\"+n+\") [\\\\s\\\\S]+?(?:\\\\n{2,}(?! )(?!\\\\1\"+n+\" (?!\"+n+\" ))\\\\n*|\\\\s*\\\\n*$)\")}const xe=ke(1),ve=ke(2);function be(e,n){const t=1===n,r=t?xe:ve,i=t?ge:ye,l=t?fe:he;return{match(e,n,t){const i=oe.exec(t);return i&&(n.list||!n.inline&&!n.simple)?r.exec(e=i[1]+e):null},order:1,parse(e,n,r){const o=t?+e[2]:void 0,c=e[0].replace(d,\"\\n\").match(i);let a=!1;return{items:c.map(function(e,t){const i=l.exec(e)[0].length,o=new RegExp(\"^ {1,\"+i+\"}\",\"gm\"),s=e.replace(o,\"\").replace(l,\"\"),d=t===c.length-1,u=-1!==s.indexOf(\"\\n\\n\")||d&&a;a=u;const p=r.inline,f=r.list;let h;r.list=!0,u?(r.inline=!1,h=s.replace(le,\"\\n\\n\")):(r.inline=!0,h=s.replace(le,\"\"));const m=n(h,r);return r.inline=p,r.list=f,m}),ordered:t,start:o}},render:(n,t,r)=>e(n.ordered?\"ol\":\"ul\",{key:r.key,start:\"20\"===n.type?n.start:void 0},n.items.map(function(n,i){return e(\"li\",{key:i},t(n,r))}))}}const $e=new RegExp(\"^\\\\[((?:\\\\[[^\\\\]]*\\\\]|[^\\\\[\\\\]]|\\\\](?=[^\\\\[]*\\\\]))*)\\\\]\\\\(\\\\s*<?((?:\\\\([^)]*\\\\)|[^\\\\s\\\\\\\\]|\\\\\\\\.)*?)>?(?:\\\\s+['\\\"]([\\\\s\\\\S]*?)['\\\"])?\\\\s*\\\\)\"),Ee=/^!\\[(.*?)\\]\\( *((?:\\([^)]*\\)|[^() ])*) *\"?([^)\"]*)?\"?\\)/,we=[u,m,g,S,A,C,L,N,ge,xe,ye,ve],Se=[...we,/^[^\\n]+(?: \\n|\\n{2,})/,O,z];function Ce(e){return e.replace(/[ÀÃÂÃÄÅà áâãäåæÆ]/g,\"a\").replace(/[çÇ]/g,\"c\").replace(/[ðÃ]/g,\"d\").replace(/[ÈÉÊËéèêë]/g,\"e\").replace(/[ÃïÎîÃÃÌì]/g,\"i\").replace(/[Ññ]/g,\"n\").replace(/[øØœŒÕõÔôÓóÒò]/g,\"o\").replace(/[ÜüÛûÚúÙù]/g,\"u\").replace(/[ŸÿÃý]/g,\"y\").replace(/[^a-z0-9- ]/gi,\"\").replace(/ /gi,\"-\").toLowerCase()}function Ae(e){return V.test(e)?\"right\":Z.test(e)?\"center\":q.test(e)?\"left\":null}function Oe(e,n,t,r){const i=t.inTable;t.inTable=!0;let l=e.trim().split(/( *(?:`[^`]*`|<.*?>.*?<\\/.*?>(?!<\\/.*?>)|\\\\\\||\\|) *)/).reduce((e,i)=>(\"|\"===i.trim()?e.push(r?{type:\"26\"}:{type:\"27\",text:i}):\"\"!==i&&e.push.apply(e,n(i,t)),e),[]);t.inTable=i;let o=[[]];return l.forEach(function(e,n){\"26\"===e.type?0!==n&&n!==l.length-1&&o.push([]):(\"27\"!==e.type||null!=l[n+1]&&\"26\"!==l[n+1].type||(e.text=e.text.trimEnd()),o[o.length-1].push(e))}),o}function Te(e,n,t){t.inline=!0;const r=e[2]?e[2].replace(G,\"\").split(\"|\").map(Ae):[],i=e[3]?function(e,n,t){return e.trim().split(\"\\n\").map(function(e){return Oe(e,n,t,!0)})}(e[3],n,t):[],l=Oe(e[1],n,t,!!i.length);return t.inline=!1,i.length?{align:r,cells:i,header:l,type:\"25\"}:{children:l,type:\"21\"}}function Le(e,n){return null==e.align[n]?{}:{textAlign:e.align[n]}}function Re(e){return function(n,t){return t.inline?e.exec(n):null}}function ze(e){return function(n,t){return t.inline||t.simple?e.exec(n):null}}function Me(e){return function(n,t){return t.inline||t.simple?null:e.exec(n)}}function Ie(e){return function(n){return e.exec(n)}}function Ue(e,n,t){if(n.inline||n.simple)return null;if(t&&!t.endsWith(\"\\n\"))return null;let r=\"\";e.split(\"\\n\").every(e=>!we.some(n=>n.test(e))&&(r+=e+\"\\n\",e.trim()));const i=r.trimEnd();return\"\"==i?null:[r,i]}function je(e){try{if(decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,\"\").match(/^\\s*(javascript|vbscript|data(?!:image)):/i))return}catch(e){return null}return e}function Be(e){return e.replace(ie,\"$1\")}function Ne(e,n,t){const r=t.inline||!1,i=t.simple||!1;t.inline=!0,t.simple=!0;const l=e(n,t);return t.inline=r,t.simple=i,l}function He(e,n,t){const r=t.inline||!1,i=t.simple||!1;t.inline=!1,t.simple=!0;const l=e(n,t);return t.inline=r,t.simple=i,l}function De(e,n,t){const r=t.inline||!1;t.inline=!1;const i=e(n,t);return t.inline=r,i}const Pe=(e,n,t)=>({children:Ne(n,e[1],t)});function _e(){return{}}function Fe(){return null}function We(...e){return e.filter(Boolean).join(\" \")}function Ge(e,n,t){let r=e;const i=n.split(\".\");for(;i.length&&(r=r[i[0]],void 0!==r);)i.shift();return r||t}function Ze(t=\"\",r={}){r.overrides=r.overrides||{},r.slugify=r.slugify||Ce,r.namedCodesToUnicode=r.namedCodesToUnicode?n({},o,r.namedCodesToUnicode):o;const i=r.createElement||e.createElement;function d(e,t,...l){const o=Ge(r.overrides,`${e}.props`,{});return i(function(e,n){const t=Ge(n,e);return t?\"function\"==typeof t||\"object\"==typeof t&&\"render\"in t?t:Ge(n,`${e}.component`,e):e}(e,r.overrides),n({},t,o,{className:We(null==t?void 0:t.className,o.className)||void 0}),...l)}function G(n){n=n.replace(E,\"\");let t=!1;r.forceInline?t=!0:r.forceBlock||(t=!1===F.test(n));const i=le(ie(t?n:`${n.trimEnd().replace(te,\"\")}\\n\\n`,{inline:t}));for(;\"string\"==typeof i[i.length-1]&&!i[i.length-1].trim();)i.pop();if(null===r.wrapper)return i;const l=r.wrapper||(t?\"span\":\"div\");let o;if(i.length>1||r.forceWrapper)o=i;else{if(1===i.length)return o=i[0],\"string\"==typeof o?d(\"span\",{key:\"outer\"},o):o;o=null}return e.createElement(l,{key:\"outer\"},o)}function Z(n){const t=n.match(a);return t?t.reduce(function(n,t,r){const i=t.indexOf(\"=\");if(-1!==i){const o=function(e){return-1!==e.indexOf(\"-\")&&null===e.match(R)&&(e=e.replace(B,function(e,n){return n.toUpperCase()})),e}(t.slice(0,i)).trim(),c=function(e){const n=e[0];return('\"'===n||\"'\"===n)&&e.length>=2&&e[e.length-1]===n?e.slice(1,-1):e}(t.slice(i+1).trim()),a=l[o]||o,s=n[a]=function(e,n){return\"style\"===e?n.split(/;\\s?/).reduce(function(e,n){const t=n.slice(0,n.indexOf(\":\"));return e[t.trim().replace(/(-[a-z])/g,e=>e[1].toUpperCase())]=n.slice(t.length+1).trim(),e},{}):\"href\"===e||\"src\"===e?je(n):(n.match(M)&&(n=n.slice(1,n.length-1)),\"true\"===n||\"false\"!==n&&n)}(o,c);\"string\"==typeof s&&(O.test(s)||z.test(s))&&(n[a]=e.cloneElement(G(s.trim()),{key:r}))}else\"style\"!==t&&(n[l[t]||t]=!0);return n},{}):null}const q=[],V={},X={0:{match:Me(u),order:1,parse:(e,n,t)=>({children:n(e[0].replace(p,\"\"),t)}),render:(e,n,t)=>d(\"blockquote\",{key:t.key},n(e.children,t))},1:{match:Ie(f),order:1,parse:_e,render:(e,n,t)=>d(\"br\",{key:t.key})},2:{match:Me(h),order:1,parse:_e,render:(e,n,t)=>d(\"hr\",{key:t.key})},3:{match:Me(g),order:0,parse:e=>({lang:void 0,text:e[0].replace(/^ {4}/gm,\"\").replace(/\\n+$/,\"\")}),render:(e,t,r)=>d(\"pre\",{key:r.key},d(\"code\",n({},e.attrs,{className:e.lang?`lang-${e.lang}`:\"\"}),e.text))},4:{match:Me(m),order:0,parse:e=>({attrs:Z(e[3]||\"\"),lang:e[2]||void 0,text:e[4],type:\"3\"})},5:{match:ze(y),order:3,parse:e=>({text:e[2]}),render:(e,n,t)=>d(\"code\",{key:t.key},e.text)},6:{match:Me(v),order:0,parse:e=>(q.push({footnote:e[2],identifier:e[1]}),{}),render:Fe},7:{match:Re(b),order:1,parse:e=>({target:`#${r.slugify(e[1])}`,text:e[1]}),render:(e,n,t)=>d(\"a\",{key:t.key,href:je(e.target)},d(\"sup\",{key:t.key},e.text))},8:{match:Re(w),order:1,parse:e=>({completed:\"x\"===e[1].toLowerCase()}),render:(e,n,t)=>d(\"input\",{checked:e.completed,key:t.key,readOnly:!0,type:\"checkbox\"})},9:{match:Me(r.enforceAtxHeadings?C:S),order:1,parse:(e,n,t)=>({children:Ne(n,e[2],t),id:r.slugify(e[2]),level:e[1].length}),render:(e,n,t)=>d(`h${e.level}`,{id:e.id,key:t.key},n(e.children,t))},10:{match:Me(A),order:0,parse:(e,n,t)=>({children:Ne(n,e[1],t),level:\"=\"===e[2]?1:2,type:\"9\"})},11:{match:Ie(O),order:1,parse(e,n,t){const[,r]=e[3].match(re),i=new RegExp(`^${r}`,\"gm\"),l=e[3].replace(i,\"\"),o=(a=l,Se.some(e=>e.test(a))?De:Ne);var a;const s=e[1].toLowerCase(),d=-1!==c.indexOf(s),u={attrs:Z(e[2]),noInnerParse:d,tag:(d?s:e[1]).trim()};return t.inAnchor=t.inAnchor||\"a\"===s,d?u.text=e[3]:u.children=o(n,l,t),t.inAnchor=!1,u},render:(e,t,r)=>d(e.tag,n({key:r.key},e.attrs),e.text||t(e.children,r))},13:{match:Ie(z),order:1,parse:e=>({attrs:Z(e[2]||\"\"),tag:e[1].trim()}),render:(e,t,r)=>d(e.tag,n({},e.attrs,{key:r.key}))},12:{match:Ie(L),order:1,parse:()=>({}),render:Fe},14:{match:ze(Ee),order:1,parse:e=>({alt:e[1],target:Be(e[2]),title:e[3]}),render:(e,n,t)=>d(\"img\",{key:t.key,alt:e.alt||void 0,title:e.title||void 0,src:je(e.target)})},15:{match:Re($e),order:3,parse:(e,n,t)=>({children:He(n,e[1],t),target:Be(e[2]),title:e[3]}),render:(e,n,t)=>d(\"a\",{key:t.key,href:je(e.target),title:e.title},n(e.children,t))},16:{match:Re(j),order:0,parse:e=>({children:[{text:e[1],type:\"27\"}],target:e[1],type:\"15\"})},17:{match:(e,n)=>n.inAnchor?null:Re(I)(e,n),order:0,parse:e=>({children:[{text:e[1],type:\"27\"}],target:e[1],title:void 0,type:\"15\"})},18:{match:Re(U),order:0,parse(e){let n=e[1],t=e[1];return s.test(t)||(t=\"mailto:\"+t),{children:[{text:n.replace(\"mailto:\",\"\"),type:\"27\"}],target:t,type:\"15\"}}},20:be(d,1),33:be(d,2),19:{match:Me(k),order:3,parse:_e,render:()=>\"\\n\"},21:{match:Ue,order:3,parse:Pe,render:(e,n,t)=>d(\"p\",{key:t.key},n(e.children,t))},22:{match:Re(H),order:0,parse:e=>(V[e[1]]={target:e[2],title:e[4]},{}),render:Fe},23:{match:ze(D),order:0,parse:e=>({alt:e[1]||void 0,ref:e[2]}),render:(e,n,t)=>V[e.ref]?d(\"img\",{key:t.key,alt:e.alt,src:je(V[e.ref].target),title:V[e.ref].title}):null},24:{match:Re(P),order:0,parse:(e,n,t)=>({children:n(e[1],t),fallbackChildren:n(e[0].replace(_,\"\\\\$1\"),t),ref:e[2]}),render:(e,n,t)=>V[e.ref]?d(\"a\",{key:t.key,href:je(V[e.ref].target),title:V[e.ref].title},n(e.children,t)):d(\"span\",{key:t.key},n(e.fallbackChildren,t))},25:{match:Me(N),order:1,parse:Te,render(e,n,t){const r=e;return d(\"table\",{key:t.key},d(\"thead\",null,d(\"tr\",null,r.header.map(function(e,i){return d(\"th\",{key:i,style:Le(r,i)},n(e,t))}))),d(\"tbody\",null,r.cells.map(function(e,i){return d(\"tr\",{key:i},e.map(function(e,i){return d(\"td\",{key:i,style:Le(r,i)},n(e,t))}))})))}},27:{match:Ie(ne),order:4,parse:e=>({text:e[0].replace(T,(e,n)=>r.namedCodesToUnicode[n]?r.namedCodesToUnicode[n]:e)}),render:e=>e.text},28:{match:ze(Q),order:2,parse:(e,n,t)=>({children:n(e[2],t)}),render:(e,n,t)=>d(\"strong\",{key:t.key},n(e.children,t))},29:{match:ze(J),order:3,parse:(e,n,t)=>({children:n(e[2],t)}),render:(e,n,t)=>d(\"em\",{key:t.key},n(e.children,t))},30:{match:ze(ee),order:1,parse:e=>({text:e[1],type:\"27\"})},31:{match:ze(K),order:3,parse:Pe,render:(e,n,t)=>d(\"mark\",{key:t.key},n(e.children,t))},32:{match:ze(Y),order:3,parse:Pe,render:(e,n,t)=>d(\"del\",{key:t.key},n(e.children,t))}};!0===r.disableParsingRawHTML&&(delete X[11],delete X[13]);const ie=function(e){let n=Object.keys(e);function t(r,i){let l=[],o=\"\";for(;r;){let c=0;for(;c<n.length;){const a=n[c],s=e[a],d=s.match(r,i,o);if(d){const e=d[0];r=r.substring(e.length);const n=s.parse(d,t,i);null==n.type&&(n.type=a),l.push(n),o=e;break}c++}}return l}return n.sort(function(n,t){let r=e[n].order,i=e[t].order;return r!==i?r-i:n<t?-1:1}),function(e,n){return t(function(e){return e.replace(x,\"\\n\").replace($,\"\").replace(W,\" \")}(e),n)}}(X),le=(oe=function(e,n){return function(t,r,i){const l=e[t.type].render;return n?n(()=>l(t,r,i),t,r,i):l(t,r,i)}}(X,r.renderRule),function e(n,t={}){if(Array.isArray(n)){const r=t.key,i=[];let l=!1;for(let r=0;r<n.length;r++){t.key=r;const o=e(n[r],t),c=\"string\"==typeof o;c&&l?i[i.length-1]+=o:null!==o&&i.push(o),l=c}return t.key=r,i}return oe(n,e,t)});var oe;const ce=G(t);return q.length?d(\"div\",null,ce,d(\"footer\",{key:\"footer\"},q.map(function(e){return d(\"div\",{id:r.slugify(e.identifier),key:e.identifier},e.identifier,le(ie(e.footnote,{inline:!0})))}))):ce}export default n=>{let{children:r=\"\",options:i}=n,l=function(e,n){if(null==e)return{};var t,r,i={},l=Object.keys(e);for(r=0;r<l.length;r++)n.indexOf(t=l[r])>=0||(i[t]=e[t]);return i}(n,t);return e.cloneElement(Ze(r,i),l)};export{r as RuleType,Ze as compiler,Ce as slugify};\n//# sourceMappingURL=index.modern.js.map\n","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n components: PropTypes.object,\n options: PropTypes.shape({})\n };\n}\nexport var MarkdownPropTypes = PropType;","var _excluded = [\"children\", \"components\", \"options\", \"theme\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, Fragment } from 'react';\nimport Markdown from 'markdown-to-jsx';\nimport { deepMerge } from '../../utils';\nimport { Heading } from '../Heading';\nimport { Paragraph } from '../Paragraph';\nimport { Anchor } from '../Anchor';\nimport { Image } from '../Image';\nimport { Table } from '../Table';\nimport { TableBody } from '../TableBody';\nimport { TableCell } from '../TableCell';\nimport { TableFooter } from '../TableFooter';\nimport { TableHeader } from '../TableHeader';\nimport { TableRow } from '../TableRow';\nimport { MarkdownPropTypes } from './propTypes';\nvar GrommetMarkdown = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n components = _ref.components,\n options = _ref.options,\n theme = _ref.theme,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var heading = [1, 2, 3, 4].reduce(function (obj, level) {\n var result = _extends({}, obj);\n result[\"h\" + level] = {\n component: Heading,\n props: {\n level: level\n }\n };\n return result;\n }, {});\n var overrides = deepMerge({\n a: {\n component: Anchor\n },\n img: {\n component: Image\n },\n p: {\n component: Paragraph\n },\n table: {\n component: Table\n },\n td: {\n component: TableCell,\n props: {\n plain: true\n }\n },\n tbody: {\n component: TableBody\n },\n tfoot: {\n component: TableFooter\n },\n th: {\n component: TableCell\n },\n thead: {\n component: TableHeader\n },\n tr: {\n component: TableRow\n }\n }, heading, components, options && options.overrides);\n\n // we use Fragment as the wrapper so we can assign the ref with the div\n // wrapper can still be overridden with the options.\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest), /*#__PURE__*/React.createElement(Markdown, {\n children: children,\n options: _extends({\n wrapper: Fragment\n }, options, {\n overrides: overrides\n })\n }));\n});\nGrommetMarkdown.propTypes = MarkdownPropTypes;\nexport { GrommetMarkdown as Markdown };","function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError(\"Cannot destructure \" + obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nimport { Box } from '../Box';\nvar Nav = function Nav(_ref) {\n var rest = _extends({}, (_objectDestructuringEmpty(_ref), _ref));\n return /*#__PURE__*/React.createElement(Box, _extends({\n as: \"nav\",\n flex: false,\n gap: \"medium\"\n }, rest));\n};\nexport { Nav };","import styled, { css } from 'styled-components';\nimport { genericStyles, normalizeColor, textAlignStyle } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar colorStyle = css([\"color:\", \";\"], function (props) {\n return normalizeColor(props.colorProp, props.theme);\n});\nvar sizeStyle = function sizeStyle(props) {\n var size = props.size || 'medium';\n var data = props.theme.paragraph[size];\n return css([\"font-size:\", \";line-height:\", \";max-width:\", \";\"], data ? data.size : size, data ? data.height : 'normal', props.fillProp ? 'none' : data && data.maxWidth);\n};\nvar fontFamily = css([\"font-family:\", \";\"], function (props) {\n return props.theme.paragraph.font.family;\n});\nvar maxlinesStyle = function maxlinesStyle(props) {\n return props.maxLines && css([\"display:-webkit-box;-webkit-line-clamp:\", \";-webkit-box-orient:vertical;overflow:hidden;\"], props.maxLines);\n};\nvar StyledParagraph = styled.p.withConfig({\n displayName: \"StyledParagraph\",\n componentId: \"sc-tbetod-0\"\n})([\"\", \" \", \" \", \" \", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return maxlinesStyle(props);\n}, function (props) {\n return sizeStyle(props);\n}, function (props) {\n return props.textAlign && textAlignStyle;\n}, function (props) {\n return props.colorProp && colorStyle;\n}, function (props) {\n return props.theme.paragraph.font && props.theme.paragraph.font.family && fontFamily;\n}, function (props) {\n return props.theme.paragraph && props.theme.paragraph.extend;\n});\nStyledParagraph.defaultProps = {};\nObject.setPrototypeOf(StyledParagraph.defaultProps, defaultProps);\nexport { StyledParagraph };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { colorPropType, genericProps } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n color: colorPropType,\n fill: PropTypes.bool,\n maxLines: PropTypes.number,\n responsive: PropTypes.bool,\n size: PropTypes.oneOfType([PropTypes.oneOf(['small', 'medium', 'large', 'xlarge', 'xxlarge']), PropTypes.string]),\n textAlign: PropTypes.oneOf(['start', 'center', 'end', 'justify'])\n });\n}\nexport var ParagraphPropTypes = PropType;","import React, { forwardRef, useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Skeleton } from '../Skeleton';\nimport { Box } from '../Box';\nvar ParagraphSkeleton = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var fill = _ref.fill,\n sizeProp = _ref.size;\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var size = sizeProp || 'medium';\n var data = theme.paragraph[size];\n var height = data ? data.size : size;\n return /*#__PURE__*/React.createElement(Box, {\n ref: ref,\n gap: \"xsmall\",\n width: {\n max: fill ? 'none' : data && data.maxWidth\n }\n }, /*#__PURE__*/React.createElement(Skeleton, {\n height: height\n }), /*#__PURE__*/React.createElement(Skeleton, {\n height: height\n }), /*#__PURE__*/React.createElement(Skeleton, {\n height: height,\n width: \"30%\"\n }));\n});\nParagraphSkeleton.displayName = 'ParagraphSkeleton';\nexport { ParagraphSkeleton };","var _excluded = [\"children\", \"color\", \"fill\", \"size\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useMemo } from 'react';\nimport { StyledParagraph } from './StyledParagraph';\nimport { ParagraphPropTypes } from './propTypes';\nimport { useSkeleton } from '../Skeleton';\nimport { ParagraphSkeleton } from './ParagraphSkeleton';\nimport { TextContext } from '../Text/TextContext';\nvar Paragraph = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n color = _ref.color,\n fill = _ref.fill,\n size = _ref.size,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var skeleton = useSkeleton();\n var textContextValue = useMemo(function () {\n return {\n size: size\n };\n }, [size]);\n if (skeleton) {\n return /*#__PURE__*/React.createElement(ParagraphSkeleton, _extends({\n ref: ref,\n fill: fill,\n size: size\n }, rest), children);\n }\n return /*#__PURE__*/React.createElement(StyledParagraph, _extends({\n ref: ref,\n colorProp: color,\n fillProp: fill,\n size: size\n }, rest), children !== undefined ? /*#__PURE__*/React.createElement(TextContext.Provider, {\n value: textContextValue\n }, children) : undefined);\n});\nParagraph.displayName = 'Paragraph';\nParagraph.prototype = ParagraphPropTypes;\nexport { Paragraph };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { genericProps, heightPropType, padPropType, roundPropType, skeletonColorsPropType, widthPropType } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n as: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.element]),\n colors: skeletonColorsPropType,\n height: heightPropType,\n pad: padPropType,\n round: roundPropType,\n width: widthPropType\n });\n}\nexport var SkeletonPropTypes = PropType;","import styled from 'styled-components';\nimport { backgroundStyle, edgeStyle, genericStyles, heightStyle, roundStyle, widthStyle } from '../../utils';\n\n// Styling a div directly rather than just using\n// a Box since Box itself will react to a SkeletonContext\n// and we don't want that here.\nexport var StyledSkeleton = styled.div.withConfig({\n displayName: \"StyledSkeleton\",\n componentId: \"sc-1omqm6u-0\"\n})([\"display:flex;box-sizing:border-box;\", \" \", \" \", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return props.background && backgroundStyle(props.background, props.theme);\n}, function (props) {\n var _props$theme$text, _props$theme$text$med;\n return heightStyle(props.heightProp || ((_props$theme$text = props.theme.text) == null ? void 0 : (_props$theme$text$med = _props$theme$text.medium) == null ? void 0 : _props$theme$text$med.height), props.theme);\n}, function (props) {\n return widthStyle(props.widthProp || '100%', props.theme);\n}, function (props) {\n return props.pad && edgeStyle('padding', props.pad, props.responsive, props.theme.box.responsiveBreakpoint, props.theme);\n}, function (props) {\n return props.round && roundStyle(props.round, props.responsive, props.theme);\n});","var _excluded = [\"as\", \"colors\", \"width\", \"height\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { SkeletonPropTypes } from './propTypes';\nimport { useSkeleton } from './SkeletonContext';\nimport { StyledSkeleton } from './StyledSkeleton';\nvar Skeleton = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _theme$skeleton;\n var as = _ref.as,\n colorsProp = _ref.colors,\n widthProp = _ref.width,\n heightProp = _ref.height,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var skeleton = useSkeleton();\n var depth = (skeleton == null ? void 0 : skeleton.depth) || 0;\n var colors = colorsProp || (theme == null ? void 0 : (_theme$skeleton = theme.skeleton) == null ? void 0 : _theme$skeleton.colors);\n var themeColors = colors[theme.dark ? 'dark' : 'light'];\n var background = themeColors[(depth + 1) % themeColors.length];\n return /*#__PURE__*/React.createElement(StyledSkeleton, _extends({\n ref: ref,\n as: as,\n background: background,\n widthProp: widthProp,\n heightProp: heightProp\n }, rest));\n});\nSkeleton.displayName = 'Skeleton';\nSkeleton.propTypes = SkeletonPropTypes;\nexport { Skeleton };","import React, { useContext } from 'react';\nexport var SkeletonContext = /*#__PURE__*/React.createContext();\nexport var useSkeleton = function useSkeleton() {\n return useContext(SkeletonContext);\n};","import styled, { css } from 'styled-components';\nimport { genericStyles } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar fillStyle = css([\"\", \" \", \" flex-grow:1;display:flex;\"], function (props) {\n return props.fillContainer === true || props.fillContainer === 'horizontal' ? \"\\n width: 100%;\\n max-width: none;\\n \" : '';\n}, function (props) {\n return props.fillContainer === true || props.fillContainer === 'vertical' ? 'height: 100%;' : '';\n});\nvar StyledStack = styled.div.withConfig({\n displayName: \"StyledStack\",\n componentId: \"sc-ajspsk-0\"\n})([\"position:relative;\", \" \", \" \", \"\"], genericStyles, function (props) {\n return props.fillContainer && fillStyle;\n}, function (props) {\n return props.theme.stack && props.theme.stack.extend;\n});\nStyledStack.defaultProps = {};\nObject.setPrototypeOf(StyledStack.defaultProps, defaultProps);\nvar styleMap = {\n fill: \"\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n \",\n center: \"\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n \",\n left: \"\\n top: 50%;\\n left: 0;\\n transform: translateY(-50%);\\n \",\n right: \"\\n top: 50%;\\n right: 0;\\n transform: translateY(-50%);\\n \",\n top: \"\\n top: 0;\\n left: 50%;\\n transform: translateX(-50%);\\n \",\n bottom: \"\\n bottom: 0;\\n left: 50%;\\n transform: translateX(-50%);\\n \",\n 'top-left': \"\\n top: 0;\\n left: 0;\\n \",\n 'bottom-left': \"\\n bottom: 0;\\n left: 0;\\n \",\n 'top-right': \"\\n top: 0;\\n right: 0;\\n \",\n 'bottom-right': \"\\n bottom: 0;\\n right: 0;\\n \"\n};\nvar StyledStackLayer = styled.div.withConfig({\n displayName: \"StyledStack__StyledStackLayer\",\n componentId: \"sc-ajspsk-1\"\n})([\"position:\", \";\", \" \", \" \", \" \", \"\"], function (props) {\n return props.guiding ? 'relative' : 'absolute';\n}, function (props) {\n return props.guiding && 'display: block;';\n}, function (props) {\n return !props.guiding && styleMap[props.anchor || 'fill'] + \";\";\n}, function (props) {\n return props.fillContainer && \"\\n width: 100%;\\n height: 100%;\\n \";\n}, function (props) {\n return !props.interactive && \"pointer-events: none;\";\n});\nStyledStackLayer.defaultProps = {};\nObject.setPrototypeOf(StyledStackLayer.defaultProps, defaultProps);\nexport { StyledStack, StyledStackLayer };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { genericProps } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n anchor: PropTypes.oneOf(['center', 'left', 'right', 'top', 'bottom', 'top-left', 'bottom-left', 'top-right', 'bottom-right']),\n fill: PropTypes.oneOfType([PropTypes.oneOf(['horizontal', 'vertical']), PropTypes.bool]),\n guidingChild: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['first', 'last'])]),\n interactiveChild: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['first', 'last'])])\n });\n}\nexport var StackPropTypes = PropType;","var _excluded = [\"anchor\", \"children\", \"fill\", \"guidingChild\", \"interactiveChild\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { Children, forwardRef } from 'react';\nimport { StyledStack, StyledStackLayer } from './StyledStack';\nimport { StackPropTypes } from './propTypes';\nvar buildStyledChildren = function buildStyledChildren(_ref) {\n var anchor = _ref.anchor,\n fill = _ref.fill,\n guidingIndex = _ref.guidingIndex,\n interactiveChild = _ref.interactiveChild,\n interactiveIndex = _ref.interactiveIndex;\n return function (child, index) {\n var interactive = interactiveChild === undefined || interactiveIndex === index;\n var isGuidingIndex = index === guidingIndex;\n var props = isGuidingIndex ? {\n guiding: true,\n fillContainer: fill\n } : {\n anchor: anchor\n };\n return /*#__PURE__*/React.createElement(StyledStackLayer, _extends({\n key: index,\n interactive: interactive\n }, props), child);\n };\n};\nvar Stack = /*#__PURE__*/forwardRef(function (_ref2, ref) {\n var anchor = _ref2.anchor,\n children = _ref2.children,\n fill = _ref2.fill,\n guidingChild = _ref2.guidingChild,\n interactiveChild = _ref2.interactiveChild,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded);\n var prunedChildren = Children.toArray(children).filter(function (c) {\n return c;\n });\n var toChildIndex = function toChildIndex(child) {\n var index = child;\n if (index === 'first' || !index) index = 0;else if (index === 'last') index = prunedChildren.length - 1;\n return index;\n };\n var guidingIndex = toChildIndex(guidingChild);\n var interactiveIndex = interactiveChild && toChildIndex(interactiveChild);\n var styledChildren = prunedChildren.map(buildStyledChildren({\n anchor: anchor,\n fill: fill,\n guidingIndex: guidingIndex,\n interactiveChild: interactiveChild,\n interactiveIndex: interactiveIndex\n }));\n return /*#__PURE__*/React.createElement(StyledStack, _extends({\n ref: ref,\n fillContainer: fill\n }, rest), styledChildren);\n});\nStack.displayName = 'Stack';\nStack.propTypes = StackPropTypes;\nexport { Stack };","import styled, { css } from 'styled-components';\nimport { genericStyles, normalizeColor } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar tabHoverStyle = css([\"&:hover{\", \" \", \" \", \";}&:focus{z-index:1;}\"], function (props) {\n return props.theme.tab.hover.background && css([\"background:\", \";\"], normalizeColor(props.theme.tab.hover.background, props.theme));\n}, function (props) {\n return props.theme.tab.hover.color && css([\"color:\", \";\"], normalizeColor(props.theme.tab.hover.color, props.theme));\n}, function (props) {\n return props.theme.tab.hover.extend;\n});\nvar StyledTab = styled.div.withConfig({\n displayName: \"StyledTab\",\n componentId: \"sc-1nnwnsb-0\"\n})([\"white-space:nowrap;\", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return !props.plain && !props.disabled && props.theme.tab.hover && tabHoverStyle;\n}, function (props) {\n return props.disabled && props.theme.tab.disabled;\n}, function (props) {\n return props.theme.tab.extend;\n});\nStyledTab.defaultProps = {};\nObject.setPrototypeOf(StyledTab.defaultProps, defaultProps);\nexport { StyledTab };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n disabled: PropTypes.bool,\n icon: PropTypes.element,\n plain: PropTypes.bool,\n reverse: PropTypes.bool,\n title: PropTypes.node\n };\n}\nexport var TabPropTypes = PropType;","var _excluded = [\"active\", \"disabled\", \"children\", \"icon\", \"plain\", \"title\", \"onBlur\", \"onFocus\", \"onMouseOver\", \"onMouseOut\", \"reverse\", \"onClick\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext, useEffect, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { Button } from '../Button';\nimport { Text } from '../Text';\nimport { TabsContext } from '../Tabs/TabsContext';\nimport { normalizeColor, useForwardedRef } from '../../utils';\nimport { StyledTab } from './StyledTab';\nimport { TabPropTypes } from './propTypes';\nimport { useLayoutEffect } from '../../utils/use-isomorphic-layout-effect';\nvar Tab = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var activeProp = _ref.active,\n disabled = _ref.disabled,\n children = _ref.children,\n icon = _ref.icon,\n plain = _ref.plain,\n title = _ref.title,\n _onBlur = _ref.onBlur,\n _onFocus = _ref.onFocus,\n onMouseOver = _ref.onMouseOver,\n onMouseOut = _ref.onMouseOut,\n reverse = _ref.reverse,\n onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var _useContext = useContext(TabsContext),\n active = _useContext.active,\n activeIndex = _useContext.activeIndex,\n index = _useContext.index,\n tabsContextRef = _useContext.ref,\n onActivate = _useContext.onActivate,\n setActiveContent = _useContext.setActiveContent,\n setActiveTitle = _useContext.setActiveTitle,\n setFocusIndex = _useContext.setFocusIndex;\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var _useState = useState(undefined),\n over = _useState[0],\n setOver = _useState[1];\n var normalizedTitle = title;\n var tabStyles = {};\n var tabRef = useForwardedRef(ref);\n useLayoutEffect(function () {\n if (tabRef.current && tabsContextRef) {\n tabsContextRef.current = tabRef.current;\n }\n });\n useEffect(function () {\n if (active) {\n setActiveContent(children);\n var activeTitle = typeof title === 'string' ? title : activeIndex + 1;\n setActiveTitle(activeTitle);\n }\n }, [active, activeIndex, children, setActiveContent, setActiveTitle, title]);\n var onMouseOverTab = function onMouseOverTab(event) {\n setOver(true);\n if (onMouseOver) {\n onMouseOver(event);\n }\n };\n var onMouseOutTab = function onMouseOutTab(event) {\n setOver(undefined);\n if (onMouseOut) {\n onMouseOut(event);\n }\n };\n if (!plain) {\n if (typeof title !== 'string') {\n normalizedTitle = title;\n } else if (active) {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, theme.tab.active, title);\n } else if (disabled && theme.tab.disabled) {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, theme.tab.disabled, title);\n } else {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, {\n color: over ? theme.tab.hover.color : theme.tab.color\n }, title);\n }\n }\n var onClickTab = function onClickTab(event) {\n if (event) {\n event.preventDefault();\n }\n onActivate();\n if (onClick) {\n onClick(event);\n }\n };\n if (active && disabled) {\n console.warn( // eslint-disable-next-line max-len\n \"Warning: Tab props 'active' and 'disabled' have both been set to TRUE on the same Tab resulting in an interesting Tab state. Is this your intent?\");\n }\n if (!plain) {\n if (typeof title !== 'string') {\n normalizedTitle = title;\n } else if (active) {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, theme.tab.active, title);\n } else if (disabled && theme.tab.disabled) {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, theme.tab.disabled, title);\n } else {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, {\n color: over ? theme.tab.hover.color : theme.tab.color\n }, title);\n }\n if (theme.tab.border) {\n var borderColor = theme.tab.border.color || theme.global.control.border.color;\n if (active) {\n borderColor = theme.tab.border.active.color || borderColor;\n } else if (disabled && theme.tab.border.disabled) {\n borderColor = theme.tab.border.disabled.color || borderColor;\n } else if (over) {\n borderColor = theme.tab.border.hover.color || borderColor;\n }\n borderColor = normalizeColor(borderColor, theme);\n tabStyles.border = {\n side: theme.tab.border.side,\n size: theme.tab.border.size,\n color: borderColor\n };\n }\n tabStyles.background = active ? theme.tab.active.background || theme.tab.background : theme.tab.background;\n tabStyles.pad = theme.tab.pad;\n tabStyles.margin = theme.tab.margin;\n }\n\n // needed to apply hover/active styles to the icon\n var renderIcon = function renderIcon(iconProp) {\n if (active) {\n return /*#__PURE__*/React.cloneElement(iconProp, _extends({}, theme.tab.active));\n }\n if (disabled) {\n return /*#__PURE__*/React.cloneElement(iconProp, _extends({}, theme.tab.disabled));\n }\n return /*#__PURE__*/React.cloneElement(iconProp, {\n color: over ? theme.tab.hover.color : theme.tab.color\n });\n };\n var normalizedIcon;\n if (icon) {\n normalizedIcon = renderIcon(icon);\n }\n var first = reverse ? normalizedTitle : normalizedIcon;\n var second = reverse ? normalizedIcon : normalizedTitle;\n var withIconStyles;\n if (first && second) {\n withIconStyles = {\n direction: 'row',\n align: 'center',\n justify: 'center',\n gap: 'small'\n };\n }\n return /*#__PURE__*/React.createElement(Button, _extends({\n ref: tabRef,\n plain: true,\n role: \"tab\",\n \"aria-selected\": active,\n \"aria-expanded\": active,\n disabled: disabled\n }, rest, {\n onClick: onClickTab,\n onMouseOver: onMouseOverTab,\n onMouseOut: onMouseOutTab,\n onFocus: function onFocus() {\n if (_onFocus) _onFocus();\n setFocusIndex(index);\n },\n onBlur: function onBlur() {\n if (_onBlur) _onBlur();\n setFocusIndex(-1);\n }\n }), /*#__PURE__*/React.createElement(StyledTab, _extends({\n as: Box,\n disabled: disabled,\n plain: plain\n }, withIconStyles, tabStyles), first, second));\n});\nTab.displayName = 'Tab';\nTab.defaultProps = {};\nObject.setPrototypeOf(Tab.defaultProps, defaultProps);\nTab.propTypes = TabPropTypes;\nexport { Tab };","import styled, { css } from 'styled-components';\nimport { backgroundStyle, borderStyle, edgeStyle, genericStyles } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar SIZE_MAP = {\n '1/2': '50%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/3': '33.33%',\n '2/3': '66.66%'\n};\nvar sizeStyle = css([\"width:\", \";max-width:\", \";overflow:hidden;\"], function (props) {\n return props.size === 'auto' ?\n // setting width to a small value will allow\n // the cell to fit width of its content. this\n // is a commonly implemented CSS pattern to\n // allow an auto-width behavior on fixed table\n // layouts (which is what DataTable applies)\n // https://stackoverflow.com/questions/4757844/css-table-column-autowidth?noredirect=1&lq=1\n '1px' : SIZE_MAP[props.size] || props.theme.global.size[props.size] || props.size;\n}, function (props) {\n return props.size !== 'auto' ? SIZE_MAP[props.size] || props.theme.global.size[props.size] || props.size : undefined;\n});\nvar StyledTableCell = styled.td.withConfig({\n displayName: \"StyledTable__StyledTableCell\",\n componentId: \"sc-1m3u5g-0\"\n})([\"margin:0;padding:0;font-weight:inherit;text-align:inherit;\", \" \", \" \", \" \", \" \", \" \", \" \", \"\"], function (props) {\n return props.size && sizeStyle;\n}, function (props) {\n return props.verticalAlign && \"vertical-align: \" + props.verticalAlign + \";\";\n}, function (props) {\n return props.align && \"text-align: \" + props.align + \";\";\n}, function (props) {\n return props.background && backgroundStyle(props.background, props.theme);\n}, function (props) {\n return props.border && borderStyle(props.border, props.responsive, props.theme);\n}, function (props) {\n return props.pad && edgeStyle('padding', props.pad, props.responsive, props.theme.box.responsiveBreakpoint, props.theme);\n}, function (props) {\n return props.tableContextTheme && props.tableContextTheme.extend;\n});\nStyledTableCell.defaultProps = {};\nObject.setPrototypeOf(StyledTableCell.defaultProps, defaultProps);\nvar StyledTableDataCaption = styled.caption.withConfig({\n displayName: \"StyledTable__StyledTableDataCaption\",\n componentId: \"sc-1m3u5g-1\"\n})([\"margin-bottom:\", \";\"], function (props) {\n return props.theme.global.edgeSize.xxsmall;\n});\nStyledTableDataCaption.defaultProps = {};\nObject.setPrototypeOf(StyledTableDataCaption.defaultProps, defaultProps);\nvar StyledTableRow = styled.tr.withConfig({\n displayName: \"StyledTable__StyledTableRow\",\n componentId: \"sc-1m3u5g-2\"\n})([\"\"]);\nStyledTableRow.defaultProps = {};\nObject.setPrototypeOf(StyledTableRow.defaultProps, defaultProps);\nvar StyledTableBody = styled.tbody.withConfig({\n displayName: \"StyledTable__StyledTableBody\",\n componentId: \"sc-1m3u5g-3\"\n})([\"\"]);\nStyledTableBody.defaultProps = {};\nObject.setPrototypeOf(StyledTableBody.defaultProps, defaultProps);\nvar StyledTableHeader = styled.thead.withConfig({\n displayName: \"StyledTable__StyledTableHeader\",\n componentId: \"sc-1m3u5g-4\"\n})([\"\"]);\nStyledTableHeader.defaultProps = {};\nObject.setPrototypeOf(StyledTableHeader.defaultProps, defaultProps);\nvar StyledTableFooter = styled.tfoot.withConfig({\n displayName: \"StyledTable__StyledTableFooter\",\n componentId: \"sc-1m3u5g-5\"\n})([\"\"]);\nStyledTableFooter.defaultProps = {};\nObject.setPrototypeOf(StyledTableFooter.defaultProps, defaultProps);\nvar StyledTable = styled.table.withConfig({\n displayName: \"StyledTable\",\n componentId: \"sc-1m3u5g-6\"\n})([\"border-spacing:0;border-collapse:collapse;width:inherit;\", \" \", \";\"], genericStyles, function (props) {\n return props.theme.table && props.theme.table.extend;\n});\nStyledTable.defaultProps = {};\nObject.setPrototypeOf(StyledTable.defaultProps, defaultProps);\nexport { StyledTableCell, StyledTableDataCaption, StyledTableRow, StyledTableBody, StyledTableHeader, StyledTableFooter, StyledTable };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { genericProps } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n caption: PropTypes.string\n });\n}\nexport var TablePropTypes = PropType;","var _excluded = [\"caption\", \"children\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef } from 'react';\nimport { StyledTable, StyledTableDataCaption } from './StyledTable';\nimport { TablePropTypes } from './propTypes';\nvar Table = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var caption = _ref.caption,\n children = _ref.children,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/React.createElement(StyledTable, _extends({\n ref: ref\n }, rest), caption ? /*#__PURE__*/React.createElement(StyledTableDataCaption, null, caption) : null, children);\n});\nTable.propTypes = TablePropTypes;\nexport { Table };","import React from 'react';\nexport var TableContext = /*#__PURE__*/React.createContext(undefined);","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { TableContext } from '../Table/TableContext';\nimport { StyledTableBody } from '../Table/StyledTable';\nvar TableBody = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: \"body\"\n }, /*#__PURE__*/React.createElement(StyledTableBody, _extends({\n ref: ref\n }, props)));\n});\nTableBody.displayName = 'TableBody';\nexport { TableBody };","import PropTypes from 'prop-types';\nvar BORDER_SHAPE = PropTypes.shape({\n color: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n dark: PropTypes.string,\n light: PropTypes.string\n })]),\n side: PropTypes.oneOf(['top', 'left', 'bottom', 'right', 'start', 'end', 'horizontal', 'vertical', 'all', 'between']),\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n style: PropTypes.oneOf(['solid', 'dashed', 'dotted', 'double', 'groove', 'ridge', 'inset', 'outset', 'hidden'])\n});\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n border: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top', 'left', 'bottom', 'right', 'start', 'end', 'horizontal', 'vertical', 'all']), BORDER_SHAPE, PropTypes.arrayOf(BORDER_SHAPE)]),\n plain: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['noPad'])]),\n scope: PropTypes.oneOf(['col', 'row']),\n size: PropTypes.oneOfType([PropTypes.oneOf(['xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge', '1/2', '1/3', '2/3', '1/4', '2/4', '3/4']), PropTypes.string]),\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom']),\n align: PropTypes.oneOfType([PropTypes.oneOf(['left', 'right', 'center', 'justify', 'inherit', 'start', 'end']), PropTypes.string])\n };\n}\nexport var TableCellPropTypes = PropType;","var _excluded = [\"align\", \"aria-disabled\", \"background\", \"border\", \"children\", \"className\", \"colSpan\", \"onWidth\", \"pad\", \"plain\", \"rowSpan\", \"scope\", \"size\", \"verticalAlign\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext, useEffect, useMemo, useRef } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { useLayoutEffect } from '../../utils/use-isomorphic-layout-effect';\nimport { defaultProps } from '../../default-props';\nimport { backgroundIsDark, useForwardedRef } from '../../utils';\nimport { Box } from '../Box';\nimport { TableContext } from '../Table/TableContext';\nimport { StyledTableCell } from '../Table/StyledTable';\nimport { TableCellPropTypes } from './propTypes';\nexport var verticalAlignToJustify = {\n middle: 'center',\n top: 'start',\n bottom: 'end'\n};\nvar TableCell = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var align = _ref.align,\n ariaDisabled = _ref['aria-disabled'],\n background = _ref.background,\n border = _ref.border,\n children = _ref.children,\n className = _ref.className,\n colSpan = _ref.colSpan,\n onWidth = _ref.onWidth,\n pad = _ref.pad,\n plain = _ref.plain,\n rowSpan = _ref.rowSpan,\n scope = _ref.scope,\n size = _ref.size,\n verticalAlign = _ref.verticalAlign,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var tableContext = useContext(TableContext);\n var cellRef = useForwardedRef(ref);\n var containerRef = useRef();\n useLayoutEffect(function () {\n if (onWidth) {\n var _cellRef$current$getB = cellRef.current.getBoundingClientRect(),\n width = _cellRef$current$getB.width;\n onWidth(width);\n }\n }, [cellRef, onWidth]);\n\n // if window resizes, recalculate cell height so that content\n // will continue to fill the height if the dimensions of the cell\n // have changed\n useEffect(function () {\n var updateHeight = function updateHeight() {\n if (plain === 'noPad') {\n var cell = cellRef.current;\n var container = containerRef.current;\n if (cell && container) {\n container.style.height = '';\n var cellRect = cell.getBoundingClientRect();\n\n // height must match cell height otherwise table will apply some\n // margin around the cell content\n container.style.height = Math.max(cellRect.height - (border || theme.table[tableContext].border ? theme.global.borderSize.xsmall.replace('px', '') : 0), 0) + \"px\";\n }\n }\n };\n window.addEventListener('resize', updateHeight);\n updateHeight();\n return function () {\n window.removeEventListener('resize', updateHeight);\n };\n }, [border, cellRef, plain, tableContext, theme.global.borderSize, theme.table]);\n var tableContextTheme;\n if (tableContext === 'header') {\n tableContextTheme = theme.table && theme.table.header;\n } else if (tableContext === 'footer') {\n tableContextTheme = theme.table && theme.table.footer;\n } else {\n tableContextTheme = theme.table && theme.table.body;\n }\n // merge tableContextTheme and rest\n var mergedProps = _extends({}, tableContextTheme, rest);\n Object.keys(mergedProps).forEach(function (key) {\n if (rest[key] === undefined) mergedProps[key] = tableContextTheme[key];\n });\n // split out background, border, pad, and aria-disabled\n var cellProps = {\n align: align || mergedProps.align || undefined,\n 'aria-disabled': ariaDisabled || undefined,\n background: background || mergedProps.background || undefined,\n border: border || mergedProps.border || undefined,\n pad: plain !== 'noPad' ? pad || mergedProps.pad || undefined : undefined,\n verticalAlign: verticalAlign || mergedProps.verticalAlign || undefined\n };\n delete mergedProps.align;\n delete mergedProps.ariaDisabled;\n delete mergedProps.background;\n delete mergedProps.border;\n delete mergedProps.pad;\n delete mergedProps.verticalAlign;\n var content = children;\n if (plain === 'noPad' && children) {\n // a Box with explicitly set height is necessary\n // for the child contents to be able to fill the\n // TableCell\n content = /*#__PURE__*/React.createElement(Box, {\n ref: containerRef,\n justify: verticalAlign ? verticalAlignToJustify[verticalAlign] : 'center'\n }, children);\n }\n\n // construct a new theme object in case we have a background that wants\n // to change the background color context\n var nextTheme = useMemo(function () {\n var result;\n if (cellProps.background || theme.darkChanged) {\n var dark = backgroundIsDark(cellProps.background, theme);\n var darkChanged = dark !== undefined && dark !== theme.dark;\n if (darkChanged || theme.darkChanged) {\n result = _extends({}, theme);\n result.dark = dark === undefined ? theme.dark : dark;\n result.background = cellProps.background;\n } else if (cellProps.background) {\n // This allows DataTable to intelligently set the background\n // of a pinned header or footer.\n result = _extends({}, theme);\n result.background = cellProps.background;\n }\n }\n return result || theme;\n }, [cellProps.background, theme]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: nextTheme\n }, /*#__PURE__*/React.createElement(StyledTableCell, _extends({\n ref: cellRef,\n as: scope ? 'th' : undefined,\n scope: scope,\n size: size,\n colSpan: colSpan,\n rowSpan: rowSpan,\n tableContext: tableContext,\n tableContextTheme: tableContextTheme\n }, plain === true ? mergedProps : {}, cellProps, {\n className: className\n }), plain || !Object.keys(mergedProps).length ? content : /*#__PURE__*/React.createElement(Box, _extends({}, mergedProps, {\n align: align,\n justify: verticalAlignToJustify[verticalAlign]\n }), children)));\n});\nTableCell.displayName = 'TableCell';\nTableCell.propTypes = TableCellPropTypes;\nexport { TableCell };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { TableContext } from '../Table/TableContext';\nimport { StyledTableFooter } from '../Table/StyledTable';\nvar TableFooter = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: \"footer\"\n }, /*#__PURE__*/React.createElement(StyledTableFooter, _extends({\n ref: ref\n }, props)));\n});\nTableFooter.displayName = 'TableFooter';\nexport { TableFooter };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { TableContext } from '../Table/TableContext';\nimport { StyledTableHeader } from '../Table/StyledTable';\nvar TableHeader = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: \"header\"\n }, /*#__PURE__*/React.createElement(StyledTableHeader, _extends({\n ref: ref\n }, props)));\n});\nTableHeader.displayName = 'TableHeader';\nexport { TableHeader };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from 'react';\nimport { StyledTableRow } from '../Table/StyledTable';\nvar TableRow = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(StyledTableRow, _extends({\n ref: ref\n }, props));\n});\nTableRow.displayName = 'TableRow';\nexport { TableRow };","var _FLEX_MAP;\nimport styled, { css } from 'styled-components';\nimport { genericStyles } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar StyledTabsHeader = styled.div.withConfig({\n displayName: \"StyledTabs__StyledTabsHeader\",\n componentId: \"sc-a4fwxl-0\"\n})([\"\", \";\"], function (props) {\n return props.theme.tabs.header.extend;\n});\nStyledTabsHeader.defaultProps = {};\nObject.setPrototypeOf(StyledTabsHeader.defaultProps, defaultProps);\nvar FLEX_MAP = (_FLEX_MAP = {}, _FLEX_MAP[true] = '1 1', _FLEX_MAP[false] = '0 0', _FLEX_MAP.grow = '1 0', _FLEX_MAP.shrink = '0 1', _FLEX_MAP);\nvar flexStyle = css([\"flex:\", \";\"], function (props) {\n return \"\" + FLEX_MAP[props.flex] + (props.flex !== true ? ' auto' : '');\n});\nvar StyledTabPanel = styled.div.withConfig({\n displayName: \"StyledTabs__StyledTabPanel\",\n componentId: \"sc-a4fwxl-1\"\n})([\"min-height:0;\", \" \", \";\"], function (props) {\n return props.flex && flexStyle;\n}, function (props) {\n return props.theme.tabs.panel.extend;\n});\nStyledTabPanel.defaultProps = {};\nObject.setPrototypeOf(StyledTabPanel.defaultProps, defaultProps);\nvar StyledTabs = styled.div.withConfig({\n displayName: \"StyledTabs\",\n componentId: \"sc-a4fwxl-2\"\n})([\"\", \" \", \";\"], genericStyles, function (props) {\n return props.theme.tabs.extend;\n});\nStyledTabs.defaultProps = {};\nObject.setPrototypeOf(StyledTabs.defaultProps, defaultProps);\nexport { StyledTabsHeader, StyledTabPanel, StyledTabs };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { genericProps } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n activeIndex: PropTypes.number,\n alignControls: PropTypes.oneOf(['start', 'center', 'end', 'stretch']),\n children: PropTypes.node.isRequired,\n flex: PropTypes.oneOfType([PropTypes.oneOf(['grow', 'shrink']), PropTypes.bool]),\n justify: PropTypes.oneOf(['start', 'center', 'end']),\n messages: PropTypes.shape({\n tabContents: PropTypes.string\n }),\n onActive: PropTypes.func\n });\n}\nexport var TabsPropTypes = PropType;","var _excluded = [\"alignControls\", \"children\", \"flex\", \"justify\", \"messages\", \"responsive\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useCallback, useContext, useState, useEffect, useRef, useMemo } from 'react';\nimport { Previous } from 'grommet-icons/icons/Previous';\nimport { Next } from 'grommet-icons/icons/Next';\nimport { ThemeContext } from 'styled-components';\nimport { useLayoutEffect } from '../../utils/use-isomorphic-layout-effect';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { Button } from '../Button';\nimport { TabsContext } from './TabsContext';\nimport { ResponsiveContext } from '../../contexts/ResponsiveContext';\nimport { StyledTabPanel, StyledTabs, StyledTabsHeader } from './StyledTabs';\nimport { normalizeColor } from '../../utils';\nimport { MessageContext } from '../../contexts/MessageContext';\nimport { TabsPropTypes } from './propTypes';\nimport { useAnalytics } from '../../contexts/AnalyticsContext/AnalyticsContext';\nvar Tabs = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _theme$tabs$header;\n var alignControls = _ref.alignControls,\n children = _ref.children,\n flex = _ref.flex,\n _ref$justify = _ref.justify,\n justify = _ref$justify === void 0 ? 'center' : _ref$justify,\n messages = _ref.messages,\n _ref$responsive = _ref.responsive,\n responsive = _ref$responsive === void 0 ? true : _ref$responsive,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var _useContext = useContext(MessageContext),\n format = _useContext.format;\n var propsActiveIndex = rest.activeIndex,\n onActive = rest.onActive;\n var _useState = useState(rest.activeIndex || 0),\n activeIndex = _useState[0],\n setActiveIndex = _useState[1];\n var _useState2 = useState(),\n activeContent = _useState2[0],\n setActiveContent = _useState2[1];\n var _useState3 = useState(),\n activeTitle = _useState3[0],\n setActiveTitle = _useState3[1];\n var _useState4 = useState(),\n disableLeftArrow = _useState4[0],\n setDisableLeftArrow = _useState4[1];\n var _useState5 = useState(),\n disableRightArrow = _useState5[0],\n setDisableRightArrow = _useState5[1];\n var _useState6 = useState(),\n overflow = _useState6[0],\n setOverflow = _useState6[1];\n var _useState7 = useState(-1),\n focusIndex = _useState7[0],\n setFocusIndex = _useState7[1];\n var headerRef = useRef();\n var size = useContext(ResponsiveContext);\n var sendAnalytics = useAnalytics();\n if (activeIndex !== propsActiveIndex && propsActiveIndex !== undefined) {\n setActiveIndex(propsActiveIndex);\n }\n\n // Safari v15.5 has an issue with scrolling when overflow='hidden'\n // and scroll-behavior='smooth'. For now we are detecting if the browser\n // is safari to workaround this issue. The issue should be resolved soon\n // and we can remove this. https://github.com/WebKit/WebKit/pull/1387\n var isSafari = typeof window !== 'undefined' ? /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent) : true;\n\n /* eslint-disable no-param-reassign */\n delete rest.activeIndex;\n delete rest.onActive;\n /* eslint-enable no-param-reassign */\n\n var tabRefs = useMemo(function () {\n return React.Children.map(children, function () {\n return /*#__PURE__*/React.createRef();\n });\n }, [children]);\n\n // check if tab is in view\n var isVisible = useCallback(function (index) {\n if (tabRefs[index].current) {\n var _headerRef$current;\n var tabRect = tabRefs[index].current.getBoundingClientRect();\n var headerRect = (_headerRef$current = headerRef.current) == null ? void 0 : _headerRef$current.getBoundingClientRect();\n if (tabRect && headerRect) {\n // the -1 and +1 allow a little leniency when calculating if a tab\n // is in view. Without the -1 and +1 a tab could be fully in view\n // but isVisible will return false.\n return tabRect.left >= headerRect.left - 1 && tabRect.right <= headerRect.right + 1;\n }\n }\n return undefined;\n }, [headerRef, tabRefs]);\n var updateArrowState = useCallback(function () {\n setDisableLeftArrow(isVisible(0));\n setDisableRightArrow(isVisible(tabRefs.length - 1));\n }, [tabRefs, isVisible]);\n var scrollTo = useCallback(function (index, keyboard) {\n var tabRect = tabRefs[index].current.getBoundingClientRect();\n var headerRect = headerRef.current.getBoundingClientRect();\n var amountHidden = 0;\n if (tabRect.left >= headerRect.left && tabRect.left <= headerRect.right) {\n amountHidden = tabRect.width - (headerRect.right - tabRect.left);\n } else if (tabRect.right >= headerRect.left && tabRect.right <= headerRect.right) {\n amountHidden = tabRect.width - (tabRect.right - headerRect.left);\n amountHidden = 0 - amountHidden;\n } else if (tabRect.left >= headerRect.right) {\n amountHidden = tabRect.right - headerRect.right;\n } else if (tabRect.right <= headerRect.left) {\n amountHidden = headerRect.left - tabRect.left;\n amountHidden = 0 - amountHidden;\n }\n // We are adding or subtracting 2 from amountHidden to\n // ensure the focusIndicator is visible when navigating\n // by keyboard\n if (keyboard) {\n if (amountHidden < 0) amountHidden -= 2;\n if (amountHidden > 0) amountHidden += 2;\n }\n if (isSafari) {\n headerRef.current.scrollBy({\n left: amountHidden\n });\n } else {\n headerRef.current.scrollBy({\n left: amountHidden,\n behavior: 'smooth'\n });\n }\n\n // wait for scroll animation to finish\n // checks every 50 milliseconds for 1000 milliseconds\n // if the scroll animation has finished. Most scroll\n // animations will finish in 1000 milliseconds unless\n // the tab name is very long.\n if (isSafari) {\n updateArrowState();\n } else {\n var checkVisible = setInterval(function () {\n if (tabRefs[index].current && isVisible(index)) {\n updateArrowState();\n clearInterval(checkVisible);\n }\n }, 50);\n setTimeout(function () {\n updateArrowState();\n clearInterval(checkVisible);\n }, 1000);\n }\n }, [tabRefs, headerRef, isVisible, updateArrowState, isSafari]);\n var moveByArrowKey = function moveByArrowKey(direction) {\n var previous = direction === 'previous';\n var index = direction === 'previous' ? 0 : tabRefs.length - 1;\n var scrolledToIndex;\n var moveBy = theme.tabs.step[size] - 1 || 0;\n while (scrolledToIndex === undefined && (previous && index < tabRefs.length - 1 || !previous && index > 0)) {\n if (!isVisible(index) && (previous && isVisible(index + 1) || !previous && isVisible(index - 1))) {\n if (previous) {\n if (index - moveBy >= 0) {\n scrollTo(index - moveBy, false);\n scrolledToIndex = index - moveBy;\n } else {\n scrollTo(0, false);\n scrolledToIndex = 0;\n }\n } else if (index + moveBy < tabRefs.length) {\n scrollTo(index + moveBy, false);\n scrolledToIndex = index + moveBy;\n } else {\n scrollTo(tabRefs.length - 1, false);\n scrolledToIndex = tabRefs.length - 1;\n }\n }\n index = previous ? index + 1 : index - 1;\n }\n };\n useEffect(function () {\n // if the active tab isn't visible scroll to it\n if (overflow && tabRefs && tabRefs[activeIndex].current && !isVisible(activeIndex)) scrollTo(activeIndex, true);\n }, [overflow, activeIndex, tabRefs, isVisible, scrollTo]);\n useEffect(function () {\n // scroll focus item into view if it is not already visible\n if (overflow && focusIndex !== -1 && !isVisible(focusIndex)) scrollTo(focusIndex, true);else if (overflow && focusIndex !== -1) {\n // If the browser scrolled the focused item into view and\n // the focusedTab is on the edge of the header container\n // scroll slightly further to show the focusIndicator\n var tabRect = tabRefs[focusIndex].current.getBoundingClientRect();\n var headerRect = headerRef.current.getBoundingClientRect();\n var amountHidden = 0;\n if (tabRect.left >= headerRect.left && tabRect.right <= headerRect.right && tabRect.right + 2 >= headerRect.right) amountHidden = 2;else if (tabRect.right <= headerRect.right && tabRect.left >= headerRect.left && tabRect.left - 2 <= headerRect.left) amountHidden = -2;\n headerRef.current.scrollBy({\n left: amountHidden\n });\n }\n }, [overflow, tabRefs, focusIndex, isVisible, scrollTo]);\n useLayoutEffect(function () {\n var onResize = function onResize() {\n // check if tabs are overflowing\n if (headerRef.current.scrollWidth > headerRef.current.offsetWidth) {\n setOverflow(true);\n } else setOverflow(false);\n updateArrowState();\n };\n onResize();\n window.addEventListener('resize', onResize);\n return function () {\n return window.removeEventListener('resize', onResize);\n };\n }, [tabRefs, disableLeftArrow, disableRightArrow, activeIndex, headerRef, overflow, updateArrowState]);\n var getTabsContext = useCallback(function (index) {\n var activateTab = function activateTab(nextIndex) {\n sendAnalytics({\n type: 'activateTab',\n element: tabRefs[nextIndex].current\n });\n if (propsActiveIndex === undefined) {\n setActiveIndex(nextIndex);\n }\n if (onActive) {\n onActive(nextIndex);\n }\n };\n return {\n activeIndex: activeIndex,\n active: activeIndex === index,\n index: index,\n ref: tabRefs[index],\n onActivate: function onActivate() {\n return activateTab(index);\n },\n setActiveContent: setActiveContent,\n setActiveTitle: setActiveTitle,\n setFocusIndex: setFocusIndex\n };\n }, [activeIndex, onActive, propsActiveIndex, sendAnalytics, tabRefs]);\n var tabs = React.Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(TabsContext.Provider, {\n value: getTabsContext(index)\n }, child ?\n /*#__PURE__*/\n // cloneElement is needed for backward compatibility with custom\n // styled components that rely on props.active. We should reassess\n // if it is still necessary in our next major release.\n React.cloneElement(child, {\n active: activeIndex === index\n }) : child);\n });\n var tabsHeaderStyles = {};\n if (theme.tabs.header && theme.tabs.header.border) {\n var borderColor = theme.tabs.header.border.color || theme.global.control.border.color;\n borderColor = normalizeColor(borderColor, theme);\n tabsHeaderStyles.border = {\n side: theme.tabs.header.border.side,\n size: theme.tabs.header.border.size,\n style: theme.tabs.header.border.style,\n color: borderColor\n };\n }\n var tabContentTitle = (activeTitle || '') + \" \" + format({\n id: 'tabs.tabContents',\n messages: messages\n });\n return /*#__PURE__*/React.createElement(StyledTabs, _extends({\n ref: ref,\n as: Box,\n flex: flex,\n responsive: responsive\n }, rest, {\n background: theme.tabs.background\n }), /*#__PURE__*/React.createElement(Box, _extends({\n alignSelf: alignControls || ((_theme$tabs$header = theme.tabs.header) == null ? void 0 : _theme$tabs$header.alignSelf),\n role: \"tablist\",\n flex: false,\n direction: overflow ? 'row' : 'column'\n }, tabsHeaderStyles), overflow && /*#__PURE__*/React.createElement(Button, {\n a11yTitle: \"Previous Tab\",\n disabled: disableLeftArrow\n // removed from tabIndex, button is redundant for keyboard users\n ,\n tabIndex: -1,\n onClick: function onClick() {\n return moveByArrowKey('previous');\n }\n }, /*#__PURE__*/React.createElement(Box, {\n pad: {\n vertical: 'xsmall',\n horizontal: 'small'\n }\n }, /*#__PURE__*/React.createElement(Previous, {\n color: disableLeftArrow ? theme.button.disabled.color : theme.global.colors.text\n }))), /*#__PURE__*/React.createElement(StyledTabsHeader, {\n ref: headerRef,\n as: Box,\n direction: \"row\",\n justify: overflow ? 'start' : justify,\n flex: !!overflow,\n wrap: false,\n overflow: overflow ? 'hidden' : 'visible',\n background: theme.tabs.header.background,\n gap: theme.tabs.gap,\n pad: overflow ? '2px' : undefined,\n margin: overflow ? '-2px' : undefined\n }, tabs), overflow && /*#__PURE__*/React.createElement(Button, {\n a11yTitle: \"Next Tab\",\n disabled: disableRightArrow\n // removed from tabIndex, button is redundant for keyboard users\n ,\n tabIndex: -1,\n onClick: function onClick() {\n return moveByArrowKey('next');\n }\n }, /*#__PURE__*/React.createElement(Box, {\n pad: {\n vertical: 'xsmall',\n horizontal: 'small'\n }\n }, /*#__PURE__*/React.createElement(Next, {\n color: disableRightArrow ? theme.button.disabled.color : theme.global.colors.text\n })))), /*#__PURE__*/React.createElement(StyledTabPanel, {\n flex: flex,\n \"aria-label\": tabContentTitle,\n role: \"tabpanel\"\n }, activeContent));\n});\nTabs.displayName = 'Tabs';\nTabs.propTypes = TabsPropTypes;\nexport { Tabs };","import React from 'react';\nexport var TabsContext = /*#__PURE__*/React.createContext({});","import styled, { css } from 'styled-components';\nimport { genericStyles, normalizeColor, textAlignStyle } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar sizeStyle = function sizeStyle(props) {\n var size = props.size || 'medium';\n var data = props.theme.text[size];\n if (data) {\n return css([\"font-size:\", \";line-height:\", \";\"], data.size, data.height);\n }\n return css([\"font-size:\", \";line-height:normal;\"], size);\n};\nvar truncateStyle = \"\\n white-space: nowrap;\\n max-width: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n\";\nvar colorStyle = css([\"color:\", \";\"], function (props) {\n return normalizeColor(props.colorProp, props.theme);\n});\nvar weightStyle = css([\"font-weight:\", \";\"], function (props) {\n return props.weight;\n});\nvar wordBreakStyle = css([\"word-break:\", \";\"], function (props) {\n return props.wordBreak;\n});\nvar fontFamily = css([\"font-family:\", \";\"], function (props) {\n return props.theme.text.font.family;\n});\nvar StyledText = styled('span').withConfig({\n shouldForwardProp: function shouldForwardProp(prop, defaultValidatorFn) {\n return defaultValidatorFn(prop) && prop !== 'size';\n }\n}).withConfig({\n displayName: \"StyledText\",\n componentId: \"sc-1sadyjn-0\"\n})([\"\", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return sizeStyle(props);\n}, function (props) {\n return props.textAlign && textAlignStyle;\n}, function (props) {\n return props.truncate && truncateStyle;\n}, function (props) {\n return props.colorProp && colorStyle;\n}, function (props) {\n return props.weight && weightStyle;\n}, function (props) {\n return props.wordBreak && wordBreakStyle;\n}, function (props) {\n return props.theme.text.font && props.theme.text.font.family && fontFamily;\n}, function (props) {\n return props.theme.text && props.theme.text.extend;\n});\nStyledText.defaultProps = {};\nObject.setPrototypeOf(StyledText.defaultProps, defaultProps);\nexport { StyledText };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport PropTypes from 'prop-types';\nimport { colorPropType, genericProps, MARGIN_SIZES, skeletonPropType } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = _extends({}, genericProps, {\n color: colorPropType,\n margin: PropTypes.oneOfType([PropTypes.oneOf(['none'].concat(MARGIN_SIZES)), PropTypes.shape({\n bottom: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n end: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n left: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n right: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n start: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n top: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string]),\n vertical: PropTypes.oneOfType([PropTypes.oneOf(MARGIN_SIZES), PropTypes.string])\n }), PropTypes.string]),\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge', '2xl', '3xl', '4xl', '5xl', '6xl']), PropTypes.string]),\n skeleton: skeletonPropType,\n tag: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n as: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.element]),\n textAlign: PropTypes.oneOf(['start', 'center', 'end', 'justify']),\n tip: PropTypes.oneOfType([PropTypes.shape({\n content: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n dropProps: PropTypes.shape({}),\n plain: PropTypes.bool\n }), PropTypes.string]),\n truncate: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['tip'])]),\n weight: PropTypes.oneOfType([PropTypes.oneOf(['normal', 'bold', 'bolder', 'lighter']), PropTypes.number]),\n wordBreak: PropTypes.oneOf(['normal', 'break-all', 'keep-all', 'break-word'])\n });\n}\nexport var TextPropTypes = PropType;","var _excluded = [\"as\", \"size\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Skeleton } from '../Skeleton';\nvar TextSkeleton = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var as = _ref.as,\n sizeProp = _ref.size,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var size = sizeProp || 'medium';\n var data = theme.text[size];\n var height = data ? data.size : sizeProp;\n return /*#__PURE__*/React.createElement(Skeleton, _extends({\n ref: ref,\n as: as,\n height: height\n }, theme.text.skeleton, rest));\n});\nTextSkeleton.displayName = 'TextSkeleton';\nexport { TextSkeleton };","var _excluded = [\"children\", \"color\", \"tag\", \"as\", \"tip\", \"a11yTitle\", \"truncate\", \"size\", \"skeleton\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useMemo, useState } from 'react';\nimport { useLayoutEffect } from '../../utils/use-isomorphic-layout-effect';\nimport { StyledText } from './StyledText';\nimport { Tip } from '../Tip';\nimport { useForwardedRef } from '../../utils';\nimport { TextPropTypes } from './propTypes';\nimport { useSkeleton } from '../Skeleton';\nimport { TextSkeleton } from './TextSkeleton';\nimport { TextContext } from './TextContext';\nvar Text = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n color = _ref.color,\n tag = _ref.tag,\n as = _ref.as,\n tipProp = _ref.tip,\n _ref$a11yTitle = _ref.a11yTitle,\n a11yTitle = _ref$a11yTitle === void 0 ? typeof tipProp === 'string' && tipProp || (tipProp == null ? void 0 : tipProp.content) || undefined : _ref$a11yTitle,\n truncate = _ref.truncate,\n size = _ref.size,\n skeletonProp = _ref.skeleton,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var textRef = useForwardedRef(ref);\n var _useState = useState(false),\n textTruncated = _useState[0],\n setTextTruncated = _useState[1];\n var textContextValue = useMemo(function () {\n return {\n size: size\n };\n }, [size]);\n var skeleton = useSkeleton();\n useLayoutEffect(function () {\n var updateTip = function updateTip() {\n setTextTruncated(false);\n if (truncate === 'tip' && textRef.current && textRef.current.scrollWidth > textRef.current.offsetWidth) {\n setTextTruncated(true);\n }\n };\n window.addEventListener('resize', updateTip);\n updateTip();\n return function () {\n return window.removeEventListener('resize', updateTip);\n };\n }, [textRef, truncate]);\n if (skeleton) {\n return /*#__PURE__*/React.createElement(TextSkeleton, _extends({\n ref: ref,\n as: as,\n size: size\n }, skeletonProp, rest));\n }\n var styledTextResult = /*#__PURE__*/React.createElement(StyledText, _extends({\n as: !as && tag ? tag : as,\n colorProp: color,\n \"aria-label\": a11yTitle,\n truncate: truncate,\n size: size\n }, rest, {\n ref: textRef\n }), children !== undefined ? /*#__PURE__*/React.createElement(TextContext.Provider, {\n value: textContextValue\n }, children) : undefined);\n if (tipProp || textTruncated) {\n // place the text content in a tip if truncate === 'tip'\n // and the text has been truncated\n if (textTruncated) {\n return /*#__PURE__*/React.createElement(Tip, _extends({\n content: children\n }, tipProp), styledTextResult);\n }\n // place the text content in a tip if truncate !== 'tip'\n // it displays even if the text has not truncated\n if (truncate !== 'tip') {\n return /*#__PURE__*/React.createElement(Tip, tipProp, styledTextResult);\n }\n }\n return styledTextResult;\n});\nText.displayName = 'Text';\nText.defaultProps = {\n level: 1\n};\nText.propTypes = TextPropTypes;\nexport { Text };","import React from 'react';\nexport var TextContext = /*#__PURE__*/React.createContext({});","import styled, { css } from 'styled-components';\nimport { disabledStyle, getInputPadBySide, inputStyle, parseMetricToNum, plainInputStyle, textAlignStyle, widthStyle } from '../../utils';\nimport { defaultProps } from '../../default-props';\nimport { inputPadForIcon } from '../../utils/styles';\nvar getPlainStyle = function getPlainStyle(plain) {\n if (plain === 'full') {\n return css([\"\", \" padding:0;\"], plainInputStyle);\n }\n return plain && plainInputStyle;\n};\nvar StyledTextInput = styled.input.withConfig({\n displayName: \"StyledTextInput\",\n componentId: \"sc-1x30a0s-0\"\n})([\"\", \" \", \" \", \" \", \" \", \" \", \" \", \";\"], inputStyle, function (props) {\n return getPlainStyle(props.plain);\n}, function (props) {\n return props.icon && inputPadForIcon;\n}, function (props) {\n return props.disabled && disabledStyle(props.theme.textInput.disabled && props.theme.textInput.disabled.opacity);\n}, function (props) {\n return props.textAlign && textAlignStyle;\n}, function (props) {\n return props.widthProp && widthStyle(props.widthProp, props.theme);\n}, function (props) {\n return props.theme.textInput && props.theme.textInput.extend;\n});\nStyledTextInput.defaultProps = {};\nObject.setPrototypeOf(StyledTextInput.defaultProps, defaultProps);\nvar StyledTextInputContainer = styled.div.withConfig({\n displayName: \"StyledTextInput__StyledTextInputContainer\",\n componentId: \"sc-1x30a0s-1\"\n})([\"position:relative;width:100%;\", \";\"], function (props) {\n return props.theme.textInput && props.theme.textInput.container && props.theme.textInput.container.extend;\n});\nStyledTextInputContainer.defaultProps = {};\nObject.setPrototypeOf(StyledTextInputContainer.defaultProps, defaultProps);\nvar StyledPlaceholder = styled.div.withConfig({\n displayName: \"StyledTextInput__StyledPlaceholder\",\n componentId: \"sc-1x30a0s-2\"\n})([\"position:absolute;left:\", \"px;top:50%;transform:translateY(-50%);display:flex;justify-content:center;pointer-events:none;\", \";\"], function (props) {\n return parseMetricToNum(getInputPadBySide(props, 'left')) - parseMetricToNum(props.theme.global.control.border.width);\n}, function (props) {\n return props.theme.textInput && props.theme.textInput.placeholder && props.theme.textInput.placeholder.extend;\n});\nStyledPlaceholder.defaultProps = {};\nObject.setPrototypeOf(StyledPlaceholder.defaultProps, defaultProps);\nvar StyledIcon = styled.div.withConfig({\n displayName: \"StyledTextInput__StyledIcon\",\n componentId: \"sc-1x30a0s-3\"\n})([\"position:absolute;display:flex;justify:center;top:50%;transform:translateY(-50%);pointer-events:none;\", \"\"], function (props) {\n return props.reverse ? \"right: \" + getInputPadBySide(props, 'right') + \";\" : \"left: \" + getInputPadBySide(props, 'left') + \";\";\n});\nvar StyledSuggestions = styled.ol.withConfig({\n displayName: \"StyledTextInput__StyledSuggestions\",\n componentId: \"sc-1x30a0s-4\"\n})([\"border-top-left-radius:0;border-top-right-radius:0;margin:0;padding:0;list-style-type:none;\", \";\"], function (props) {\n return props.theme.textInput && props.theme.textInput.suggestions && props.theme.textInput.suggestions.extend;\n});\nStyledSuggestions.defaultProps = {};\nObject.setPrototypeOf(StyledSuggestions.defaultProps, defaultProps);\nexport { StyledTextInput, StyledTextInputContainer, StyledPlaceholder, StyledIcon, StyledSuggestions };","import PropTypes from 'prop-types';\nimport { widthPropType } from '../../utils/general-prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n a11yTitle: PropTypes.string,\n defaultSuggestion: PropTypes.number,\n dropAlign: PropTypes.shape({\n top: PropTypes.oneOf(['top', 'bottom']),\n bottom: PropTypes.oneOf(['top', 'bottom']),\n right: PropTypes.oneOf(['left', 'right']),\n left: PropTypes.oneOf(['left', 'right'])\n }),\n dropHeight: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge']), PropTypes.string]),\n dropTarget: PropTypes.object,\n dropProps: PropTypes.object,\n icon: PropTypes.element,\n id: PropTypes.string,\n focusIndicator: PropTypes.bool,\n messages: PropTypes.shape({\n enterSelect: PropTypes.string,\n suggestionsCount: PropTypes.string,\n suggestionsExist: PropTypes.string,\n suggestionIsOpen: PropTypes.string\n }),\n name: PropTypes.string,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onSuggestionSelect: PropTypes.func,\n onSuggestionsOpen: PropTypes.func,\n onSuggestionsClose: PropTypes.func,\n placeholder: PropTypes.node,\n plain: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['full'])]),\n reverse: PropTypes.bool,\n size: PropTypes.oneOfType([PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge', '2xl', '3xl', '4xl', '5xl', '6xl']), PropTypes.string]),\n suggestions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({\n label: PropTypes.node,\n // eslint-disable-next-line\n value: PropTypes.any // this is intentional any\n }), PropTypes.string])),\n textAlign: PropTypes.oneOf(['start', 'center', 'end']),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: widthPropType\n };\n}\nexport var TextInputPropTypes = PropType;","var _excluded = [\"a11yTitle\", \"defaultSuggestion\", \"defaultValue\", \"dropAlign\", \"dropHeight\", \"dropTarget\", \"dropProps\", \"focusIndicator\", \"icon\", \"id\", \"messages\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"onKeyDown\", \"onSelect\", \"onSuggestionSelect\", \"onSuggestionsClose\", \"onSuggestionsOpen\", \"placeholder\", \"plain\", \"readOnly\", \"reverse\", \"suggestions\", \"textAlign\", \"value\", \"width\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { forwardRef, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { Button } from '../Button';\nimport { Drop } from '../Drop';\nimport { InfiniteScroll } from '../InfiniteScroll';\nimport { Keyboard } from '../Keyboard';\nimport { FormContext } from '../Form/FormContext';\nimport { AnnounceContext } from '../../contexts';\nimport { isNodeAfterScroll, isNodeBeforeScroll, sizeStyle, useForwardedRef, useSizedIcon } from '../../utils';\nimport { StyledTextInput, StyledTextInputContainer, StyledPlaceholder, StyledIcon, StyledSuggestions } from './StyledTextInput';\nimport { MessageContext } from '../../contexts/MessageContext';\nimport { TextInputPropTypes } from './propTypes';\nvar renderLabel = function renderLabel(suggestion) {\n if (suggestion && typeof suggestion === 'object') {\n return suggestion.label || suggestion.value;\n }\n return suggestion;\n};\nvar stringLabel = function stringLabel(suggestion) {\n if (suggestion && typeof suggestion === 'object') {\n if (suggestion.label && typeof suggestion.label === 'string') {\n return suggestion.label;\n }\n return suggestion.value;\n }\n return suggestion;\n};\nvar ContainerBox = styled(Box).withConfig({\n displayName: \"TextInput__ContainerBox\",\n componentId: \"sc-1ai0c08-0\"\n})([\"\", \";@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){width:100%;}\"], function (props) {\n return props.dropHeight ? sizeStyle('max-height', props.dropHeight, props.theme) : 'max-height: inherit;';\n});\nvar defaultDropAlign = {\n top: 'bottom',\n left: 'left'\n};\nvar TextInput = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _inputRef$current;\n var a11yTitle = _ref.a11yTitle,\n defaultSuggestion = _ref.defaultSuggestion,\n defaultValue = _ref.defaultValue,\n _ref$dropAlign = _ref.dropAlign,\n dropAlign = _ref$dropAlign === void 0 ? defaultDropAlign : _ref$dropAlign,\n dropHeight = _ref.dropHeight,\n dropTarget = _ref.dropTarget,\n dropProps = _ref.dropProps,\n _ref$focusIndicator = _ref.focusIndicator,\n focusIndicator = _ref$focusIndicator === void 0 ? true : _ref$focusIndicator,\n icon = _ref.icon,\n id = _ref.id,\n messages = _ref.messages,\n name = _ref.name,\n _onBlur = _ref.onBlur,\n onChange = _ref.onChange,\n _onFocus = _ref.onFocus,\n onKeyDown = _ref.onKeyDown,\n onSelect = _ref.onSelect,\n onSuggestionSelect = _ref.onSuggestionSelect,\n onSuggestionsClose = _ref.onSuggestionsClose,\n onSuggestionsOpen = _ref.onSuggestionsOpen,\n placeholder = _ref.placeholder,\n plain = _ref.plain,\n readOnly = _ref.readOnly,\n reverse = _ref.reverse,\n suggestions = _ref.suggestions,\n textAlign = _ref.textAlign,\n valueProp = _ref.value,\n widthProp = _ref.width,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var _useContext = useContext(MessageContext),\n format = _useContext.format;\n var announce = useContext(AnnounceContext);\n var formContext = useContext(FormContext);\n var inputRef = useForwardedRef(ref);\n var dropRef = useRef();\n var suggestionsRef = useRef();\n // if this is a readOnly property, don't set a name with the form context\n // this allows Select to control the form context for the name.\n var _formContext$useFormI = formContext.useFormInput({\n name: readOnly ? undefined : name,\n value: valueProp\n }),\n value = _formContext$useFormI[0],\n setValue = _formContext$useFormI[1];\n var _useState = useState(),\n focus = _useState[0],\n setFocus = _useState[1];\n var _useState2 = useState(false),\n showDrop = _useState2[0],\n setShowDrop = _useState2[1];\n var handleSuggestionSelect = useMemo(function () {\n return onSelect && !onSuggestionSelect ? onSelect : onSuggestionSelect;\n }, [onSelect, onSuggestionSelect]);\n var handleTextSelect = useMemo(function () {\n return onSelect && onSuggestionSelect ? onSelect : undefined;\n }, [onSelect, onSuggestionSelect]);\n var _useState3 = useState(),\n suggestionsAtClose = _useState3[0],\n setSuggestionsAtClose = _useState3[1];\n var openDrop = useCallback(function () {\n setShowDrop(true);\n announce(format({\n id: 'textInput.suggestionIsOpen',\n messages: messages\n }));\n announce(suggestions.length + \" \" + format({\n id: 'textInput.suggestionsCount',\n messages: messages\n }));\n if (onSuggestionsOpen) onSuggestionsOpen();\n }, [announce, messages, format, onSuggestionsOpen, suggestions]);\n var closeDrop = useCallback(function () {\n setSuggestionsAtClose(suggestions); // must be before closing drop\n setShowDrop(false);\n if (onSuggestionsClose) onSuggestionsClose();\n }, [onSuggestionsClose, suggestions]);\n var clickOutside = useCallback(function (event) {\n if (event.target !== inputRef.current) closeDrop();\n }, [inputRef, closeDrop]);\n\n // Handle scenarios where we have focus, the drop isn't showing,\n // and the suggestions change. We don't want to open the drop if\n // the drop has been closed by onEsc and the suggestions haven't\n // changed. So, we remember the suggestions we are showing when\n // the drop was closed and only re-open it when the suggestions\n // subsequently change.\n useEffect(function () {\n if (focus && !showDrop && suggestions && suggestions.length && (!suggestionsAtClose || suggestionsAtClose.length !== suggestions.length)) {\n openDrop();\n }\n }, [focus, openDrop, showDrop, suggestions, suggestionsAtClose]);\n\n // if we have no suggestions, close drop if it's open\n useEffect(function () {\n if (showDrop && (!suggestions || !suggestions.length)) {\n closeDrop();\n }\n }, [closeDrop, showDrop, suggestions]);\n var valueSuggestionIndex = useMemo(function () {\n return suggestions ? suggestions.map(function (suggestion) {\n return typeof suggestion === 'object' ? suggestion.value : suggestion;\n }).indexOf(value) : -1;\n }, [suggestions, value]);\n\n // choose the best suggestion, either the explicit default or the one\n // that matches the current value\n var resetSuggestionIndex = useMemo(function () {\n if (valueSuggestionIndex === -1 && typeof defaultSuggestion === 'number') {\n return defaultSuggestion;\n }\n return valueSuggestionIndex;\n }, [defaultSuggestion, valueSuggestionIndex]);\n\n // activeSuggestionIndex unifies mouse and keyboard interaction of\n // the suggestions\n var _useState4 = useState(resetSuggestionIndex),\n activeSuggestionIndex = _useState4[0],\n setActiveSuggestionIndex = _useState4[1];\n\n // Only update active suggestion index when the mouse actually moves,\n // not when suggestions are moving under the mouse.\n var _useState5 = useState(),\n mouseMovedSinceLastKey = _useState5[0],\n setMouseMovedSinceLastKey = _useState5[1];\n\n // set activeSuggestionIndex when value changes\n useEffect(function () {\n return setActiveSuggestionIndex(valueSuggestionIndex);\n }, [valueSuggestionIndex]);\n\n // reset activeSuggestionIndex when the drop is closed\n useEffect(function () {\n if (!showDrop) setActiveSuggestionIndex(resetSuggestionIndex);\n }, [resetSuggestionIndex, showDrop]);\n\n // announce active suggestion\n useEffect(function () {\n if (activeSuggestionIndex >= 0) {\n var label = stringLabel(suggestions[activeSuggestionIndex]);\n announce(label + \" \" + format({\n id: 'textInput.enterSelect',\n messages: messages\n }));\n }\n }, [activeSuggestionIndex, announce, messages, format, suggestions]);\n\n // make sure activeSuggestion is visible in scroll\n useEffect(function () {\n var timer = setTimeout(function () {\n var list = suggestionsRef.current;\n if (showDrop && activeSuggestionIndex !== -1 && list) {\n var container = list.parentNode;\n var item = list.children[activeSuggestionIndex];\n if (container.scrollTo) {\n if (isNodeAfterScroll(item, container)) container.scrollTo(0, item.offsetTop - (container.getBoundingClientRect().height - item.getBoundingClientRect().height));else if (isNodeBeforeScroll(item, container)) container.scrollTo(0, item.offsetTop);\n }\n }\n }, 50); // delay to allow Drop to animate in\n return function () {\n return clearTimeout(timer);\n };\n }, [activeSuggestionIndex, showDrop]);\n var setValueFromSuggestion = function setValueFromSuggestion(event, suggestion) {\n // if we stole the focus in the drop, perhaps by interacting with\n // a suggestion button or the scrollbar, give it back\n inputRef.current.focus();\n inputRef.current.value = suggestion; // needed for uncontrolled cases\n closeDrop();\n if (handleSuggestionSelect) {\n if (event.persist) event.persist();\n var adjustedEvent = event;\n adjustedEvent.suggestion = suggestion;\n handleSuggestionSelect(adjustedEvent);\n }\n setValue(suggestion);\n };\n var onNextSuggestion = useCallback(function (event) {\n event.preventDefault();\n var nextActiveIndex = Math.min(activeSuggestionIndex + 1, suggestions.length - 1);\n setActiveSuggestionIndex(nextActiveIndex);\n setMouseMovedSinceLastKey(false);\n }, [activeSuggestionIndex, suggestions]);\n var onPreviousSuggestion = useCallback(function (event) {\n event.preventDefault();\n var nextActiveIndex = Math.max(activeSuggestionIndex - 1, 0);\n setActiveSuggestionIndex(nextActiveIndex);\n setMouseMovedSinceLastKey(false);\n }, [activeSuggestionIndex]);\n\n // account for input value in both controlled and uncontrolled scenarios\n var hasValue = value || ((_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value);\n var showStyledPlaceholder = useMemo(function () {\n return placeholder && typeof placeholder !== 'string' && !hasValue;\n }, [hasValue, placeholder]);\n var drop;\n var extraProps = {\n onSelect: handleTextSelect\n };\n if (showDrop) {\n drop = /*#__PURE__*/React.createElement(Drop, _extends({\n ref: dropRef,\n id: id ? \"text-input-drop__\" + id : undefined,\n align: dropAlign,\n responsive: false,\n target: dropTarget || inputRef.current,\n onClickOutside: clickOutside,\n onEsc: closeDrop\n }, dropProps), /*#__PURE__*/React.createElement(ContainerBox, {\n id: id ? \"listbox__\" + id : undefined,\n role: \"listbox\",\n overflow: \"auto\",\n dropHeight: dropHeight,\n onMouseMove: function onMouseMove() {\n return setMouseMovedSinceLastKey(true);\n }\n }, /*#__PURE__*/React.createElement(StyledSuggestions, {\n ref: suggestionsRef\n }, /*#__PURE__*/React.createElement(InfiniteScroll, {\n items: suggestions,\n step: theme.select.step,\n show: activeSuggestionIndex !== -1 ? activeSuggestionIndex : undefined\n }, function (suggestion, index, itemRef) {\n var active = activeSuggestionIndex === index;\n var selected = suggestion === value;\n // Determine whether the label is done as a child or\n // as an option Button kind property.\n var renderedLabel = renderLabel(suggestion);\n var child;\n if (typeof renderedLabel !== 'string')\n // must be an element rendered by suggestions.label\n child = renderedLabel;else if (!theme.button.option)\n // don't have theme support, need to layout here\n child = /*#__PURE__*/React.createElement(Box, {\n align: \"start\",\n pad: \"small\"\n }, renderedLabel);\n // if we have a child, turn on plain\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: stringLabel(suggestion) + \"-\" + index,\n ref: itemRef\n }, /*#__PURE__*/React.createElement(Button, {\n id: id ? \"listbox-option-\" + index + \"__\" + id : undefined,\n role: \"option\",\n \"aria-selected\": selected ? 'true' : 'false',\n active: active,\n fill: \"horizontal\",\n plain: !child ? undefined : true,\n align: \"start\",\n kind: !child ? 'option' : undefined,\n label: !child ? renderedLabel : undefined,\n onClick: function onClick(event) {\n return setValueFromSuggestion(event, suggestion);\n },\n onMouseMove: mouseMovedSinceLastKey && activeSuggestionIndex !== index ? function () {\n return setActiveSuggestionIndex(index);\n } : undefined\n }, child));\n }))));\n }\n var keyboardProps = {\n onKeyDown: onKeyDown\n };\n if (showDrop) {\n keyboardProps.onEnter = function (event) {\n // prevent submitting forms via Enter when the drop is open\n event.preventDefault();\n if (activeSuggestionIndex >= 0) setValueFromSuggestion(event, suggestions[activeSuggestionIndex]);else closeDrop();\n };\n if (activeSuggestionIndex > 0) keyboardProps.onUp = onPreviousSuggestion;\n if (activeSuggestionIndex < suggestions.length - 1) keyboardProps.onDown = onNextSuggestion;\n keyboardProps.onTab = closeDrop;\n } else if (suggestions && suggestions.length > 0) {\n keyboardProps.onDown = openDrop;\n }\n\n /*\n If the text input has a list of suggestions, add the WAI-ARIA 1.2\n combobox role and states.\n */\n var comboboxProps = {};\n var activeOptionID;\n if (id && (suggestions == null ? void 0 : suggestions.length) > -1) {\n if (showDrop && activeSuggestionIndex > -1) {\n activeOptionID = \"listbox-option-\" + activeSuggestionIndex + \"__\" + id;\n }\n comboboxProps = {\n 'aria-activedescendant': activeOptionID,\n 'aria-autocomplete': 'list',\n 'aria-expanded': showDrop ? 'true' : 'false',\n 'aria-controls': showDrop ? \"listbox__\" + id : undefined,\n role: 'combobox'\n };\n }\n // For the Keyboard target below, if we have focus,\n // either on the input element or within the drop,\n // then we set the target to the document,\n // otherwise we only listen to onDown on the input element itself,\n // primarily for tests.\n\n var textInputIcon = useSizedIcon(icon, rest.size, theme);\n return /*#__PURE__*/React.createElement(StyledTextInputContainer, {\n plain: plain\n }, showStyledPlaceholder && /*#__PURE__*/React.createElement(StyledPlaceholder, null, placeholder), textInputIcon && /*#__PURE__*/React.createElement(StyledIcon, {\n reverse: reverse,\n theme: theme\n }, textInputIcon), /*#__PURE__*/React.createElement(Keyboard, _extends({\n target: focus ? 'document' : undefined\n }, keyboardProps), /*#__PURE__*/React.createElement(StyledTextInput, _extends({\n \"aria-label\": a11yTitle,\n ref: inputRef,\n id: id,\n name: name,\n autoComplete: \"off\",\n plain: plain,\n placeholder: typeof placeholder === 'string' ? placeholder : undefined,\n icon: icon,\n reverse: reverse,\n focus: focus,\n focusIndicator: focusIndicator,\n textAlign: textAlign,\n widthProp: widthProp\n }, rest, extraProps, comboboxProps, {\n defaultValue: renderLabel(defaultValue),\n value: renderLabel(value),\n readOnly: readOnly,\n onFocus: function onFocus(event) {\n // Don't do anything if we are acting like we already have\n // focus. This can happen when this input loses focus temporarily\n // to our drop, see onBlur() handler below.\n if (!focus) {\n setFocus(true);\n if (suggestions && suggestions.length > 0) {\n announce(format({\n id: 'textInput.suggestionsExist',\n messages: messages\n }));\n openDrop();\n }\n if (_onFocus) _onFocus(event);\n }\n },\n onBlur: function onBlur(event) {\n // Only treat it as a blur if the element receiving focus\n // isn't in our drop. The relatedTarget will be our drop\n // when the user clicks on a suggestion or interacts with the\n // scrollbar in the drop.\n if (!event.relatedTarget || event.relatedTarget !== dropRef.current) {\n setFocus(false);\n if (_onBlur) _onBlur(event);\n }\n },\n onChange: readOnly ? undefined : function (event) {\n // when TextInput is not contained in a Form, no re-render\n // will come from this onChange and remove the placeholder\n // so we need to update state to ensure the styled\n // placeholder only appears when there is no value\n if (suggestions && focus && !showDrop) {\n openDrop();\n }\n setValue(event.target.value);\n setActiveSuggestionIndex(resetSuggestionIndex);\n if (onChange) onChange(event);\n }\n }))), drop);\n});\nTextInput.displayName = 'TextInput';\nTextInput.propTypes = TextInputPropTypes;\nexport { TextInput };","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n content: PropTypes.node,\n dropProps: PropTypes.object,\n plain: PropTypes.bool\n };\n}\nexport var TipPropTypes = PropType;","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { Children, cloneElement, forwardRef, useContext, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { Box } from '../Box';\nimport { Drop } from '../Drop';\nimport { useForwardedRef, useKeyboard } from '../../utils';\nimport { TipPropTypes } from './propTypes';\nvar Tip = /*#__PURE__*/forwardRef(function (_ref, tipRef) {\n var children = _ref.children,\n content = _ref.content,\n dropProps = _ref.dropProps,\n plain = _ref.plain;\n var theme = useContext(ThemeContext);\n var _useState = useState(false),\n over = _useState[0],\n setOver = _useState[1];\n var usingKeyboard = useKeyboard();\n var componentRef = useForwardedRef(tipRef);\n\n // Three use case for children\n // 1. Tip has a single child + it is a React Element => Great!\n // 2. Tip has a single child + not React Element =>\n // span will wrap the child so we can use ref and events.\n // 3. Tip has more than one child => Abort, display Children.only error\n var child = Children.count(children) <= 1 && ! /*#__PURE__*/React.isValidElement(children) && /*#__PURE__*/React.createElement(\"span\", null, children) || Children.only(children);\n var clonedChild = /*#__PURE__*/cloneElement(child, {\n onMouseEnter: function onMouseEnter(event) {\n var _child$props;\n setOver(true);\n if ((_child$props = child.props) != null && _child$props.onMouseEnter) child.props.onMouseEnter(event);\n },\n onMouseLeave: function onMouseLeave(event) {\n var _child$props2;\n setOver(false);\n if ((_child$props2 = child.props) != null && _child$props2.onMouseLeave) child.props.onMouseLeave(event);\n },\n onFocus: function onFocus(event) {\n var _child$props3;\n if (usingKeyboard) setOver(true);\n if ((_child$props3 = child.props) != null && _child$props3.onFocus) child.props.onFocus(event);\n },\n onBlur: function onBlur(event) {\n var _child$props4;\n if (usingKeyboard) setOver(false);\n if ((_child$props4 = child.props) != null && _child$props4.onBlur) child.props.onBlur(event);\n },\n key: 'tip-child',\n ref: function ref(node) {\n // https://github.com/facebook/react/issues/8873#issuecomment-287873307\n if (typeof componentRef === 'function') {\n componentRef(node);\n } else if (componentRef) {\n // eslint-disable-next-line no-param-reassign\n componentRef.current = node;\n }\n // Call the original ref, if any\n var callerRef = child.ref;\n if (typeof callerRef === 'function') {\n callerRef(node);\n } else if (callerRef) {\n callerRef.current = node;\n }\n }\n });\n return [clonedChild, over && /*#__PURE__*/React.createElement(Drop, _extends({\n target: componentRef.current,\n trapFocus: false,\n key: \"tip-drop\"\n }, theme.tip.drop, dropProps), plain ? content : /*#__PURE__*/React.createElement(Box, theme.tip.content, content))];\n});\nTip.displayName = 'Tip';\nTip.propTypes = TipPropTypes;\nexport { Tip };","import React, { useCallback, useContext, useEffect, useRef } from 'react';\nexport var AnalyticsContext = /*#__PURE__*/React.createContext(function () {});\nexport var useAnalytics = function useAnalytics() {\n return useContext(AnalyticsContext);\n};\nexport var AnalyticsProvider = function AnalyticsProvider(_ref) {\n var onAnalytics = _ref.onAnalytics,\n children = _ref.children;\n var lastUrlRef = useRef();\n var sendAnalytics = useCallback(function (data) {\n return onAnalytics && onAnalytics(data);\n }, [onAnalytics]);\n useEffect(function () {\n var observer;\n if (onAnalytics) {\n observer = new window.MutationObserver(function () {\n var _window, _window$location;\n var url = (_window = window) == null ? void 0 : (_window$location = _window.location) == null ? void 0 : _window$location.href;\n var previousUrl = lastUrlRef.current;\n if (url !== previousUrl) {\n lastUrlRef.current = url;\n sendAnalytics({\n type: 'pageView',\n url: url,\n previousUrl: previousUrl\n });\n }\n });\n observer.observe(document, {\n subtree: true,\n childList: true\n });\n }\n return function () {\n var _observer;\n return (_observer = observer) == null ? void 0 : _observer.disconnect();\n };\n }, [sendAnalytics, onAnalytics]);\n return /*#__PURE__*/React.createElement(AnalyticsContext.Provider, {\n value: sendAnalytics\n }, children);\n};","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n children: PropTypes.func\n };\n}\nexport var AnnounceContextPropTypes = PropType;","import React from 'react';\nimport { AnnounceContextPropTypes } from './propTypes';\nvar createAnnouncer = function createAnnouncer() {\n var announcer = document.createElement('div');\n announcer.id = 'grommet-announcer';\n announcer.style.left = '-100%';\n announcer.style.right = '100%';\n announcer.style.position = 'fixed';\n announcer.style['z-index'] = '-1';\n document.body.insertBefore(announcer, document.body.firstChild);\n return announcer;\n};\nexport var AnnounceContext = /*#__PURE__*/React.createContext(function (message, mode, timeout) {\n if (mode === void 0) {\n mode = 'polite';\n }\n if (timeout === void 0) {\n timeout = 500;\n }\n // we only create a new container if we don't have one already\n // we create a separate node so that grommet does not set aria-hidden to it\n var announcer = document.body.querySelector(\"#grommet-announcer[aria-live]\") || createAnnouncer();\n announcer.setAttribute('aria-live', 'off');\n announcer.innerHTML = message;\n announcer.setAttribute('aria-live', mode);\n setTimeout(function () {\n announcer.innerHTML = '';\n }, timeout);\n});\nAnnounceContext.propTypes = AnnounceContextPropTypes;","import React from 'react';\nexport var ContainerTargetContext = /*#__PURE__*/React.createContext(typeof document === 'object' ? document.body : undefined);","import React from 'react';\nimport defaultMessages from '../../languages/default.json';\n\n// options:\n// id: message id\n// messages: (optional) an object of message overrides\n// values: (optional) currently unused but in the future\n// will be an object with substitution values for\n// positional variables in the message text.\n// defaultMessage: (optional) default message to use if\n// the message isn't found elsewhere.\nvar _format = function format(options, messages) {\n var _options$id;\n // Message id's are hierarchical. For the component-specific\n // message objects passed as options.messages, just use the last\n // component in the id for backwards compatibility.\n //\n // For overall messages passed to grommet, use the hierarchical\n // id. For that messages object, the messages are in an object\n // hierarchy by component, similar to how the theme works.\n //\n // Applications that typically keep their messages in flat\n // objects with a single key string per message can override\n // this format function to get the grommet messages from\n // their bundles that way and don't need to pass the messages\n // themselves in this property, just the format function.\n var idParts = ((_options$id = options.id) == null ? void 0 : _options$id.split('.')) || [];\n // eslint-disable-next-line no-unsafe-optional-chaining\n var baseId = idParts[(idParts == null ? void 0 : idParts.length) - 1];\n var messageObj = messages;\n idParts.forEach(function (idPart) {\n if (typeof messageObj === 'object') {\n messageObj = messageObj[idPart];\n }\n });\n var message = (options.messages ? options.messages[baseId] : undefined) || messageObj || options.defaultMessage;\n var values = options.values;\n var newMessage = message;\n var tokens = message == null ? void 0 : message.match(/\\{(.+?)\\}/g);\n tokens == null ? void 0 : tokens.forEach(function (token) {\n var names = token.substr(1, token.length - 2);\n var value = values[names];\n newMessage = newMessage.replace(token, value);\n });\n return values ? newMessage : message;\n};\nexport { _format as format };\nvar defaultValue = {\n messages: defaultMessages,\n format: function format(options) {\n return _format(options, defaultMessages);\n }\n};\nexport var MessageContext = /*#__PURE__*/React.createContext(defaultValue);","import React from 'react';\nexport var OptionsContext = /*#__PURE__*/React.createContext({});","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n children: PropTypes.func\n };\n}\nexport var ResponsiveContextPropTypes = PropType;","import React from 'react';\nimport { ResponsiveContextPropTypes } from './propTypes';\nexport var ResponsiveContext = /*#__PURE__*/React.createContext(undefined);\nResponsiveContext.propTypes = ResponsiveContextPropTypes;","import React from 'react';\n\n// When toggling aria-hidden values, we only want to affect elements\n// in the DOM that come from Grommet, so we track those elements in this\n// context value. See FocusedContainer.js\nexport var RootsContext = /*#__PURE__*/React.createContext([]);","import PropTypes from 'prop-types';\nvar PropType = {};\nif (process.env.NODE_ENV !== 'production') {\n PropType = {\n value: PropTypes.shape({})\n };\n}\nexport var ThemeContextPropTypes = PropType;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeContext } from 'styled-components';\nimport { deepMerge } from '../../utils';\nimport { ThemeContextPropTypes } from './propTypes';\nThemeContext.Extend = function (_ref) {\n var children = _ref.children,\n value = _ref.value;\n return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: deepMerge(theme, value)\n }, children);\n });\n};\nThemeContext.Extend.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.shape({}).isRequired\n};\nThemeContext.propTypes = ThemeContextPropTypes;\nexport { ThemeContext };","import { deepMerge } from './utils';\nimport { base } from './themes/base';\nexport var defaultProps = {\n theme: base\n};\nexport var extendDefaultTheme = function extendDefaultTheme(theme) {\n defaultProps.theme = deepMerge(base, theme);\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport { Actions } from 'grommet-icons/icons/Actions';\nimport { AssistListening } from 'grommet-icons/icons/AssistListening';\nimport { CircleInformation } from 'grommet-icons/icons/CircleInformation';\nimport { ClosedCaption } from 'grommet-icons/icons/ClosedCaption';\nimport { Expand } from 'grommet-icons/icons/Expand';\nimport { FormClose } from 'grommet-icons/icons/FormClose';\nimport { FormDown } from 'grommet-icons/icons/FormDown';\nimport { FormNext } from 'grommet-icons/icons/FormNext';\nimport { FormPrevious } from 'grommet-icons/icons/FormPrevious';\nimport { FormUp } from 'grommet-icons/icons/FormUp';\nimport { Next } from 'grommet-icons/icons/Next';\nimport { Pause } from 'grommet-icons/icons/Pause';\nimport { Play } from 'grommet-icons/icons/Play';\nimport { FormPin } from 'grommet-icons/icons/FormPin';\nimport { Previous } from 'grommet-icons/icons/Previous';\nimport { StatusCriticalSmall } from 'grommet-icons/icons/StatusCriticalSmall';\nimport { StatusGoodSmall } from 'grommet-icons/icons/StatusGoodSmall';\nimport { StatusWarningSmall } from 'grommet-icons/icons/StatusWarningSmall';\nimport { StatusUnknownSmall } from 'grommet-icons/icons/StatusUnknownSmall';\nimport { Subtract } from 'grommet-icons/icons/Subtract';\nimport { Volume } from 'grommet-icons/icons/Volume';\nimport { VolumeLow } from 'grommet-icons/icons/VolumeLow';\nimport { base as iconBase } from 'grommet-icons/themes/base';\nimport { deepFreeze, deepMerge } from '../utils/object';\nimport { parseMetricToNum } from '../utils/mixins';\nvar brandColor = '#7D4CDB';\nvar accentColors = ['#6FFFB0', '#FD6FFF', '#81FCED', '#FFCA58'];\nvar neutralColors = ['#00873D', '#3D138D', '#00739D', '#A2423D'];\nvar statusColors = {\n critical: '#FF4040',\n error: '#FF4040',\n warning: '#FFAA15',\n ok: '#00C781',\n unknown: '#CCCCCC',\n disabled: '#CCCCCC'\n};\nvar darkColors = ['#333333', '#555555', '#777777', '#999999', '#999999', '#999999'];\nvar lightColors = ['#F8F8F8', '#F2F2F2', '#EDEDED', '#DADADA', '#DADADA', '#DADADA'];\nvar focusColor = accentColors[0];\nvar colors = {\n active: 'rgba(221, 221, 221, 0.5)',\n 'background-back': {\n dark: '#33333308',\n light: '#EDEDED'\n },\n 'background-front': {\n dark: '#444444',\n light: '#FFFFFF'\n },\n 'background-contrast': {\n light: '#33333310',\n dark: '#FFFFFF18'\n },\n 'active-background': 'background-contrast',\n 'active-text': 'text-strong',\n black: '#000000',\n border: {\n dark: 'rgba(255, 255, 255, 0.33)',\n light: 'rgba(0, 0, 0, 0.33)'\n },\n brand: brandColor,\n control: {\n dark: 'accent-1',\n light: 'brand'\n },\n focus: focusColor,\n 'graph-0': 'accent-1',\n 'graph-1': 'neutral-1',\n 'graph-2': 'neutral-2',\n 'graph-3': 'neutral-3',\n 'graph-4': 'neutral-4',\n placeholder: '#AAAAAA',\n selected: 'brand',\n text: {\n dark: '#f8f8f8',\n light: '#444444'\n },\n 'text-strong': {\n dark: '#FFFFFF',\n light: '#000000'\n },\n 'text-weak': {\n dark: '#CCCCCC',\n light: '#555555'\n },\n 'text-xweak': {\n dark: '#BBBBBB',\n light: '#666666'\n },\n icon: {\n dark: '#f8f8f8',\n light: '#666666'\n },\n 'selected-background': 'brand',\n 'selected-text': 'text-strong',\n white: '#FFFFFF'\n};\nvar colorArray = function colorArray(array, prefix) {\n return array.forEach(function (color, index) {\n colors[prefix + \"-\" + (index + 1)] = color;\n });\n};\ncolorArray(accentColors, 'accent');\ncolorArray(darkColors, 'dark');\ncolorArray(lightColors, 'light');\ncolorArray(neutralColors, 'neutral');\nObject.keys(statusColors).forEach(function (color) {\n colors[\"status-\" + color] = statusColors[color];\n});\nexport var generate = function generate(baseSpacing, scale) {\n if (baseSpacing === void 0) {\n baseSpacing = 24;\n }\n if (scale === void 0) {\n scale = 6;\n }\n // 24\n var baseFontSize = baseSpacing * 0.75; // 18\n var fontScale = baseSpacing / scale; // 4\n\n var fontSizing = function fontSizing(factor) {\n return {\n size: baseFontSize + factor * fontScale + \"px\",\n height: baseSpacing + factor * fontScale + \"px\",\n // maxWidth chosen to be ~50 characters wide\n // see: https://ux.stackexchange.com/a/34125\n maxWidth: baseSpacing * (baseFontSize + factor * fontScale) + \"px\"\n };\n };\n var borderWidth = 2;\n var controlBorderWidth = 1;\n var result = deepMerge(iconBase, {\n global: {\n active: {\n background: {\n color: 'active',\n opacity: 'medium'\n },\n color: {\n dark: 'white',\n light: 'black'\n }\n },\n animation: {\n duration: '1s',\n jiggle: {\n duration: '0.1s'\n }\n },\n // backgrounds: undefined,\n borderSize: {\n xsmall: '1px',\n small: '2px',\n medium: baseSpacing / 6 + \"px\",\n // 4\n large: baseSpacing / 2 + \"px\",\n // 12\n xlarge: baseSpacing + \"px\" // 24\n },\n\n breakpoints: {\n small: {\n value: baseSpacing * 32,\n // 768\n borderSize: {\n xsmall: '1px',\n small: '2px',\n medium: baseSpacing / 6 + \"px\",\n // 4\n large: baseSpacing / 4 + \"px\",\n // 6\n xlarge: baseSpacing / 2 + \"px\" // 12\n },\n\n edgeSize: {\n none: '0px',\n hair: '1px',\n // for Chart\n xxsmall: '2px',\n xsmall: baseSpacing / 8 + \"px\",\n // 3\n small: baseSpacing / 4 + \"px\",\n // 6\n medium: baseSpacing / 2 + \"px\",\n // 12\n large: baseSpacing + \"px\",\n // 24\n xlarge: baseSpacing * 2 + \"px\" // 48\n },\n\n size: {\n xxsmall: baseSpacing + \"px\",\n // 24\n xsmall: baseSpacing * 2 + \"px\",\n // 48\n small: baseSpacing * 4 + \"px\",\n // 96\n medium: baseSpacing * 8 + \"px\",\n // 192\n large: baseSpacing * 16 + \"px\",\n // 384\n xlarge: baseSpacing * 32 + \"px\",\n // 768\n full: '100%'\n }\n },\n medium: {\n value: baseSpacing * 64 // 1536\n },\n\n large: {} // anything above 'medium'\n },\n\n // Breakpoints used at Server Side Rendering for the initial rendering\n // These values correspond to the theme breakpoints\n deviceBreakpoints: {\n phone: 'small',\n tablet: 'medium',\n computer: 'large'\n },\n colors: colors,\n control: {\n border: {\n width: controlBorderWidth + \"px\",\n radius: '4px',\n color: 'border'\n },\n disabled: {\n opacity: 0.3\n }\n },\n // The time to wait after the user stopped typing, measured in ms.\n // A half second (500ms) debounce can be a helpful starting point.\n // You want to give the user time to fill out a field, but capture\n // their attention before they move on past it. 2 second (2000ms)\n // might be too long depending on how fast people type, and 200ms\n // would be an eye blink\n debounceDelay: 500,\n drop: {\n // intelligentMargin: undefined,\n background: {\n dark: 'black',\n light: 'white'\n },\n border: {\n radius: '0px'\n },\n // margin: undefined\n shadowSize: 'small',\n // shadowSize is deprecated, use 'elevation'\n zIndex: '20'\n },\n edgeSize: {\n none: '0px',\n hair: '1px',\n // for Chart\n xxsmall: baseSpacing / 8 + \"px\",\n // 3\n xsmall: baseSpacing / 4 + \"px\",\n // 6\n small: baseSpacing / 2 + \"px\",\n // 12\n medium: baseSpacing + \"px\",\n // 24\n large: baseSpacing * 2 + \"px\",\n // 48\n xlarge: baseSpacing * 4 + \"px\",\n // 96\n responsiveBreakpoint: 'small'\n },\n elevation: {\n light: {\n none: 'none',\n xsmall: '0px 1px 2px rgba(0, 0, 0, 0.20)',\n small: '0px 2px 4px rgba(0, 0, 0, 0.20)',\n medium: '0px 4px 8px rgba(0, 0, 0, 0.20)',\n large: '0px 8px 16px rgba(0, 0, 0, 0.20)',\n xlarge: '0px 12px 24px rgba(0, 0, 0, 0.20)'\n },\n dark: {\n none: 'none',\n xsmall: '0px 2px 2px rgba(255, 255, 255, 0.40)',\n small: '0px 4px 4px rgba(255, 255, 255, 0.40)',\n medium: '0px 6px 8px rgba(255, 255, 255, 0.40)',\n large: '0px 8px 16px rgba(255, 255, 255, 0.40)',\n xlarge: '0px 12px 24px rgba(255, 255, 255, 0.40)'\n }\n },\n focus: {\n // shadow or outline are required for accessibility\n border: {\n // remove to only have shadow\n color: 'focus'\n },\n // outline: { color: undefined, size: undefined },\n shadow: {\n color: 'focus',\n size: '2px'\n }\n },\n font: _extends({}, fontSizing(0)),\n hover: {\n background: {\n color: 'active',\n opacity: 'medium'\n },\n color: {\n dark: 'white',\n light: 'black'\n }\n },\n input: {\n padding: {\n horizontal: parseMetricToNum(baseSpacing / 2 + \"px\") - parseMetricToNum(controlBorderWidth + \"px\") + \"px\",\n vertical: parseMetricToNum(baseSpacing / 2 + \"px\") - parseMetricToNum(controlBorderWidth + \"px\") + \"px\"\n },\n font: {\n // size: undefined,\n // height: undefined,\n weight: 600\n }\n // deprecate in v3\n // weight: undefined,\n },\n\n opacity: {\n strong: 0.8,\n medium: 0.4,\n weak: 0.1\n },\n selected: {\n background: 'selected',\n color: 'white'\n },\n spacing: baseSpacing + \"px\",\n size: {\n xxsmall: baseSpacing * 2 + \"px\",\n // 48\n xsmall: baseSpacing * 4 + \"px\",\n // 96\n small: baseSpacing * 8 + \"px\",\n // 192\n medium: baseSpacing * 16 + \"px\",\n // 384\n large: baseSpacing * 32 + \"px\",\n // 768\n xlarge: baseSpacing * 48 + \"px\",\n // 1152\n xxlarge: baseSpacing * 64 + \"px\",\n // 1536\n full: '100%'\n }\n },\n // icon: {\n // extennd: undefined,\n // matchSize: undefined,\n // size: undefined,\n // },\n accordion: {\n panel: {\n // border: {\n // side: 'bottom',\n // color: 'border',\n // },\n },\n border: {\n side: 'bottom',\n color: 'border'\n },\n heading: {\n level: '4' // level ranges from 1-6\n // margin: undefined\n },\n\n hover: {\n // background: undefined,\n color: {\n dark: 'light-4',\n light: 'dark-3'\n },\n // deprecated\n heading: {\n color: {\n dark: 'light-4',\n light: 'dark-3'\n }\n }\n },\n icons: {\n collapse: FormUp,\n expand: FormDown\n // color: { dark: undefined, light: undefined },\n }\n },\n\n anchor: {\n textDecoration: 'none',\n fontWeight: 600,\n color: {\n dark: 'accent-1',\n light: 'brand'\n },\n gap: 'small',\n hover: {\n textDecoration: 'underline'\n // fontWeight: undefined,\n // extend: undefined,\n }\n // size: {\n // medium: {\n // color: undefined,\n // fontWeight: undefined,\n // textDecoration: undefined,\n // },\n // },\n // extend: undefined,\n },\n\n avatar: {\n // extend: undefined,\n size: {\n xsmall: baseSpacing * 0.75 + \"px\",\n // 18px\n small: baseSpacing + \"px\",\n // 24px\n medium: baseSpacing * 2 + \"px\",\n // default 48px\n large: baseSpacing * 3 + \"px\",\n // 72px\n xlarge: baseSpacing * 4 + \"px\",\n // 96px\n '2xl': baseSpacing * 5 + \"px\",\n // 120px\n '3xl': baseSpacing * 6 + \"px\",\n // 144px\n '4xl': baseSpacing * 7 + \"px\",\n // 168px\n '5xl': baseSpacing * 8 + \"px\" // 192px\n },\n\n text: {\n size: {\n xsmall: 'small',\n // 14px\n small: 'medium',\n // 18px\n medium: 'large',\n // 22px\n large: 'xlarge',\n // 26px\n xlarge: 'xxlarge',\n // 34px\n '2xl': '3xl',\n // 42px\n '3xl': '4xl',\n // 54px\n '4xl': '5xl',\n // 70px\n '5xl': '6xl' // 90px\n }\n // fontWeight: undefined,\n // extend: undefined\n }\n },\n\n box: {\n responsiveBreakpoint: 'small' // when we switch rows to columns\n // extend: undefined,\n },\n\n button: {\n badge: {\n // align: undefined,,\n container: {\n background: 'brand'\n // pad: undefined,\n // extend: undefined,\n },\n\n size: {\n medium: baseSpacing + \"px\" // 24px\n },\n\n text: {\n size: {\n medium: 'small' // 14px\n }\n }\n },\n\n gap: 'small',\n size: {\n small: {\n border: {\n radius: baseSpacing * 0.75 + \"px\"\n },\n pad: {\n vertical: baseSpacing / 4 - borderWidth + \"px\",\n // 4px\n horizontal: baseSpacing - borderWidth * 2 + \"px\" // 20px,\n }\n // iconOnly: {\n // pad: undefined,\n // },\n },\n\n medium: {\n border: {\n radius: baseSpacing * 0.75 + \"px\" // 18px\n },\n\n pad: {\n vertical: baseSpacing / 4 - borderWidth + \"px\",\n // 4px\n horizontal: baseSpacing - borderWidth + \"px\" // 22px\n }\n // iconOnly: {\n // pad: undefined,\n // },\n },\n\n large: {\n border: {\n radius: baseSpacing + \"px\" // 24px\n },\n\n pad: {\n vertical: baseSpacing / 4 + borderWidth + \"px\",\n // 8px\n horizontal: baseSpacing + borderWidth * 4 + \"px\" // 32px,\n }\n // iconOnly: {\n // pad: undefined,\n // },\n }\n },\n\n border: {\n // color: { dark: undefined, light: undefined }\n width: borderWidth + \"px\",\n radius: baseSpacing * 0.75 + \"px\"\n },\n // color: { dark: undefined, light: undefined }\n // default: {\n // background: undefined,\n // border: undefined,\n // color: undefined,\n // direction: undefined,\n // font: {\n // size: undefined,\n // weight: undefined,\n // },\n // icon: undefined,\n // padding: {\n // vertical: undefined,\n // horizontal: undefined,\n // },\n // reverse: undefined,\n // extend: undefined,\n // },\n // primary: {\n // font: {\n // size: undefined,\n // weight: undefined,\n // },\n // background: undefined,\n // border: undefined,\n // color: undefined,\n // direction: undefined,\n // icon: undefined,\n // padding: {\n // vertical: undefined,\n // horizontal: undefined,\n // },\n // reverse: undefined,\n // extend: undefined,\n // },\n // secondary: {\n // font: {\n // size: undefined,\n // weight: undefined,\n // },\n // background: undefined,\n // border: undefined,\n // color: undefined,\n // direction: undefined,\n // icon: undefined,\n // padding: {\n // vertical: undefined,\n // horizontal: undefined,\n // },\n // reverse: undefined,\n // extend: undefined,\n // },\n // option: {\n // background: undefined,\n // border: undefined,\n // color: undefined,\n // direction: undefined,\n // icon: undefined,\n // padding: {\n // vertical: undefined,\n // horizontal: undefined,\n // },\n // reverse: undefined,\n // extend: undefined,\n // },\n active: {\n background: 'active-background',\n // border: undefined,\n color: 'active-text'\n // extend: undefined,\n // default: {},\n // primary: {},\n // secondary: {},\n },\n\n disabled: {\n // background: undefined,\n // border: undefined,\n // color: undefined,\n opacity: 0.3\n // extend: undefined,\n // default: {},\n // primary: {},\n // secondary: {},\n },\n\n // hover: {\n // background: undefined,\n // border: undefined,\n // color: undefined,\n // extend: undefined,\n // default: {},\n // primary: {},\n // secondary: {},\n // },\n padding: {\n vertical: baseSpacing / 4 - borderWidth + \"px\",\n horizontal: baseSpacing - borderWidth + \"px\"\n },\n transition: {\n timing: 'ease-in-out',\n duration: 0.1,\n properties: ['color', 'background-color', 'border-color', 'box-shadow']\n },\n skeleton: {\n width: {\n min: '100px'\n }\n }\n },\n calendar: {\n // daySize must align with global.size\n small: {\n // title: {},\n fontSize: baseFontSize - fontScale + \"px\",\n lineHeight: 1.375,\n daySize: baseSpacing * 8 / 7 + \"px\",\n slideDuration: '0.2s'\n },\n medium: {\n // title: {},\n fontSize: baseFontSize + \"px\",\n lineHeight: 1.45,\n daySize: baseSpacing * 16 / 7 + \"px\",\n slideDuration: '0.5s'\n },\n large: {\n // title: {},\n fontSize: baseFontSize + 3 * fontScale + \"px\",\n lineHeight: 1.11,\n daySize: baseSpacing * 32 / 7 + \"px\",\n slideDuration: '0.8s'\n },\n icons: {\n previous: Previous,\n next: Next,\n small: {\n previous: FormPrevious,\n next: FormNext\n }\n },\n heading: {\n level: '4'\n } // level ranges from 1-6\n },\n\n card: {\n container: {\n round: 'small',\n elevation: 'small'\n // extend: undefined,\n },\n\n // hover: {\n // container: {\n // elevation: undefined,\n // },\n // },\n header: {},\n body: {},\n footer: {}\n },\n cards: {\n container: {\n // any box props\n gap: 'xsmall'\n // extend: undefined,\n }\n },\n\n carousel: {\n icons: {\n current: Subtract,\n next: Next,\n previous: Previous\n // color: { dark: undefined, light: undefined },\n },\n\n animation: {\n duration: 1000\n },\n disabled: {\n icons: {\n // color: { dark: undefined, light: undefined },\n }\n }\n },\n chart: {\n color: 'graph-0'\n // extend: undefined,\n },\n\n checkBox: {\n border: {\n color: {\n dark: 'rgba(255, 255, 255, 0.5)',\n light: 'rgba(0, 0, 0, 0.15)'\n },\n width: '2px'\n },\n check: {\n // extend: undefined,\n radius: '4px',\n thickness: '4px'\n },\n label: {\n align: 'center'\n },\n // color: { dark: undefined, light: undefined },\n // extend: undefined,\n // gap: undefined\n hover: {\n border: {\n color: {\n dark: 'white',\n light: 'black'\n }\n }\n // background: undefined,\n // extend: undefined,\n },\n\n icon: {\n // size: undefined,\n // extend: undefined,\n },\n icons: {\n // checked: undefined,\n // indeterminate: undefined,\n },\n // pad: undefined,\n size: baseSpacing + \"px\",\n toggle: {\n // background: undefined\n color: {\n dark: '#d9d9d9',\n light: '#d9d9d9'\n },\n knob: {\n // extend: undefined,\n },\n radius: baseSpacing + \"px\",\n size: baseSpacing * 2 + \"px\"\n // extend: undefined,\n }\n },\n\n checkBoxGroup: {\n // container: {\n // // any box props\n // extend: undefined,\n // },\n },\n clock: {\n analog: {\n // extend: undefined,\n hour: {\n color: {\n dark: 'light-2',\n light: 'dark-3'\n },\n width: baseSpacing / 3 + \"px\",\n size: baseSpacing + \"px\",\n shape: 'round'\n },\n minute: {\n color: {\n dark: 'light-4',\n light: 'dark-3'\n },\n width: baseSpacing / 6 + \"px\",\n size: Math.round(baseSpacing / 2) + \"px\",\n shape: 'round'\n },\n second: {\n color: {\n dark: 'accent-1',\n light: 'accent-1'\n },\n width: baseSpacing / 8 + \"px\",\n size: Math.round(baseSpacing / 2.666) + \"px\",\n shape: 'round'\n },\n size: {\n xsmall: baseSpacing * 2 + \"px\",\n small: baseSpacing * 3 + \"px\",\n medium: baseSpacing * 4 + \"px\",\n large: baseSpacing * 6 + \"px\",\n xlarge: baseSpacing * 9 + \"px\",\n xxlarge: baseSpacing * 12 + \"px\",\n huge: baseSpacing * 12 + \"px\" // kept for backwards compatibility\n }\n },\n\n digital: {\n text: {\n xsmall: {\n size: baseFontSize - 2 * fontScale + \"px\",\n height: 1.5\n },\n small: {\n size: baseFontSize - fontScale + \"px\",\n height: 1.43\n },\n medium: {\n size: baseFontSize + \"px\",\n height: 1.375\n },\n large: {\n size: baseFontSize + fontScale + \"px\",\n height: 1.167\n },\n xlarge: {\n size: baseFontSize + 2 * fontScale + \"px\",\n height: 1.1875\n },\n xxlarge: {\n size: baseFontSize + 4 * fontScale + \"px\",\n height: 1.125\n }\n }\n }\n },\n collapsible: {\n minSpeed: 200,\n baseline: 500\n },\n dateInput: {\n container: {\n round: 'xxsmall'\n }\n // icon: {\n // size: undefined,\n // },\n },\n\n dataTable: {\n // body: {\n // extend: undefined,\n // },\n pinned: {\n // body: {\n // background: undefined,\n // extend: undefined,\n // },\n header: {\n background: {\n opacity: 'strong'\n }\n // extend: undefined,\n },\n\n footer: {\n background: {\n opacity: 'strong'\n }\n // extend: undefined,\n }\n },\n\n container: {\n // any box props\n gap: 'xsmall'\n // extend: undefined,\n },\n\n groupHeader: {\n background: {\n dark: 'dark-2',\n light: 'light-2'\n },\n border: {\n side: 'bottom',\n size: 'xsmall'\n },\n pad: {\n horizontal: 'small',\n vertical: 'xsmall'\n }\n },\n groupEnd: {\n border: {\n side: 'bottom',\n size: 'xsmall'\n }\n },\n header: {\n // background: undefined,\n // border: undefined,\n // color: undefined,\n // extend: undefined,\n // font: {\n // weight: undefined,\n // size: undefined,\n // },\n gap: 'small',\n // hover: {\n // background: undefined,\n // },\n // pad: undefined,\n units: {\n color: 'text-xweak',\n margin: {\n left: 'xsmall'\n },\n alignSelf: 'end'\n }\n },\n icons: {\n ascending: FormDown,\n contract: FormUp,\n descending: FormUp,\n expand: FormDown\n // sortable: undefined,\n },\n\n primary: {\n weight: 'bold'\n },\n resize: {\n border: {\n color: 'border',\n side: 'end'\n }\n // hover: {\n // border: {\n // color: undefined,\n // side: undefined,\n // size: undefined,\n // },\n // },\n }\n },\n\n diagram: {\n // extend: undefined,\n line: {\n color: 'graph-0'\n }\n },\n // drop: {\n // extend: undefined,\n // maxHeight: undefined,\n // },\n fileInput: {\n // background: {},\n border: {\n // color: undefined,\n side: 'all',\n size: 'small',\n style: 'dashed'\n },\n dragOver: {\n border: {\n color: 'control'\n }\n // extend: undefined,\n },\n\n hover: {\n border: {\n color: 'brand'\n }\n // extend: undefined,\n },\n\n icons: {\n remove: FormClose\n },\n // pad: {},\n label: {\n margin: 'small'\n // extend: undefined,\n },\n\n message: {\n margin: 'small'\n // extend: undefined,\n }\n // extend: undefined,\n },\n\n formField: {\n border: {\n color: 'border',\n error: {\n color: {\n dark: 'white',\n light: 'status-critical'\n }\n },\n position: 'inner',\n side: 'bottom'\n },\n // checkBox: {\n // pad: undefined,\n // },\n content: {\n // margin: undefined,\n pad: 'small'\n },\n disabled: {\n background: {\n color: 'status-disabled',\n opacity: 'medium'\n }\n // border: {\n // color: undefined,\n // },\n // label: {\n // color: undefined,\n // },\n },\n\n // focus: {\n // background: {\n // color: undefined,\n // },\n // border: {\n // color: undefined,\n // },\n // },\n error: {\n color: 'status-critical',\n margin: {\n vertical: 'xsmall',\n horizontal: 'small'\n }\n // background: undefined,\n // container: {}, // any Box props\n // icon: undefined,\n },\n\n // extend: undefined,\n help: {\n color: 'dark-3',\n margin: {\n start: 'small'\n }\n },\n info: {\n color: 'text-xweak',\n margin: {\n vertical: 'xsmall',\n horizontal: 'small'\n }\n // container: {}, // any Box props\n // icon: undefined,\n },\n\n label: {\n margin: {\n vertical: 'xsmall',\n horizontal: 'small'\n }\n // requiredIndicator: undefined,\n },\n\n margin: {\n bottom: 'small'\n },\n // round: undefined,\n survey: {\n label: {\n margin: {\n bottom: 'xsmall'\n },\n size: 'medium',\n weight: 400\n }\n }\n },\n grommet: {\n // extend: undefined\n },\n header: {\n sticky: {\n zIndex: '20'\n }\n },\n heading: {\n // color: undefined,\n font: {\n // family: undefined\n },\n level: {\n 1: {\n font: {\n // family: undefined,\n // weight: undefined,\n },\n small: _extends({}, fontSizing(4)),\n medium: _extends({}, fontSizing(8)),\n large: _extends({}, fontSizing(16)),\n xlarge: _extends({}, fontSizing(24))\n },\n 2: {\n font: {\n // family: undefined,\n // weight: undefined,\n },\n small: _extends({}, fontSizing(2)),\n medium: _extends({}, fontSizing(4)),\n large: _extends({}, fontSizing(8)),\n xlarge: _extends({}, fontSizing(12))\n },\n 3: {\n font: {\n // family: undefined,\n // weight: undefined,\n },\n small: _extends({}, fontSizing(1)),\n medium: _extends({}, fontSizing(2)),\n large: _extends({}, fontSizing(4)),\n xlarge: _extends({}, fontSizing(6))\n },\n 4: {\n font: {\n // family: undefined,\n // weight: undefined,\n },\n small: _extends({}, fontSizing(0)),\n medium: _extends({}, fontSizing(0)),\n large: _extends({}, fontSizing(0)),\n xlarge: _extends({}, fontSizing(0))\n },\n 5: {\n font: {\n // family: undefined,\n // weight: undefined,\n },\n small: _extends({}, fontSizing(-0.5)),\n medium: _extends({}, fontSizing(-0.5)),\n large: _extends({}, fontSizing(-0.5)),\n xlarge: _extends({}, fontSizing(-0.5))\n },\n 6: {\n font: {\n // family: undefined,\n // weight: undefined,\n },\n small: _extends({}, fontSizing(-1)),\n medium: _extends({}, fontSizing(-1)),\n large: _extends({}, fontSizing(-1)),\n xlarge: _extends({}, fontSizing(-1))\n }\n },\n responsiveBreakpoint: 'small',\n // when we scale the font size down\n weight: 600,\n skeleton: {\n width: {\n min: '150px',\n max: '200px'\n }\n }\n },\n layer: {\n background: {\n dark: 'black',\n light: 'white'\n },\n border: {\n radius: '4px'\n // intelligentRounding: undefined,\n },\n\n container: {\n // elevation: undefined,\n zIndex: '20'\n },\n // extend: undefined,\n overlay: {\n background: 'rgba(0, 0, 0, 0.5)'\n // backdropFilter: undefined,\n },\n\n responsiveBreakpoint: 'small',\n // when Layer takes over the full screen\n zIndex: '20'\n },\n list: {\n container: {\n // any box props\n gap: 'xsmall'\n // extend: undefined,\n },\n\n item: {\n // background: undefined,\n border: 'horizontal',\n disabled: {\n color: 'status-disabled',\n cursor: 'default'\n },\n pinned: {\n background: 'background-contrast',\n icon: {\n size: 'medium',\n pad: 'small'\n }\n },\n pad: {\n horizontal: 'medium',\n vertical: 'small'\n }\n // extend: undefined,\n },\n\n icons: {\n down: FormDown,\n up: FormUp,\n pin: FormPin\n }\n // extend: undefined,\n },\n\n maskedInput: {\n // container: {\n // extend: undefined,\n // },\n // extend: undefined,\n // disabled: { opacity: undefined },\n },\n menu: {\n // background: undefined,\n // item: undefined,\n // extend: undefined,\n drop: {\n align: {\n top: 'top',\n left: 'left'\n }\n // any drop props\n },\n\n group: {\n container: {\n pad: {\n vertical: 'xsmall'\n }\n },\n separator: {\n color: 'border',\n size: 'xsmall',\n pad: {\n horizontal: 'small'\n }\n }\n },\n icons: {\n down: FormDown\n // up: undefined,\n // color: { dark: undefined, light: undefined },\n }\n },\n\n meter: {\n color: 'graph-0'\n // colors: [] || colors: ['graph-0', 'graph-1', 'graph-2', 'graph-3'],\n // extend: undefined,\n },\n\n nameValueList: {\n gap: {\n column: 'large',\n row: 'small'\n },\n pair: {\n column: {\n gap: {\n column: 'large',\n row: 'medium'\n }\n }\n },\n name: {\n width: 'small'\n },\n value: {\n width: 'medium'\n }\n },\n nameValuePair: {\n column: {\n gap: 'xxsmall'\n },\n name: {\n // any text props\n color: 'text',\n weight: 'bold'\n },\n value: {\n // any text props\n color: 'text'\n }\n },\n notification: {\n actions: {\n // any anchor props\n },\n direction: 'column',\n container: {\n // any box props\n round: 'xsmall',\n pad: {\n horizontal: 'small',\n vertical: 'xsmall'\n },\n background: {\n color: 'background-front'\n }\n },\n global: {\n direction: 'row',\n container: {\n // any box props\n round: 'none',\n pad: {\n horizontal: 'large',\n vertical: 'xsmall'\n }\n }\n },\n toast: {\n // direction: undefined,\n container: {\n // any box props\n elevation: 'medium',\n width: 'medium'\n },\n layer: {\n position: 'top',\n margin: 'medium'\n },\n time: 8000\n },\n iconContainer: {\n // any box props\n pad: {\n right: 'small'\n },\n flex: false\n },\n textContainer: {\n // any box props\n gap: 'medium'\n },\n title: {\n // any text props\n weight: 'bold'\n },\n message: {\n // any text props\n margin: 'none'\n },\n close: {\n icon: FormClose\n },\n critical: {\n icon: StatusCriticalSmall,\n background: {\n color: 'status-critical',\n opacity: 'weak'\n },\n color: 'status-critical',\n // global: {},\n toast: {\n background: 'background-front'\n }\n },\n warning: {\n icon: StatusWarningSmall,\n background: {\n color: 'status-warning',\n opacity: 'weak'\n },\n color: 'status-warning',\n // global: {},\n toast: {\n background: 'background-front'\n }\n },\n normal: {\n icon: StatusGoodSmall,\n background: {\n color: 'status-ok',\n opacity: 'weak'\n },\n color: 'status-ok',\n // global: {},\n toast: {\n background: 'background-front'\n }\n },\n info: {\n icon: CircleInformation,\n background: 'background-contrast',\n color: 'text-strong',\n // global: {},\n toast: {\n background: 'background-front'\n }\n },\n unknown: {\n icon: StatusUnknownSmall,\n background: {\n color: 'status-unknown',\n opacity: 'weak'\n },\n color: 'status-unknown',\n // global: {},\n toast: {\n background: 'background-front'\n }\n },\n // deprecate \"undefined\" in v3\n // and if undefined, no icon\n undefined: {\n icon: StatusUnknownSmall,\n // background: undefined,\n color: 'status-unknown'\n // global: {},\n // toast: {},\n }\n },\n\n page: {\n wide: {\n alignSelf: 'center',\n width: {\n min: 'medium',\n max: 'xxlarge'\n },\n small: {\n pad: {\n horizontal: 'large'\n }\n },\n medium: {\n pad: {\n horizontal: 'medium'\n }\n },\n large: {\n pad: {\n horizontal: 'large'\n }\n }\n },\n narrow: {\n alignSelf: 'center',\n width: {\n min: 'medium',\n max: 'large'\n },\n small: {\n pad: {\n horizontal: 'large'\n }\n },\n medium: {\n pad: {\n horizontal: 'medium'\n }\n },\n large: {\n pad: {\n horizontal: 'large'\n }\n }\n },\n full: {\n alignSelf: 'start',\n width: {\n min: 'medium',\n max: '100%'\n },\n small: {\n pad: {\n horizontal: 'large'\n }\n },\n medium: {\n pad: {\n horizontal: 'medium'\n }\n },\n large: {\n pad: {\n horizontal: 'large'\n }\n }\n }\n },\n pageHeader: {\n actions: {\n // any box props\n align: 'end'\n },\n pad: {\n top: 'large',\n bottom: 'medium'\n },\n parent: {\n // any box props\n align: 'start'\n },\n responsive: {\n actions: {\n // any box props\n align: 'start',\n pad: {\n top: 'small'\n }\n },\n areas: [['parent'], ['title'], ['subtitle'], ['actions']],\n breakpoints: ['small'],\n columns: ['auto'],\n rows: ['auto']\n // gap: undefined,\n },\n\n subtitle: {\n // any paragraph props\n margin: 'none'\n },\n title: {\n // any heading props\n margin: 'none',\n fill: true\n },\n size: {\n small: {\n pad: {\n top: 'medium',\n bottom: 'small'\n },\n subtitle: {\n size: 'small'\n },\n title: {\n size: 'small'\n }\n },\n // medium: {\n // // pad: undefined,\n // // subtitle: {},\n // // title: {},\n // },\n large: {\n pad: {\n top: 'xlarge',\n bottom: 'large'\n },\n subtitle: {\n size: 'large'\n },\n title: {\n size: 'large'\n }\n }\n },\n small: {\n areas: [['parent', 'parent'], ['title', 'actions'], ['subtitle', 'actions']],\n columns: [['small', 'flex'], 'auto'],\n rows: ['auto', 'auto', 'auto'],\n gap: {\n row: 'xsmall',\n column: 'large'\n }\n },\n medium: {\n areas: [['parent', 'parent'], ['title', 'actions'], ['subtitle', 'actions']],\n columns: [['medium', 'flex'], 'auto'],\n rows: ['auto', 'auto', 'auto'],\n gap: {\n row: 'xsmall',\n column: 'medium'\n }\n },\n large: {\n areas: [['parent', 'parent'], ['title', 'actions'], ['subtitle', 'actions']],\n columns: [['medium', 'flex'], 'auto'],\n rows: ['auto', 'auto', 'auto'],\n gap: {\n row: 'xsmall',\n column: 'large'\n }\n }\n },\n pagination: {\n button: {\n active: {\n background: {\n color: 'active-background'\n }\n },\n color: 'text-strong',\n hover: {\n background: {\n color: 'background-contrast'\n },\n color: undefined\n },\n size: {\n small: {\n border: {\n radius: baseSpacing / 8 + \"px\",\n // 3\n width: '2px'\n },\n pad: {\n vertical: \"4px\",\n horizontal: \"4px\"\n },\n font: _extends({}, fontSizing(-1)),\n height: baseSpacing * 1.25 + \"px\",\n width: baseSpacing * 1.25 + \"px\"\n },\n medium: {\n border: {\n radius: baseSpacing / 6 + \"px\",\n // 4\n width: '2px'\n },\n pad: {\n vertical: \"4px\",\n horizontal: \"4px\"\n },\n font: _extends({}, fontSizing(0)),\n height: baseSpacing * 1.5 + \"px\",\n width: baseSpacing * 1.5 + \"px\"\n },\n large: {\n border: {\n radius: baseSpacing / 4 + \"px\",\n // 6\n width: '2px'\n },\n pad: {\n vertical: \"4px\",\n horizontal: \"4px\"\n },\n font: _extends({}, fontSizing(1)),\n height: baseSpacing * 2 + \"px\",\n width: baseSpacing * 2 + \"px\"\n }\n }\n },\n // container: {\n // // any box props,\n // extend: undefined,\n // },\n controls: {\n align: 'center',\n direction: 'row',\n gap: 'xxsmall',\n margin: 'none',\n pad: 'none'\n },\n icons: {\n // color: undefined,\n next: Next,\n previous: Previous\n }\n },\n paragraph: {\n font: {\n // family: undefined\n },\n small: _extends({}, fontSizing(-1)),\n medium: _extends({}, fontSizing(0)),\n large: _extends({}, fontSizing(1)),\n xlarge: _extends({}, fontSizing(2)),\n xxlarge: _extends({}, fontSizing(4))\n },\n thumbsRating: {\n // dislike: {\n // color: undefined,\n // },\n // like: {\n // color: undefined,\n // },\n },\n spinner: {\n container: {\n animation: 'rotateRight',\n color: 'brand',\n pad: 'small',\n round: 'full',\n size: 'small'\n },\n // icon: undefined\n size: {\n xsmall: baseSpacing * 0.75 + \"px\",\n small: baseSpacing + \"px\",\n // default 24\n medium: baseSpacing * 2 + \"px\",\n large: baseSpacing * 3 + \"px\",\n xlarge: baseSpacing * 4 + \"px\"\n }\n },\n radioButton: {\n border: {\n color: {\n dark: 'rgba(255, 255, 255, 0.5)',\n light: 'rgba(0, 0, 0, 0.15)'\n },\n width: '2px'\n },\n check: {\n radius: '100%'\n // background: {\n // color: undefined,\n // },\n // color: { dark: undefined, light: undefined },\n // extend: undefined,\n },\n\n // color: undefined,\n hover: {\n // background: {\n // color: undefined,\n // },\n border: {\n color: {\n dark: 'white',\n light: 'black'\n }\n }\n },\n icon: {\n // size: undefined,\n // extend: undefined,\n },\n icons: {\n // circle: undefined,\n },\n gap: 'small',\n size: baseSpacing + \"px\",\n font: {\n // weight: undefined,\n },\n container: {\n // extend: undefined\n }\n },\n radioButtonGroup: {\n // container: {}, // any box props\n },\n rangeInput: {\n disabled: {\n opacity: 0.3\n // thumb: {\n // color: undefined,\n // },\n // track: {\n // color: undefined,\n // },\n },\n\n // extend: undefined\n track: {\n height: '4px',\n color: 'border'\n // opacity: undefined,\n // lower: {\n // color: 'undefined',\n // opacity: undefined,\n // },\n // upper: {\n // color: undefined,\n // opacity: undefined,\n // },\n // extend: undefined\n },\n\n thumb: {\n // color: { dark: undefined, light: undefined },\n // extend: undefined\n }\n },\n rangeSelector: {\n background: {\n invert: {\n color: 'light-4'\n }\n }\n // edge: {\n // type: undefined,\n // },\n },\n\n select: {\n // background: undefined,\n clear: {\n container: {\n pad: 'small',\n background: 'background-contrast'\n },\n // any box props\n text: {\n color: 'text-weak'\n } // any text props\n },\n\n container: {\n // extend: undefined,\n },\n control: {\n // extend: undefined,\n // open: undefined,\n },\n icons: {\n // color: { dark: undefined, light: undefined },\n margin: {\n horizontal: 'small'\n },\n down: FormDown\n // up: undefined\n },\n\n options: {\n container: {\n align: 'start',\n pad: 'small'\n },\n text: {\n margin: 'none'\n }\n },\n // searchInput: undefined,\n step: 20\n },\n selectMultiple: {\n maxInline: 5\n },\n skeleton: {\n border: false,\n colors: {\n dark: ['background', 'background-front'],\n light: ['background', 'background-back']\n }\n },\n skipLinks: {\n position: 'top',\n container: {\n elevation: 'large',\n round: 'small',\n pad: 'medium'\n },\n label: {\n margin: {\n bottom: 'medium'\n },\n size: 'medium'\n }\n },\n starRating: {\n // color: undefined,\n },\n tab: {\n active: {\n color: 'text'\n // background: undefined,\n },\n\n // background: undefined,\n border: {\n side: 'bottom',\n size: 'small',\n color: {\n dark: 'accent-1',\n light: 'brand'\n },\n active: {\n color: {\n dark: 'white',\n light: 'black'\n }\n },\n disabled: {\n // color: undefined,\n },\n hover: {\n color: {\n dark: 'white',\n light: 'black'\n }\n // extend: undefined,\n }\n },\n\n color: 'control',\n // disabled: {\n // color: undefined,\n // },\n // extend: undefined,\n hover: {\n // background: undefined,\n // extend: undefined,\n color: {\n dark: 'white',\n light: 'black'\n }\n },\n margin: {\n vertical: 'xxsmall',\n horizontal: 'small'\n },\n pad: {\n bottom: 'xsmall'\n }\n },\n tabs: {\n // background: undefined,\n // extend: undefined,\n // gap: undefined,\n header: {\n // alignSelf: undefined,\n // background: undefined,\n // border: {\n // side: undefined,\n // size: undefined,\n // style: undefined,\n // color: undefined,\n // },\n // extend: undefined,\n },\n panel: {\n // extend: undefined,\n },\n step: {\n small: 1,\n medium: 3,\n large: 3\n }\n },\n table: {\n header: {\n align: 'start',\n pad: {\n horizontal: 'small',\n vertical: 'xsmall'\n },\n border: 'bottom'\n // verticalAlign: undefined,\n // background: undefined,\n // extend: undefined,\n },\n\n body: {\n align: 'start',\n pad: {\n horizontal: 'small',\n vertical: 'xsmall'\n }\n // background: undefined,\n // border: undefined,\n // extend: undefined,\n },\n\n // row: {\n // hover: {\n // background: undefined,\n // color: undefined,\n // },\n // },\n footer: {\n align: 'start',\n pad: {\n horizontal: 'small',\n vertical: 'xsmall'\n },\n border: 'top'\n // verticalAlign: undefined,\n // background: undefined,\n // extend: undefined,\n }\n },\n\n tag: {\n // background: undefined,\n border: true,\n round: 'large',\n // name: undefined,\n pad: {\n horizontal: 'small',\n vertical: 'xsmall'\n },\n remove: {\n margin: {\n right: 'xsmall'\n }\n },\n separator: ' : ',\n size: {\n xsmall: {\n pad: {\n horizontal: baseSpacing / 3 + \"px\",\n vertical: 'xxsmall'\n },\n icon: {\n size: baseSpacing * 0.75 + \"px\"\n }\n },\n small: {\n pad: {\n horizontal: baseSpacing * 0.4 + \"px\",\n vertical: 'xxsmall'\n },\n icon: {\n size: baseSpacing * 0.75 + \"px\"\n }\n },\n large: {\n pad: {\n horizontal: baseSpacing / 3 * 2 + \"px\",\n vertical: \"xsmall\"\n },\n icon: {\n size: baseSpacing * 1.25 + \"px\"\n }\n },\n xlarge: {\n pad: {\n horizontal: baseSpacing * 0.75 + \"px\",\n vertical: 'xsmall'\n },\n icon: {\n size: baseSpacing * 1.5 + \"px\"\n }\n }\n },\n value: {\n weight: 600\n }\n },\n text: {\n font: {\n // family: undefined\n },\n xsmall: _extends({}, fontSizing(-1.5)),\n small: _extends({}, fontSizing(-1)),\n medium: _extends({}, fontSizing(0)),\n // 18px\n large: _extends({}, fontSizing(1)),\n // 22px\n xlarge: _extends({}, fontSizing(2)),\n xxlarge: _extends({}, fontSizing(4)),\n '2xl': _extends({}, fontSizing(4)),\n '3xl': _extends({}, fontSizing(6)),\n '4xl': _extends({}, fontSizing(9)),\n '5xl': _extends({}, fontSizing(13)),\n '6xl': _extends({}, fontSizing(18)),\n skeleton: {\n width: {\n width: '100px',\n min: '100px'\n },\n margin: {\n vertical: 'xsmall'\n },\n colors: {\n dark: ['border', 'border'],\n light: ['background-front', 'background-back']\n }\n }\n },\n textArea: {\n // extend: undefined,\n // disabled: { opacity: undefined },\n },\n textInput: {\n // extend: undefined,\n // disabled: { opacity: undefined },\n },\n tip: {\n content: {\n // any Box props\n background: 'background-contrast',\n elevation: 'small',\n margin: 'xsmall',\n pad: {\n vertical: 'xsmall',\n horizontal: 'small'\n },\n round: 'small'\n },\n drop: {\n // any props for the drop\n align: {\n top: 'bottom'\n },\n // most common use case is Header with Buttons\n background: 'none',\n elevation: 'none',\n margin: 'none'\n }\n },\n video: {\n captions: {\n background: 'rgba(0, 0, 0, 0.7)'\n },\n // controls: { background: undefined },\n icons: {\n closedCaption: ClosedCaption,\n configure: Actions,\n fullScreen: Expand,\n pause: Pause,\n play: Play,\n reduceVolume: VolumeLow,\n volume: Volume,\n description: AssistListening\n // color: { dark: undefined, light: undefined },\n },\n\n scrubber: {\n color: 'light-4',\n interval: 10\n // track: { color: undefined }\n }\n },\n\n worldMap: {\n color: 'light-3',\n continent: {\n active: '8px',\n base: '6px'\n },\n hover: {\n color: 'light-4'\n },\n place: {\n active: '20px',\n base: '8px'\n }\n }\n });\n return deepFreeze(result);\n};\nexport var base = generate(24);","export var findScrollParent = function findScrollParent(element, horizontal) {\n var result;\n if (element) {\n var parent = element.parentNode;\n while (!result && parent && parent.getBoundingClientRect) {\n var rect = parent.getBoundingClientRect();\n // 10px is to account for borders and scrollbars in a lazy way\n if (horizontal) {\n if (rect.width && parent.scrollWidth > rect.width + 10) {\n result = parent;\n }\n } else if (rect.height && parent.scrollHeight > rect.height + 10) {\n result = parent;\n }\n parent = parent.parentNode;\n }\n // last scrollable element will be the document\n // if nothing else is scrollable in the page\n if (!result) {\n result = document;\n } else if (result.tagName.toLowerCase() === 'body') {\n result = document;\n }\n }\n return result;\n};\nvar documentTags = ['html', 'body'];\nexport var findScrollParents = function findScrollParents(element, horizontal) {\n var result = [];\n if (element) {\n var parent = element.parentNode;\n while (parent && parent.getBoundingClientRect) {\n var rect = parent.getBoundingClientRect();\n // 10px is to account for borders and scrollbars in a lazy way\n if (horizontal) {\n if (rect.width && parent.scrollWidth > rect.width + 10) {\n result.push(parent);\n }\n } else if (rect.height && parent.scrollHeight > rect.height + 10) {\n result.push(parent);\n }\n parent = parent.parentNode;\n }\n if (result.length && documentTags.includes(result[0].tagName.toLowerCase())) {\n result.length = 0;\n }\n // last scrollable element will be the document\n result.push(document);\n }\n return result;\n};\nexport var containsFocus = function containsFocus(node) {\n var root = node.getRootNode();\n var element = root.activeElement;\n while (element) {\n if (element === node) break;\n element = element.parentElement;\n }\n return !!element;\n};\nexport var withinDropPortal = function withinDropPortal(node, portalContext) {\n var root = node == null ? void 0 : node.getRootNode();\n var element = node;\n var portalId;\n while (element && element !== root) {\n if (element.hasAttribute('data-g-portal-id')) {\n portalId = element.getAttribute('data-g-portal-id');\n element = root;\n } else {\n element = element.parentElement;\n }\n }\n // if portalContext doesn't contain the portalId then the\n // portal is new and node is within a drop that just opened\n if (portalId === undefined || portalContext.indexOf(parseInt(portalId, 10)) !== -1) return false;\n return true;\n};\n\n// Check if the element.tagName is an input, select or textarea\nexport var isFocusable = function isFocusable(element) {\n var tagName = element.tagName.toLowerCase();\n return tagName === 'input' || tagName === 'select' || tagName === 'textarea';\n};\n\n// Get the first element that can receive focus\nexport var getFirstFocusableDescendant = function getFirstFocusableDescendant(element) {\n var children = element.getElementsByTagName('*');\n for (var i = 0; i < children.length; i += 1) {\n var child = children[i];\n if (isFocusable(child)) {\n return child;\n }\n }\n return undefined;\n};\nexport var shouldKeepFocus = function shouldKeepFocus(root) {\n var element = root.activeElement;\n if (isFocusable(element)) return true;\n return !!getFirstFocusableDescendant(element);\n};\nexport var getNewContainer = function getNewContainer(target, targetChildPosition) {\n if (target === void 0) {\n target = document.body;\n }\n // setup DOM\n var container = document.createElement('div');\n if (targetChildPosition === 'first') {\n // for SkipLinks\n target.prepend(container);\n } else {\n target.appendChild(container);\n }\n return container;\n};\nexport var setFocusWithoutScroll = function setFocusWithoutScroll(element) {\n var x = window.scrollX;\n var y = window.scrollY;\n element.focus();\n window.scrollTo(x, y);\n};\nvar TABINDEX = 'tabindex';\nvar TABINDEX_STATE = 'data-g-tabindex';\nexport var makeNodeFocusable = function makeNodeFocusable(node) {\n // do not touch aria live containers so that announcements work\n if (!node.hasAttribute('aria-live')) {\n node.removeAttribute('aria-hidden');\n // allow children to receive focus again\n var elements = node.getElementsByTagName('*');\n // only reset elements we've changed in makeNodeUnfocusable()\n Array.prototype.filter.call(elements || [], function (element) {\n return element.hasAttribute(TABINDEX_STATE);\n }).forEach(function (element) {\n var prior = element.getAttribute(TABINDEX_STATE);\n if (prior >= 0) {\n element.setAttribute(TABINDEX, element.getAttribute(TABINDEX_STATE));\n } else if (prior === 'none') {\n element.removeAttribute(TABINDEX);\n }\n element.removeAttribute(TABINDEX_STATE);\n });\n }\n};\nvar autoFocusingTags = /(a|area|input|select|textarea|button|iframe)$/;\nexport var makeNodeUnfocusable = function makeNodeUnfocusable(node) {\n // do not touch aria live containers so that announcements work\n if (!node.hasAttribute('aria-live')) {\n node.setAttribute('aria-hidden', true);\n // prevent children to receive focus\n var elements = node.getElementsByTagName('*');\n // first, save off the tabIndex of any element with one\n Array.prototype.filter.call(elements || [], function (element) {\n return element.getAttribute(TABINDEX) !== null;\n }).forEach(function (element) {\n element.setAttribute(TABINDEX_STATE, element.getAttribute(TABINDEX));\n element.setAttribute(TABINDEX, -1);\n });\n // then, if any element is inherently focusable and not handled above,\n // give it a tabIndex of -1 so it can't receive focus\n Array.prototype.filter.call(elements || [], function (element) {\n var currentTag = element.tagName.toLowerCase();\n return currentTag.match(autoFocusingTags) && element.focus && element.getAttribute(TABINDEX_STATE) === null;\n }).forEach(function (element) {\n element.setAttribute(TABINDEX_STATE, 'none');\n element.setAttribute(TABINDEX, -1);\n });\n }\n};\nexport var findVisibleParent = function findVisibleParent(element) {\n if (element) {\n // Get the closest ancestor element that is positioned.\n return element.offsetParent ? element : findVisibleParent(element.parentElement) || element;\n }\n return undefined;\n};\nexport var isNodeAfterScroll = function isNodeAfterScroll(node, target) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n bottom = _node$getBoundingClie.bottom;\n // target will be the document from findScrollParent()\n var _ref = target.getBoundingClientRect ? target.getBoundingClientRect() : {\n height: 0,\n top: 0\n },\n height = _ref.height,\n top = _ref.top;\n return bottom >= top + height;\n};\nexport var isNodeBeforeScroll = function isNodeBeforeScroll(node, target) {\n var _node$getBoundingClie2 = node.getBoundingClientRect(),\n top = _node$getBoundingClie2.top;\n // target will be the document from findScrollParent()\n var _ref2 = target.getBoundingClientRect ? target.getBoundingClientRect() : {\n top: 0\n },\n targetTop = _ref2.top;\n return top <= targetTop;\n};\nexport var findButtonParent = function findButtonParent(element) {\n if (element && element.nodeName !== 'BUTTON' && element.nodeName !== 'A') return findButtonParent(element.parentElement);\n return element;\n};","import React from 'react';\nexport var PortalContext = /*#__PURE__*/React.createContext([]);","import { css } from 'styled-components';\nimport { colorIsDark, getRGBA, normalizeColor, canExtractRGBArray, getRGBArray } from './colors';\n\n// evalStyle() converts a styled-components item into a string\nvar evalStyle = function evalStyle(arg, theme) {\n if (arg && Array.isArray(arg) && typeof arg[0] === 'function') {\n return arg[0]({\n theme: theme\n });\n }\n return arg;\n};\nexport var normalizeBackground = function normalizeBackground(backgroundArg, theme) {\n var _theme$global$backgro;\n var background = ((_theme$global$backgro = theme.global.backgrounds) == null ? void 0 : _theme$global$backgro[backgroundArg]) || backgroundArg;\n var result = background;\n // If the background has a light or dark object, use that\n if (background) {\n if (theme.dark && background.dark && typeof background.dark !== 'boolean') {\n result = background.dark;\n } else if (!theme.dark && background.light && typeof background.light !== 'boolean') {\n result = background.light;\n }\n result = evalStyle(result, theme);\n }\n return result;\n};\nvar normalizeBackgroundColor = function normalizeBackgroundColor(backgroundArg, theme) {\n var _theme$global$backgro2;\n var background = backgroundArg.color || backgroundArg;\n var result = normalizeColor(\n // Background color may be defined by theme.global.backgrounds or\n // theme.global.colors.\n ((_theme$global$backgro2 = theme.global.backgrounds) == null ? void 0 : _theme$global$backgro2[background]) || background, theme, backgroundArg.dark);\n return result;\n};\nvar normalizeBackgroundImage = function normalizeBackgroundImage(background, theme) {\n var result;\n if (background.image) {\n var _theme$global$backgro3, _theme$global$backgro4, _theme$global$backgro5;\n result = normalizeBackground(background.dark ? (_theme$global$backgro3 = theme.global.backgrounds) == null ? void 0 : (_theme$global$backgro4 = _theme$global$backgro3[background.image]) == null ? void 0 : _theme$global$backgro4.dark : (_theme$global$backgro5 = theme.global.backgrounds) == null ? void 0 : _theme$global$backgro5[background.image], theme) || background.image;\n } else {\n var _theme$global$backgro6;\n var normalized = normalizeBackground((_theme$global$backgro6 = theme.global.backgrounds) == null ? void 0 : _theme$global$backgro6[background], theme);\n result = typeof normalized === 'object' ? normalizeBackgroundImage(normalized, theme) : normalized;\n }\n return result;\n};\nvar rotateBackground = function rotateBackground(background, theme) {\n var backgroundImage = normalizeBackgroundImage(background, theme);\n var result = backgroundImage;\n if (backgroundImage.lastIndexOf('linear-gradient', 0) === 0) {\n var regex = /\\d{1,}deg\\b,/gm; // Contains rotation specified in degrees. Only targets 'deg' string with a trailing comma. Do not match 'deg' string for hsl, etc..\n result = backgroundImage.lastIndexOf('deg,') >= 0 ? backgroundImage.replace(regex, background.rotate + \"deg,\") : backgroundImage.replace('linear-gradient(', \"linear-gradient(\" + background.rotate + \"deg, \");\n } else {\n console.warn( // eslint-disable-next-line max-len\n \"'background.rotate' property only supports 'background.image' containing a linear-gradient string.\");\n }\n return result;\n};\nexport var backgroundIsDark = function backgroundIsDark(backgroundArg, theme) {\n var background = normalizeBackground(backgroundArg, theme);\n var result;\n if (background) {\n if (typeof background === 'object') {\n var color = background.color,\n dark = background.dark,\n opacity = background.opacity;\n if (typeof dark === 'boolean') {\n result = dark;\n } else if (color && (\n // weak opacity means we keep the existing darkness\n !opacity || opacity !== 'weak')) {\n var backgroundColor = normalizeColor(background.color, theme);\n if (backgroundColor) {\n result = colorIsDark(backgroundColor);\n }\n }\n } else {\n var _color = normalizeColor(background, theme);\n if (_color) {\n result = colorIsDark(_color);\n }\n }\n }\n return result;\n};\nvar darkContext = function darkContext(backgroundColor) {\n var isDark = colorIsDark(backgroundColor);\n if (isDark === undefined) return undefined;\n return isDark ? 'dark' : 'light';\n};\n\n// Returns an array of two CSS colors: [background, color]\n// Either could be undefined.\n// background could be a CSS gradient, like \"linear-gradient(...)\"\nexport var backgroundAndTextColors = function backgroundAndTextColors(backgroundArg, textArg, theme) {\n if (!backgroundArg) return [undefined, textArg];\n var global = theme.global;\n var background = normalizeBackground(backgroundArg, theme);\n var text = textArg || global.colors.text;\n var backgroundColor;\n var textColor;\n if (typeof background === 'object') {\n if (background.dark === false) {\n textColor = text.light || text;\n } else if (background.dark) {\n textColor = text.dark || text;\n }\n if (background.color) {\n var color = normalizeBackgroundColor(background, theme);\n var opacity = background.opacity === true ? global.opacity.medium : global.opacity[background.opacity] || background.opacity;\n backgroundColor = getRGBA(color, opacity) || color;\n\n // If we don't have a textColor already, and we aren't too translucent,\n // set the textColor to have the best contrast against the background\n // color.\n if (!textColor && (opacity === undefined || opacity > 0.3)) {\n var shade = darkContext(backgroundColor, theme);\n textColor = normalizeColor(shade && text[shade] || text, theme);\n }\n }\n } else {\n backgroundColor = normalizeBackgroundColor(background, theme);\n var _shade = darkContext(backgroundColor, theme);\n var transparent;\n if (backgroundColor && canExtractRGBArray(backgroundColor)) {\n var colorArray = getRGBArray(backgroundColor);\n // check if the alpha value is less than 0.5\n if (colorArray[3] < 0.5) transparent = true;\n }\n if (_shade) {\n textColor = normalizeColor(text[_shade] || text, theme, _shade === 'dark');\n } else if (transparent && text) {\n textColor = normalizeColor(text, theme);\n } else {\n // If we can't determine the shade, we assume this isn't a simple color.\n // It could be a gradient. backgroundStyle() will take care of that case.\n if (backgroundColor !== 'transparent') backgroundColor = undefined;\n if (text) textColor = normalizeColor(text, theme);\n }\n }\n // if textArg is false, we don't want the textColor, used for Button hover\n if (textArg === false) textColor = undefined;\n return [backgroundColor, textColor];\n};\nexport var backgroundStyle = function backgroundStyle(backgroundArg, theme, textColorArg) {\n // for Grommet component, if the background isn't defined, don't set it\n if (backgroundArg === undefined) return undefined;\n var background = normalizeBackground(backgroundArg, theme);\n var _backgroundAndTextCol = backgroundAndTextColors(background, textColorArg, theme),\n backgroundColor = _backgroundAndTextCol[0],\n textColor = _backgroundAndTextCol[1];\n var backgroundImage = background.rotate ? rotateBackground(background, theme) : normalizeBackgroundImage(background, theme);\n var backgroundClipStyle = '';\n if (background.clip) {\n backgroundClipStyle = background.clip === 'text' ? \"-webkit-text-fill-color: transparent; \\n -webkit-background-clip: text; \\n background-clip: text;\" : \"background-clip: \" + background.clip + \";\";\n }\n if (typeof background === 'string' && background.lastIndexOf('url', 0) === 0) {\n return css([\"background:\", \" no-repeat center center;background-size:cover;\"], background);\n }\n if (backgroundImage) {\n var backgroundStyles = \"\\n \" + (backgroundColor ? \"background-color: \" + backgroundColor + \";\" : '') + \"\\n background-image: \" + backgroundImage + \";\\n background-repeat: \" + (typeof background === 'object' && background.repeat || 'no-repeat') + \";\\n background-position: \" + (background.position || 'center center') + \";\\n background-size: \" + (background.size || 'cover') + \";\\n \" + backgroundClipStyle + \"\\n \";\n\n // allow both background color and image, in case the image doesn't fill\n // when image and opacity are used together, we need to use pseudo :before\n // to ensure that only image and background color are affected by opacity\n // but not the container contents\n return css([\"\", \" \", \"\"], textColor ? \"color: \" + textColor + \";\" : '', !background.opacity ? backgroundStyles : \"position: relative;\\n z-index: 0;\\n &:before {\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n z-index: -1;\\n border-radius: inherit;\\n \" + backgroundStyles + \"\\n opacity: \" + (background.opacity === true ? theme.global.opacity.medium : theme.global.opacity[background.opacity] || background.opacity) + \";\\n }\");\n }\n if (backgroundColor) {\n return css([\"background-color:\", \";\", \"\"], backgroundColor, textColor ? \"color: \" + textColor + \";\" : '');\n }\n if (typeof background === 'string')\n // This case takes care of gradients\n // or theme colors that use CSS names like 'crimson' that we don't parse\n return css([\"background:\", \";\"], normalizeColor(background, theme));\n return undefined;\n};\nexport var activeStyle = css([\"\", \"\"], function (props) {\n return backgroundStyle(normalizeColor(props.theme.global.active.background, props.theme), props.theme, props.theme.global.active.color);\n});\nexport var selectedStyle = css([\"\", \"\"], function (props) {\n return backgroundStyle(normalizeColor(props.theme.global.selected.background, props.theme), props.theme, props.theme.global.selected.color);\n});\nexport var getHoverIndicatorStyle = function getHoverIndicatorStyle(hoverIndicator, theme) {\n var background;\n var elevation;\n if (hoverIndicator === true || hoverIndicator === 'background') {\n background = theme.global.hover.background;\n } else if (typeof hoverIndicator === 'object') {\n if (hoverIndicator.elevation || hoverIndicator.background) {\n elevation = hoverIndicator.elevation;\n background = hoverIndicator.background;\n } else background = hoverIndicator;\n } else {\n background = hoverIndicator;\n }\n return css([\"\", \" \", \"\"], backgroundStyle(background, theme, theme.global.hover.color), elevation && \"box-shadow: \" + theme.global.elevation[theme.dark ? 'dark' : 'light'][elevation] + \";\");\n};","import { css } from 'styled-components';\nimport { normalizeColor } from './colors';\nimport { breakpointStyle } from './mixins';\nexport var responsiveBorderStyle = function responsiveBorderStyle(data, theme) {\n var color = normalizeColor(data.color || 'border', theme);\n var borderSize = data.size || 'xsmall';\n var style = data.style || 'solid';\n var side = typeof data === 'string' ? data : data.side || 'all';\n var breakpoint = theme.box.responsiveBreakpoint && theme.global.breakpoints[theme.box.responsiveBreakpoint];\n if (!breakpoint.borderSize) breakpoint.borderSize = theme.global.borderSize;\n var value = breakpoint && (breakpoint.borderSize[borderSize] || borderSize) && style + \" \" + (breakpoint.borderSize[borderSize] || borderSize) + \" \" + color;\n if (!value) return undefined;\n if (side === 'top' || side === 'bottom' || side === 'left' || side === 'right') return \"border-\" + side + \": \" + value + \";\";\n if (side === 'end' || side === 'start') return \"border-inline-\" + side + \": \" + value + \";\";\n if (side === 'vertical') return \"\\n border-left: \" + value + \";\\n border-right: \" + value + \";\\n \";\n if (side === 'horizontal') return \"\\n border-top: \" + value + \";\\n border-bottom: \" + value + \";\\n \";\n if (side === 'between') return undefined; // no-op\n return \"border: \" + value + \";\";\n};\nexport var borderStyle = function borderStyle(borderData, responsive, theme) {\n var borderStyles = [];\n (Array.isArray(borderData) ? borderData : [borderData]).forEach(function (data) {\n var styles = [];\n var color = normalizeColor(data.color || 'border', theme);\n var borderSize = data.size || 'xsmall';\n var style = data.style || 'solid';\n var side = typeof data === 'string' ? data : data.side || 'all';\n var value = style + \" \" + (theme.global.borderSize[borderSize] || borderSize) + \" \" + color;\n var responsiveStyle = responsive && responsiveBorderStyle(data, theme);\n var breakpoint = responsiveStyle && theme.box.responsiveBreakpoint && theme.global.breakpoints[theme.box.responsiveBreakpoint];\n if (side === 'top' || side === 'bottom' || side === 'left' || side === 'right') {\n styles.push(\"border-\" + side + \": \" + value + \";\");\n if (responsiveStyle) {\n styles.push(breakpointStyle(breakpoint, responsiveStyle));\n }\n } else if (side === 'end' || side === 'start') {\n styles.push(css([\"border-inline-\", \":\", \";\"], side, value));\n if (responsiveStyle) {\n styles.push(breakpointStyle(breakpoint, responsiveStyle));\n }\n } else if (side === 'vertical') {\n styles.push(css([\"border-left:\", \";border-right:\", \";\"], value, value));\n if (responsiveStyle) {\n styles.push(breakpointStyle(breakpoint, responsiveStyle));\n }\n } else if (side === 'horizontal') {\n styles.push(css([\"border-top:\", \";border-bottom:\", \";\"], value, value));\n if (responsiveStyle) {\n styles.push(breakpointStyle(breakpoint, responsiveStyle));\n }\n } else if (side === 'between') {\n // no-op\n } else {\n styles.push(css([\"border:\", \";\"], value));\n if (responsiveStyle) {\n styles.push(breakpointStyle(breakpoint, responsiveStyle));\n }\n }\n borderStyles.push(styles);\n });\n return borderStyles;\n};","// Returns the specific color that should be used according to the theme.\n// If 'dark' is supplied, it takes precedence over 'theme.dark'.\n// Can return undefined.\nexport var normalizeColor = function normalizeColor(color, theme, dark) {\n var colorSpec = theme.global && theme.global.colors[color] !== undefined ? theme.global.colors[color] : color;\n // If the color has a light or dark object, use that\n var result = colorSpec;\n if (colorSpec) {\n if ((dark === true || dark === undefined && theme.dark) && colorSpec.dark !== undefined) {\n result = colorSpec.dark;\n } else if ((dark === false || !theme.dark) && colorSpec.light !== undefined) {\n result = colorSpec.light;\n }\n }\n // allow one level of indirection in color names\n if (result && theme.global && theme.global.colors[result] !== undefined) {\n result = normalizeColor(result, theme, dark);\n }\n return result;\n};\nvar parseHexToRGB = function parseHexToRGB(color) {\n return color.length < 7 // 7 is what's needed for '#RRGGBB'\n ? color.match(/[A-Za-z0-9]{1}/g).map(function (v) {\n return parseInt(\"\" + v + v, 16);\n }) :\n // https://stackoverflow.com/a/42429333\n color.match(/[A-Za-z0-9]{2}/g).map(function (v) {\n return parseInt(v, 16);\n });\n};\n\n// From: https://stackoverflow.com/a/9493060/8513067\n// Converts an HSL color value to RGB. Conversion formula\n// adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n// Assumes h, s, and l are contained in the set [0, 1] and\n// returns r, g, and b in the set [0, 255].\nvar hslToRGB = function hslToRGB(h, s, l) {\n var r;\n var g;\n var b;\n if (s === 0 || s === '0') {\n // achromatic\n r = l;\n g = l;\n b = l;\n } else {\n var hue2rgb = function hue2rgb(p, q, inT) {\n var t = inT;\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 0.16666667) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 0.66666667) return p + (q - p) * (0.66666667 - t) * 6;\n return p;\n };\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 0.33333333);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 0.33333333);\n }\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n};\n\n// allow for alpha: #RGB, #RGBA, #RRGGBB, or #RRGGBBAA\nvar hexExp = /^#[A-Za-z0-9]{3,4}$|^#[A-Za-z0-9]{6,8}$/;\nvar rgbExp = /^rgba?\\(\\s?([0-9]*)\\s?,\\s?([0-9]*)\\s?,\\s?([0-9]*)\\s?\\)/;\nvar rgbaExp = /^rgba?\\(\\s?([0-9]*)\\s?,\\s?([0-9]*)\\s?,\\s?([0-9]*)\\s?,\\s?([.0-9]*)\\s?\\)/;\n// e.g. hsl(240, 60%, 50%)\nvar hslExp = /^hsla?\\(\\s?([0-9]*)\\s?,\\s?([0-9]*)%?\\s?,\\s?([0-9]*)%?\\s?.*?\\)/;\nexport var canExtractRGBArray = function canExtractRGBArray(color) {\n return hexExp.test(color) || rgbExp.test(color) || rgbaExp.test(color) || hslExp.test(color);\n};\nexport var getRGBArray = function getRGBArray(color) {\n if (hexExp.test(color)) {\n var _parseHexToRGB = parseHexToRGB(color),\n red = _parseHexToRGB[0],\n green = _parseHexToRGB[1],\n blue = _parseHexToRGB[2],\n alpha = _parseHexToRGB[3];\n return [red, green, blue, alpha !== undefined ? alpha / 255.0 : undefined];\n }\n var match = color.match(rgbExp);\n if (match) {\n return match.splice(1).map(function (v) {\n return parseInt(v, 10);\n });\n }\n match = color.match(rgbaExp);\n if (match) {\n return match.splice(1).map(function (v) {\n return parseFloat(v, 10);\n });\n }\n match = color.match(hslExp);\n if (match) {\n var _match$splice$map = match.splice(1).map(function (v) {\n return parseInt(v, 10);\n }),\n h = _match$splice$map[0],\n s = _match$splice$map[1],\n l = _match$splice$map[2];\n return hslToRGB(h / 360.0, s / 100.0, l / 100.0);\n }\n return color;\n};\nexport var colorIsDark = function colorIsDark(color) {\n if (color && canExtractRGBArray(color)) {\n var _getRGBArray = getRGBArray(color),\n red = _getRGBArray[0],\n green = _getRGBArray[1],\n blue = _getRGBArray[2],\n alpha = _getRGBArray[3];\n // if there is an alpha and it's greater than 50%, we can't really tell\n if (alpha < 0.5) return undefined;\n var brightness = (299 * red + 587 * green + 114 * blue) / 1000;\n // From: http://www.had2know.com/technology/color-contrast-calculator-web-design.html\n // Above domain is no longer registered.\n return brightness < 125;\n }\n return undefined;\n};\nexport var getRGBA = function getRGBA(color, opacity) {\n if (color && canExtractRGBArray(color)) {\n var _getRGBArray2 = getRGBArray(color),\n red = _getRGBArray2[0],\n green = _getRGBArray2[1],\n blue = _getRGBArray2[2],\n alpha = _getRGBArray2[3];\n var normalizedAlpha;\n if (opacity !== undefined) {\n normalizedAlpha = opacity;\n } else if (alpha !== undefined) {\n normalizedAlpha = alpha;\n } else {\n normalizedAlpha = 1;\n }\n return \"rgba(\" + red + \", \" + green + \", \" + blue + \", \" + normalizedAlpha + \")\";\n }\n return undefined;\n};","import { cloneElement } from 'react';\nexport var useSizedIcon = function useSizedIcon(icon, size, theme) {\n var _theme$icon;\n return icon && theme != null && (_theme$icon = theme.icon) != null && _theme$icon.matchSize && !icon.props.size ? /*#__PURE__*/cloneElement(icon, {\n size: size\n }) : icon;\n};","import { css } from 'styled-components';\nexport var parseMetricToNum = function parseMetricToNum(metric) {\n if (typeof metric === 'number') return metric;\n if (metric.match(/\\s/) && process.env.NODE_ENV !== 'production') {\n console.warn(\"Invalid single measurement value: \\\"\" + metric + \"\\\"\");\n }\n return parseFloat(metric.match(/\\d+(\\.\\d+)?/), 10);\n};\nexport var edgeToNum = function edgeToNum(size, theme) {\n return size ? parseMetricToNum(theme.global.edgeSize[size] || size) : 0;\n};\nexport var fontSize = function fontSize(size, lineHeight) {\n return css([\"font-size:\", \";line-height:\", \";\"], function (props) {\n return parseMetricToNum(size) / parseMetricToNum(props.theme.global.font.size) * 1 + \"rem\";\n }, function (props) {\n return lineHeight || Math.ceil(parseMetricToNum(size) / parseMetricToNum(props.theme.global.lineHeight)) * (parseMetricToNum(props.theme.global.lineHeight) / parseMetricToNum(size)) + \"px\";\n });\n};\nexport var breakpointStyle = function breakpointStyle(breakpoint, content) {\n return css([\"@media only screen \", \"{\", \";}\"], breakpoint.value && \"and (max-width: \" + breakpoint.value + \"px)\", content);\n};\nexport var findAllByType = function findAllByType(component, type) {\n var matches = [];\n if (component.type === type) {\n matches.push(component);\n }\n if (component.children) {\n component.children.forEach(function (child) {\n matches = matches.concat(findAllByType(child, type));\n });\n }\n return matches;\n};\nexport var getAvailableAtBadge = function getAvailableAtBadge(availableAt, componentType) {\n return [{\n url: \"https://storybook.grommet.io/?selectedKind=\" + componentType + \"-\" + availableAt + \"&full=0&stories=1&panelRight=0\",\n badge: 'https://cdn-images-1.medium.com/fit/c/120/120/1*TD1P0HtIH9zF0UEH28zYtw.png',\n label: 'Storybook'\n }, {\n url: \"https://codesandbox.io/s/github/grommet/grommet-sandbox?initialpath=/\" + availableAt.toLowerCase() + \"&module=%2Fsrc%2F\" + availableAt + \".js\",\n badge: 'https://codesandbox.io/static/img/play-codesandbox.svg',\n label: 'CodeSandbox'\n }];\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nexport var isObject = function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n};\nexport var deepFreeze = function deepFreeze(obj) {\n Object.keys(obj).forEach(function (key) {\n return key && isObject(obj[key]) && Object.freeze(obj[key]);\n });\n return Object.freeze(obj);\n};\nexport var deepMerge = function deepMerge(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n if (!sources.length) {\n return target;\n }\n // making sure to not change target (immutable)\n var output = _extends({}, target);\n sources.forEach(function (source) {\n if (isObject(source)) {\n Object.keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!output[key]) {\n output[key] = _extends({}, source[key]);\n } else {\n output[key] = deepMerge(output[key], source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n }\n });\n return output;\n};\nexport var removeUndefined = function removeUndefined(obj) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (obj[key] !== undefined) {\n result[key] = obj[key];\n }\n });\n return result;\n};","import { useImperativeHandle, useRef } from 'react';\nexport var useForwardedRef = function useForwardedRef(ref) {\n var innerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return innerRef.current;\n });\n return innerRef;\n};","export var getBreakpoint = function getBreakpoint(viewportWidth, theme) {\n var sortedBreakpoints = Object.keys(theme.global.breakpoints).sort(function (a, b) {\n var first = theme.global.breakpoints[a];\n var second = theme.global.breakpoints[b];\n if (!first) return 1;\n if (!second) return -1;\n if (!first.value) return 1;\n if (!second.value) return -1;\n return first.value - second.value;\n });\n\n // the last breakpoint on the sorted array should have\n // no windowWidth boundaries\n var lastBreakpoint = sortedBreakpoints[sortedBreakpoints.length - 1];\n var result = sortedBreakpoints.find(function (name) {\n var breakpoint = theme.global.breakpoints[name];\n return !breakpoint.value || breakpoint.value >= viewportWidth ? name : false;\n });\n return result || lastBreakpoint;\n};\nexport var getDeviceBreakpoint = function getDeviceBreakpoint(type, theme) {\n return theme.global.deviceBreakpoints[type];\n};\nexport var getBreakpointStyle = function getBreakpointStyle(theme, breakpointSize) {\n var breakpoint = breakpointSize && theme.global.breakpoints[breakpointSize] || {};\n if (!breakpoint.edgeSize) breakpoint.edgeSize = theme.global.edgeSize;\n if (!breakpoint.borderSize) breakpoint.borderSize = theme.global.borderSize;\n if (!breakpoint.size) breakpoint.size = theme.global.size;\n return breakpoint;\n};","import { css } from 'styled-components';\nimport { backgroundStyle } from './background';\nimport { normalizeColor } from './colors';\nimport { getBreakpointStyle } from './responsive';\nimport { breakpointStyle, parseMetricToNum } from './mixins';\nexport var baseStyle = css([\"font-family:\", \";font-size:\", \";line-height:\", \";font-weight:\", \";\", \" \", \" box-sizing:border-box;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;\"], function (props) {\n return props.theme.global.font.family;\n}, function (props) {\n return props.theme.global.font.size;\n}, function (props) {\n return props.theme.global.font.height;\n}, function (props) {\n return props.theme.global.font.weight;\n}, function (props) {\n return props.theme.global.font.variant && \"\\n font-variant:\" + props.theme.global.font.variant + \";\\n \";\n}, function (props) {\n return !props.plain && backgroundStyle(props.theme.baseBackground, props.theme);\n});\nexport var controlBorderStyle = css([\"border:\", \" solid \", \";border-radius:\", \";\"], function (props) {\n return props.theme.global.control.border.width;\n}, function (props) {\n return normalizeColor(props.theme.global.control.border.color || 'border', props.theme);\n}, function (props) {\n return props.theme.global.control.border.radius;\n});\nexport var edgeStyle = function edgeStyle(kind, data, responsive, responsiveBreakpoint, theme) {\n var breakpoint = responsiveBreakpoint && theme.global.breakpoints[responsiveBreakpoint];\n if (typeof data === 'string') {\n return css([\"\", \":\", \";\", \";\"], kind, theme.global.edgeSize[data] || data, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \": \" + (breakpoint.edgeSize[data] || data) + \";\\n \") : '');\n }\n var result = [];\n var horizontal = data.horizontal,\n vertical = data.vertical,\n top = data.top,\n bottom = data.bottom,\n left = data.left,\n right = data.right;\n\n // if horizontal and vertical are equal OR all sides are equal,\n // we can just return a single css value such as padding: 12px\n // instead of breaking out by sides.\n var horizontalVerticalEqual = horizontal && vertical && horizontal === vertical;\n var allSidesEqual = top && bottom && left && right && top === bottom === left === right;\n if (horizontalVerticalEqual || allSidesEqual) {\n // since the values will be the same between vertical & horizontal OR\n // left, right, top, & bottom, we can just choose one\n var value = horizontalVerticalEqual ? horizontal : top;\n return css([\"\", \":\", \";\", \";\"], kind, theme.global.edgeSize[value] || value, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \": \" + (breakpoint.edgeSize[value] || value) + \";\\n \") : '');\n }\n if (horizontal) {\n result.push(css([\"\", \"-left:\", \";\", \"-right:\", \";\", \";\"], kind, theme.global.edgeSize[horizontal] || horizontal, kind, theme.global.edgeSize[horizontal] || horizontal, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \"-left: \" + (breakpoint.edgeSize[horizontal] || horizontal) + \";\\n \" + kind + \"-right: \" + (breakpoint.edgeSize[horizontal] || horizontal) + \";\\n \") : ''));\n }\n if (vertical) {\n result.push(css([\"\", \"-top:\", \";\", \"-bottom:\", \";\", \";\"], kind, theme.global.edgeSize[vertical] || vertical, kind, theme.global.edgeSize[vertical] || vertical, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \"-top: \" + (breakpoint.edgeSize[vertical] || vertical) + \";\\n \" + kind + \"-bottom: \" + (breakpoint.edgeSize[vertical] || vertical) + \";\\n \") : ''));\n }\n if (top) {\n result.push(css([\"\", \"-top:\", \";\", \";\"], kind, theme.global.edgeSize[top] || top, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \"-top: \" + (breakpoint.edgeSize[top] || top) + \";\\n \") : ''));\n }\n if (bottom) {\n result.push(css([\"\", \"-bottom:\", \";\", \";\"], kind, theme.global.edgeSize[bottom] || bottom, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \"-bottom: \" + (breakpoint.edgeSize[bottom] || bottom) + \";\\n \") : ''));\n }\n if (left) {\n result.push(css([\"\", \"-left:\", \";\", \";\"], kind, theme.global.edgeSize[left] || left, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \"-left: \" + (breakpoint.edgeSize[left] || left) + \";\\n \") : ''));\n }\n if (right) {\n result.push(css([\"\", \"-right:\", \";\", \";\"], kind, theme.global.edgeSize[right] || right, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \"-right: \" + (breakpoint.edgeSize[right] || right) + \";\\n \") : ''));\n }\n if (data.start) {\n result.push(css([\"\", \"-inline-start:\", \";\", \";\"], kind, theme.global.edgeSize[data.start] || data.start, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \"-inline-start: \" + (breakpoint.edgeSize[data.start] || data.start) + \";\\n \") : ''));\n }\n if (data.end) {\n result.push(css([\"\", \"-inline-end:\", \";\", \";\"], kind, theme.global.edgeSize[data.end] || data.end, responsive && breakpoint ? breakpointStyle(breakpoint, \"\\n \" + kind + \"-inline-end: \" + (breakpoint.edgeSize[data.end] || data.end) + \";\\n \") : ''));\n }\n return result;\n};\nexport var fillStyle = function fillStyle(fillProp) {\n if (fillProp === 'horizontal') {\n return 'width: 100%;';\n }\n if (fillProp === 'vertical') {\n return 'height: 100%;';\n }\n if (fillProp) {\n return \"\\n width: 100%;\\n height: 100%;\\n \";\n }\n return undefined;\n};\nvar focusStyles = function focusStyles(props, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n forceOutline = _ref.forceOutline,\n justBorder = _ref.justBorder;\n var focus = props.theme.global.focus;\n if (!focus || forceOutline && !focus.outline) {\n var color = normalizeColor('focus', props.theme);\n if (color) return \"outline: 2px solid \" + color + \";\";\n return ''; // native\n }\n\n if (focus.outline && (!focus.border || !justBorder)) {\n if (typeof focus.outline === 'object') {\n var _color = normalizeColor(focus.outline.color || 'focus', props.theme);\n var size = focus.outline.size || '2px';\n return \"\\n outline-offset: 0px;\\n outline: \" + size + \" solid \" + _color + \";\\n \";\n }\n return \"outline: \" + focus.outline + \";\";\n }\n if (focus.shadow && (!focus.border || !justBorder)) {\n if (typeof focus.shadow === 'object') {\n var _color2 = normalizeColor(\n // If there is a focus.border.color, use that for shadow too.\n // This is for backwards compatibility in v2.\n focus.border && focus.border.color || focus.shadow.color || 'focus', props.theme);\n var _size = focus.shadow.size || '2px'; // backwards compatible default\n return \"\\n outline: none;\\n box-shadow: 0 0 \" + _size + \" \" + _size + \" \" + _color2 + \";\\n \";\n }\n return \"\\n outline: none;\\n box-shadow: \" + focus.shadow + \";\\n \";\n }\n if (focus.border) {\n var _color3 = normalizeColor(focus.border.color || 'focus', props.theme);\n return \"\\n outline: none;\\n border-color: \" + _color3 + \";\\n \";\n }\n return ''; // defensive\n};\n\nvar unfocusStyles = function unfocusStyles(props, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n forceOutline = _ref2.forceOutline,\n justBorder = _ref2.justBorder;\n var focus = props.theme.global.focus;\n if (!focus || forceOutline && !focus.outline) {\n var color = normalizeColor('focus', props.theme);\n if (color) return \"outline: none;\";\n return ''; // native\n }\n\n if (focus.outline && (!focus.border || !justBorder)) {\n if (typeof focus.outline === 'object') {\n return \"\\n outline-offset: 0px;\\n outline: none;\\n \";\n }\n return \"outline: none;\";\n }\n if (focus.shadow && (!focus.border || !justBorder)) {\n if (typeof focus.shadow === 'object') {\n return \"\\n outline: none;\\n box-shadow: none;\\n \";\n }\n return \"\\n outline: none;\\n box-shadow: none;\\n \";\n }\n if (focus.border) {\n return \"\\n outline: none;\\n border-color: none;\\n \";\n }\n return ''; // defensive\n};\n\n// focus also supports clickable elements inside svg\nexport var focusStyle = function focusStyle(_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n forceOutline = _ref3.forceOutline,\n justBorder = _ref3.justBorder,\n skipSvgChildren = _ref3.skipSvgChildren;\n return css([\"\", \" \", \" \", \"\"], function (props) {\n return !skipSvgChildren && \"\\n > circle,\\n > ellipse,\\n > line,\\n > path,\\n > polygon,\\n > polyline,\\n > rect {\\n \" + focusStyles(props) + \"\\n }\";\n }, function (props) {\n return focusStyles(props, {\n forceOutline: forceOutline,\n justBorder: justBorder\n });\n }, !forceOutline && \"\\n ::-moz-focus-inner {\\n border: 0;\\n }\\n \");\n};\n\n// This is placed next to focusStyle for easy maintainability\n// of code since changes to focusStyle should be reflected in\n// unfocusStyle as well.\n// this function can be used to reset focus styles which is\n// applicable when turning the focus ring off when using the mouse\n// see https://nelo.is/writing/styling-better-focus-states/\nexport var unfocusStyle = function unfocusStyle(_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n forceOutline = _ref4.forceOutline,\n justBorder = _ref4.justBorder,\n skipSvgChildren = _ref4.skipSvgChildren;\n return css([\"\", \" \", \" \", \"\"], function (props) {\n return !skipSvgChildren && \"\\n > circle,\\n > ellipse,\\n > line,\\n > path,\\n > polygon,\\n > polyline,\\n > rect {\\n \" + unfocusStyles(props) + \"\\n }\";\n }, function (props) {\n return unfocusStyles(props, {\n forceOutline: forceOutline,\n justBorder: justBorder\n });\n }, !forceOutline && \"\\n ::-moz-focus-inner {\\n border: 0;\\n }\\n \");\n};\n\n// For backwards compatibility we need to add back the control border width.\n// Based on how grommet was functioning prior to https://github.com/grommet/grommet/pull/3939,\n// the padding was subtracting the border width from the theme value, but the\n// placeholder was not. Because we're now placing the subtraction into the\n// theme itself, we have to add back in the border width here.\n// This is used for placeholder/icon in TextInput and MaskedInput.\nvar adjustPad = function adjustPad(props, value) {\n return parseMetricToNum((props.theme.global.edgeSize[value] || value) + \"px\") + parseMetricToNum(props.theme.global.control.border.width + \"px\") + \"px\";\n};\nexport var getInputPadBySide = function getInputPadBySide(props, side) {\n if (typeof props.theme.global.input.padding !== 'object') {\n var _adjustedPad = adjustPad(props, props.theme.global.input.padding);\n return _adjustedPad;\n }\n var orientation;\n if (side === 'left' || side === 'right') orientation = 'horizontal';else if (side === 'top' || side === 'bottom') orientation = 'vertical';else orientation = undefined;\n\n // if individual side isn't available, fallback to the\n // orientation if possible\n var pad = props.theme.global.input.padding[side] || props.theme.global.input.padding[orientation];\n var adjustedPad = adjustPad(props, pad);\n return adjustedPad;\n};\nvar placeholderColor = css([\"color:\", \";\"], function (props) {\n return normalizeColor(props.theme.global.colors.placeholder, props.theme);\n});\nvar placeholderStyle = css([\"&::-webkit-input-placeholder{\", \";}&::-moz-placeholder{\", \";}&:-ms-input-placeholder{\", \";}\"], placeholderColor, placeholderColor, placeholderColor);\nvar inputSizeStyle = function inputSizeStyle(props) {\n var data = props.theme.text[props.size];\n if (!data) {\n return css([\"font-size:\", \";\"], props.size);\n }\n return css([\"font-size:\", \";line-height:\", \";\"], data.size, data.height);\n};\nexport var inputStyle = css([\"box-sizing:border-box;\", \" font-family:inherit;border:none;-webkit-appearance:none;background:transparent;color:inherit;width:100%;\", \" \", \" \", \" margin:0;\", \" &:focus{\", \";}\", \" \", \"::-webkit-search-decoration{-webkit-appearance:none;}&::-moz-focus-inner{border:none;outline:none;}&:-moz-placeholder,&::-moz-placeholder{opacity:1;}\", \"\"], function (props) {\n var _props$theme$text$pro;\n return \"font-size: \" + (props.theme.global.input.font.size ? ((_props$theme$text$pro = props.theme.text[props.theme.global.input.font.size]) == null ? void 0 : _props$theme$text$pro.size) || props.theme.global.input.font.size : 'inherit') + \";\";\n}, function (props) {\n return props.theme.global.input.font.height && \"line-height: \" + props.theme.global.input.font.height + \";\";\n}, function (props) {\n return props.theme.global.input.padding && typeof props.theme.global.input.padding !== 'object' ? // On a breaking change release, this condition could be removed and\n // just the edgeStyle could remain. Currently, this is needed for\n // backwards compatibility since we are placing the calculation in\n // base.js\n \"padding: \" + (parseMetricToNum(props.theme.global.edgeSize[props.theme.global.input.padding] || props.theme.global.input.padding) - parseMetricToNum(props.theme.global.control.border.width)) + \"px;\" : edgeStyle('padding', props.theme.global.input.padding, props.responsive, props.theme.box.responsiveBreakpoint, props.theme);\n}, function (props) {\n return (\n // for backwards compatibility, check if props.theme.global.input.weight\n (props.theme.global.input.weight || props.theme.global.input.font.weight) && css([\"font-weight:\", \";\"], props.theme.global.input.weight || props.theme.global.input.font.weight)\n );\n}, function (props) {\n return props.size && inputSizeStyle(props);\n}, function (props) {\n return (!props.plain || props.focusIndicator) && focusStyle();\n}, controlBorderStyle, placeholderStyle, function (props) {\n return props.theme.global.input.extend;\n});\n\n// Apply padding on input to create space for icon.\n// When theme.icon.matchSize is true, the space for the\n// icon should equal the icon dimension + 12px (edgeSize.medium)\n// to ensure there is reasonable space between the icon and value or placeholder\nexport var inputPadForIcon = css([\"\", \"\"], function (props) {\n var _props$theme, _props$theme$icon, _props$theme$icon2, _props$theme$icon2$si;\n var pad = (_props$theme = props.theme) != null && (_props$theme$icon = _props$theme.icon) != null && _props$theme$icon.matchSize ? parseMetricToNum((_props$theme$icon2 = props.theme.icon) == null ? void 0 : (_props$theme$icon2$si = _props$theme$icon2.size) == null ? void 0 : _props$theme$icon2$si[(props == null ? void 0 : props.size) || 'medium']) + parseMetricToNum(props.theme.global.edgeSize.medium) + \"px\" : props.theme.global.edgeSize.large;\n return props.reverse ? \"padding-right: \" + pad + \";\" : \"padding-left: \" + pad + \";\";\n});\nexport var overflowStyle = function overflowStyle(overflowProp) {\n if (typeof overflowProp === 'string') {\n return css([\"overflow:\", \";\"], overflowProp);\n }\n return css([\"\", \" \", \";\"], overflowProp.horizontal && \"overflow-x: \" + overflowProp.horizontal + \";\", overflowProp.vertical && \"overflow-y: \" + overflowProp.vertical + \";\");\n};\nvar ALIGN_SELF_MAP = {\n center: 'center',\n end: 'flex-end',\n start: 'flex-start',\n stretch: 'stretch',\n baseline: 'baseline'\n};\nexport var genericStyles = css([\"\", \" \", \" \", \"\"], function (props) {\n return props.alignSelf && \"align-self: \" + ALIGN_SELF_MAP[props.alignSelf] + \";\";\n}, function (props) {\n return props.gridArea && \"grid-area: \" + props.gridArea + \";\";\n}, function (props) {\n return props.margin && props.theme.global && edgeStyle('margin', props.margin, props.responsive, props.theme.global.edgeSize.responsiveBreakpoint, props.theme);\n});\nexport var disabledStyle = function disabledStyle(componentStyle) {\n return css([\"opacity:\", \";cursor:default;\"], function (props) {\n return componentStyle || props.theme.global.control.disabled.opacity;\n });\n};\nexport var sizeStyle = function sizeStyle(name, value, theme) {\n return css([\"\", \":\", \";\"], name, theme.global.size[value] || value);\n};\nexport var plainInputStyle = css([\"outline:none;border:none;\"]);\n\n// CSS for this sub-object in the theme\nexport var kindPartStyles = function kindPartStyles(obj, theme, colorValue) {\n var styles = [];\n if (obj.padding || obj.pad) {\n // button uses `padding` but other components use Grommet `pad`\n var pad = obj.padding || obj.pad;\n if (pad.vertical || pad.horizontal) styles.push(\"padding: \" + (theme.global.edgeSize[pad.vertical] || pad.vertical || 0) + \" \" + (theme.global.edgeSize[pad.horizontal] || pad.horizontal || 0) + \";\");else styles.push(\"padding: \" + (theme.global.edgeSize[pad] || pad || 0) + \";\");\n }\n if (obj.background) styles.push(backgroundStyle(colorValue || obj.background, theme, obj.color || (Object.prototype.hasOwnProperty.call(obj, 'color') && obj.color === undefined ? false : undefined)));else if (obj.color) styles.push(\"color: \" + normalizeColor(obj.color, theme) + \";\");\n if (obj.border) {\n if (obj.border.width) styles.push(css([\"border-style:solid;border-width:\", \";\"], obj.border.width));\n if (obj.border.color) styles.push(css([\"border-color:\", \";\"], normalizeColor(!obj.background && colorValue || obj.border.color || 'border', theme)));\n if (obj.border.radius) styles.push(css([\"border-radius:\", \";\"], obj.border.radius));\n } else if (obj.border === false) styles.push('border: none;');\n if (colorValue && !obj.border && !obj.background) styles.push(\"color: \" + normalizeColor(colorValue, theme) + \";\");\n if (obj.font) {\n if (obj.font.size) {\n styles.push(\"font-size: \" + (theme.text[obj.font.size].size || obj.font.size) + \";\");\n }\n if (obj.font.height) {\n styles.push(\"line-height: \" + obj.font.height + \";\");\n }\n if (obj.font.weight) {\n styles.push(\"font-weight: \" + obj.font.weight + \";\");\n }\n }\n if (obj.opacity) {\n var opacity = obj.opacity === true ? theme.global.opacity.medium : theme.global.opacity[obj.opacity] || obj.opacity;\n styles.push(\"opacity: \" + opacity + \";\");\n }\n if (obj.extend) styles.push(obj.extend);\n return styles;\n};\nvar ROUND_MAP = {\n full: '100%'\n};\nexport var roundStyle = function roundStyle(data, responsive, theme) {\n var breakpoint = getBreakpointStyle(theme, theme.box.responsiveBreakpoint);\n var styles = [];\n if (typeof data === 'object') {\n var size = ROUND_MAP[data.size] || theme.global.edgeSize[data.size || 'medium'] || data.size;\n var responsiveSize = responsive && breakpoint && breakpoint.edgeSize[data.size] && (breakpoint.edgeSize[data.size] || data.size);\n if (data.corner === 'top') {\n styles.push(css([\"border-top-left-radius:\", \";border-top-right-radius:\", \";\"], size, size));\n if (responsiveSize) {\n styles.push(breakpointStyle(breakpoint, \"\\n border-top-left-radius: \" + responsiveSize + \";\\n border-top-right-radius: \" + responsiveSize + \";\\n \"));\n }\n } else if (data.corner === 'bottom') {\n styles.push(css([\"border-bottom-left-radius:\", \";border-bottom-right-radius:\", \";\"], size, size));\n if (responsiveSize) {\n styles.push(breakpointStyle(breakpoint, \"\\n border-bottom-left-radius: \" + responsiveSize + \";\\n border-bottom-right-radius: \" + responsiveSize + \";\\n \"));\n }\n } else if (data.corner === 'left') {\n styles.push(css([\"border-top-left-radius:\", \";border-bottom-left-radius:\", \";\"], size, size));\n if (responsiveSize) {\n styles.push(breakpointStyle(breakpoint, \"\\n border-top-left-radius: \" + responsiveSize + \";\\n border-bottom-left-radius: \" + responsiveSize + \";\\n \"));\n }\n } else if (data.corner === 'right') {\n styles.push(css([\"border-top-right-radius:\", \";border-bottom-right-radius:\", \";\"], size, size));\n if (responsiveSize) {\n styles.push(breakpointStyle(breakpoint, \"\\n border-top-right-radius: \" + responsiveSize + \";\\n border-bottom-right-radius: \" + responsiveSize + \";\\n \"));\n }\n } else if (data.corner) {\n styles.push(css([\"border-\", \"-radius:\", \";\"], data.corner, size));\n if (responsiveSize) {\n styles.push(breakpointStyle(breakpoint, \"\\n border-\" + data.corner + \"-radius: \" + responsiveSize + \";\\n \"));\n }\n } else {\n styles.push(css([\"border-radius:\", \";\"], size));\n if (responsiveSize) {\n styles.push(breakpointStyle(breakpoint, \"\\n border-radius: \" + responsiveSize + \";\\n \"));\n }\n }\n } else {\n var _size2 = data === true ? 'medium' : data;\n styles.push(css([\"border-radius:\", \";\"], ROUND_MAP[_size2] || theme.global.edgeSize[_size2] || _size2));\n var _responsiveSize = breakpoint && breakpoint.edgeSize[_size2];\n if (_responsiveSize) {\n styles.push(breakpointStyle(breakpoint, \"\\n border-radius: \" + _responsiveSize + \";\\n \"));\n }\n }\n return styles;\n};\nvar TEXT_ALIGN_MAP = {\n center: 'center',\n end: 'right',\n justify: 'justify',\n start: 'left'\n};\nexport var textAlignStyle = css([\"text-align:\", \";\"], function (props) {\n return TEXT_ALIGN_MAP[props.textAlign];\n});\nvar ALIGN_ITEMS_MAP = {\n baseline: 'baseline',\n center: 'center',\n end: 'flex-end',\n start: 'flex-start',\n stretch: 'stretch'\n};\nexport var alignStyle = css([\"align-items:\", \";\"], function (props) {\n var _ALIGN_ITEMS_MAP$prop;\n return (_ALIGN_ITEMS_MAP$prop = ALIGN_ITEMS_MAP[props.align]) != null ? _ALIGN_ITEMS_MAP$prop : props.align;\n});\nvar ALIGN_CONTENT_MAP = {\n around: 'space-around',\n baseline: 'baseline',\n between: 'space-between',\n center: 'center',\n evenly: 'space-evenly',\n end: 'flex-end',\n start: 'flex-start',\n stretch: 'stretch'\n};\nexport var alignContentStyle = css([\"align-content:\", \";\"], function (props) {\n var _ALIGN_CONTENT_MAP$pr;\n return (_ALIGN_CONTENT_MAP$pr = ALIGN_CONTENT_MAP[props.alignContent]) != null ? _ALIGN_CONTENT_MAP$pr : props.alignContent;\n});\nvar getSize = function getSize(theme, size) {\n return theme.global.size[size] || size;\n};\nvar widthObjectStyle = function widthObjectStyle(width, theme) {\n var result = [];\n if (width.max) result.push(css([\"max-width:\", \";\"], getSize(theme, width.max)));\n if (width.min) result.push(css([\"min-width:\", \";\"], getSize(theme, width.min)));\n if (width.width) result.push(css([\"width:\", \";\"], getSize(theme, width.width)));\n return result;\n};\nvar widthStringStyle = function widthStringStyle(width, theme) {\n return css([\"width:\", \";\"], getSize(theme, width));\n};\nexport var widthStyle = function widthStyle(width, theme) {\n return typeof width === 'object' ? widthObjectStyle(width, theme) : widthStringStyle(width, theme);\n};\nvar heightObjectStyle = function heightObjectStyle(height, theme) {\n var result = [];\n if (height.max) result.push(css([\"max-height:\", \";\"], getSize(theme, height.max)));\n if (height.min) result.push(css([\"min-height:\", \";\"], getSize(theme, height.min)));\n // backwards compatibile\n if (height.width) result.push(css([\"height:\", \";\"], getSize(theme, height.height)));\n if (height.height) result.push(css([\"height:\", \";\"], getSize(theme, height.height)));\n return result;\n};\nvar heightStringStyle = function heightStringStyle(height, theme) {\n return css([\"height:\", \";\"], getSize(theme, height));\n};\nexport var heightStyle = function heightStyle(height, theme) {\n return typeof height === 'object' ? heightObjectStyle(height, theme) : heightStringStyle(height, theme);\n};","/* eslint-disable no-restricted-imports */\nimport { useLayoutEffect as vanillaUseLayoutEffect, useEffect } from 'react';\n\n/**\n * A substitute for React's useLayoutEffect, which does not generate warnings on\n * SSR. It is named useLayoutEffect so that all eslint rules applying to the\n * original useLayoutEffect would also apply to it.\n * This solution was suggested by Alex Reardon.\n * @see https://medium.com/@alexandereardon/uselayouteffect-and-ssr-192986cdcf7a\n * @see https://github.com/grommet/grommet/issues/4765\n */\nexport var useLayoutEffect = typeof window !== 'undefined' ? vanillaUseLayoutEffect : useEffect;\nexport default useLayoutEffect;","import { useEffect, useState } from 'react';\nexport var useKeyboard = function useKeyboard() {\n var _useState = useState(),\n usingKeyboard = _useState[0],\n setUsingKeyboard = _useState[1];\n useEffect(function () {\n var onMouseDown = function onMouseDown() {\n return setUsingKeyboard(false);\n };\n var onKeyDown = function onKeyDown() {\n return setUsingKeyboard(true);\n };\n document.addEventListener('mousedown', onMouseDown);\n document.addEventListener('keydown', onKeyDown);\n return function () {\n document.removeEventListener('mousedown', onMouseDown);\n document.removeEventListener('keydown', onKeyDown);\n };\n }, []);\n return usingKeyboard;\n};\nexport default useKeyboard;","\"use strict\";\n\nexports.__esModule = true;\nexports.withinDropPortal = exports.shouldKeepFocus = exports.setFocusWithoutScroll = exports.makeNodeUnfocusable = exports.makeNodeFocusable = exports.isNodeBeforeScroll = exports.isNodeAfterScroll = exports.isFocusable = exports.getNewContainer = exports.getFirstFocusableDescendant = exports.findVisibleParent = exports.findScrollParents = exports.findScrollParent = exports.findButtonParent = exports.containsFocus = void 0;\nvar findScrollParent = function findScrollParent(element, horizontal) {\n var result;\n if (element) {\n var parent = element.parentNode;\n while (!result && parent && parent.getBoundingClientRect) {\n var rect = parent.getBoundingClientRect();\n // 10px is to account for borders and scrollbars in a lazy way\n if (horizontal) {\n if (rect.width && parent.scrollWidth > rect.width + 10) {\n result = parent;\n }\n } else if (rect.height && parent.scrollHeight > rect.height + 10) {\n result = parent;\n }\n parent = parent.parentNode;\n }\n // last scrollable element will be the document\n // if nothing else is scrollable in the page\n if (!result) {\n result = document;\n } else if (result.tagName.toLowerCase() === 'body') {\n result = document;\n }\n }\n return result;\n};\nexports.findScrollParent = findScrollParent;\nvar documentTags = ['html', 'body'];\nvar findScrollParents = function findScrollParents(element, horizontal) {\n var result = [];\n if (element) {\n var parent = element.parentNode;\n while (parent && parent.getBoundingClientRect) {\n var rect = parent.getBoundingClientRect();\n // 10px is to account for borders and scrollbars in a lazy way\n if (horizontal) {\n if (rect.width && parent.scrollWidth > rect.width + 10) {\n result.push(parent);\n }\n } else if (rect.height && parent.scrollHeight > rect.height + 10) {\n result.push(parent);\n }\n parent = parent.parentNode;\n }\n if (result.length && documentTags.includes(result[0].tagName.toLowerCase())) {\n result.length = 0;\n }\n // last scrollable element will be the document\n result.push(document);\n }\n return result;\n};\nexports.findScrollParents = findScrollParents;\nvar containsFocus = function containsFocus(node) {\n var root = node.getRootNode();\n var element = root.activeElement;\n while (element) {\n if (element === node) break;\n element = element.parentElement;\n }\n return !!element;\n};\nexports.containsFocus = containsFocus;\nvar withinDropPortal = function withinDropPortal(node, portalContext) {\n var root = node == null ? void 0 : node.getRootNode();\n var element = node;\n var portalId;\n while (element && element !== root) {\n if (element.hasAttribute('data-g-portal-id')) {\n portalId = element.getAttribute('data-g-portal-id');\n element = root;\n } else {\n element = element.parentElement;\n }\n }\n // if portalContext doesn't contain the portalId then the\n // portal is new and node is within a drop that just opened\n if (portalId === undefined || portalContext.indexOf(parseInt(portalId, 10)) !== -1) return false;\n return true;\n};\n\n// Check if the element.tagName is an input, select or textarea\nexports.withinDropPortal = withinDropPortal;\nvar isFocusable = function isFocusable(element) {\n var tagName = element.tagName.toLowerCase();\n return tagName === 'input' || tagName === 'select' || tagName === 'textarea';\n};\n\n// Get the first element that can receive focus\nexports.isFocusable = isFocusable;\nvar getFirstFocusableDescendant = function getFirstFocusableDescendant(element) {\n var children = element.getElementsByTagName('*');\n for (var i = 0; i < children.length; i += 1) {\n var child = children[i];\n if (isFocusable(child)) {\n return child;\n }\n }\n return undefined;\n};\nexports.getFirstFocusableDescendant = getFirstFocusableDescendant;\nvar shouldKeepFocus = function shouldKeepFocus(root) {\n var element = root.activeElement;\n if (isFocusable(element)) return true;\n return !!getFirstFocusableDescendant(element);\n};\nexports.shouldKeepFocus = shouldKeepFocus;\nvar getNewContainer = function getNewContainer(target, targetChildPosition) {\n if (target === void 0) {\n target = document.body;\n }\n // setup DOM\n var container = document.createElement('div');\n if (targetChildPosition === 'first') {\n // for SkipLinks\n target.prepend(container);\n } else {\n target.appendChild(container);\n }\n return container;\n};\nexports.getNewContainer = getNewContainer;\nvar setFocusWithoutScroll = function setFocusWithoutScroll(element) {\n var x = window.scrollX;\n var y = window.scrollY;\n element.focus();\n window.scrollTo(x, y);\n};\nexports.setFocusWithoutScroll = setFocusWithoutScroll;\nvar TABINDEX = 'tabindex';\nvar TABINDEX_STATE = 'data-g-tabindex';\nvar makeNodeFocusable = function makeNodeFocusable(node) {\n // do not touch aria live containers so that announcements work\n if (!node.hasAttribute('aria-live')) {\n node.removeAttribute('aria-hidden');\n // allow children to receive focus again\n var elements = node.getElementsByTagName('*');\n // only reset elements we've changed in makeNodeUnfocusable()\n Array.prototype.filter.call(elements || [], function (element) {\n return element.hasAttribute(TABINDEX_STATE);\n }).forEach(function (element) {\n var prior = element.getAttribute(TABINDEX_STATE);\n if (prior >= 0) {\n element.setAttribute(TABINDEX, element.getAttribute(TABINDEX_STATE));\n } else if (prior === 'none') {\n element.removeAttribute(TABINDEX);\n }\n element.removeAttribute(TABINDEX_STATE);\n });\n }\n};\nexports.makeNodeFocusable = makeNodeFocusable;\nvar autoFocusingTags = /(a|area|input|select|textarea|button|iframe)$/;\nvar makeNodeUnfocusable = function makeNodeUnfocusable(node) {\n // do not touch aria live containers so that announcements work\n if (!node.hasAttribute('aria-live')) {\n node.setAttribute('aria-hidden', true);\n // prevent children to receive focus\n var elements = node.getElementsByTagName('*');\n // first, save off the tabIndex of any element with one\n Array.prototype.filter.call(elements || [], function (element) {\n return element.getAttribute(TABINDEX) !== null;\n }).forEach(function (element) {\n element.setAttribute(TABINDEX_STATE, element.getAttribute(TABINDEX));\n element.setAttribute(TABINDEX, -1);\n });\n // then, if any element is inherently focusable and not handled above,\n // give it a tabIndex of -1 so it can't receive focus\n Array.prototype.filter.call(elements || [], function (element) {\n var currentTag = element.tagName.toLowerCase();\n return currentTag.match(autoFocusingTags) && element.focus && element.getAttribute(TABINDEX_STATE) === null;\n }).forEach(function (element) {\n element.setAttribute(TABINDEX_STATE, 'none');\n element.setAttribute(TABINDEX, -1);\n });\n }\n};\nexports.makeNodeUnfocusable = makeNodeUnfocusable;\nvar findVisibleParent = function findVisibleParent(element) {\n if (element) {\n // Get the closest ancestor element that is positioned.\n return element.offsetParent ? element : findVisibleParent(element.parentElement) || element;\n }\n return undefined;\n};\nexports.findVisibleParent = findVisibleParent;\nvar isNodeAfterScroll = function isNodeAfterScroll(node, target) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n bottom = _node$getBoundingClie.bottom;\n // target will be the document from findScrollParent()\n var _ref = target.getBoundingClientRect ? target.getBoundingClientRect() : {\n height: 0,\n top: 0\n },\n height = _ref.height,\n top = _ref.top;\n return bottom >= top + height;\n};\nexports.isNodeAfterScroll = isNodeAfterScroll;\nvar isNodeBeforeScroll = function isNodeBeforeScroll(node, target) {\n var _node$getBoundingClie2 = node.getBoundingClientRect(),\n top = _node$getBoundingClie2.top;\n // target will be the document from findScrollParent()\n var _ref2 = target.getBoundingClientRect ? target.getBoundingClientRect() : {\n top: 0\n },\n targetTop = _ref2.top;\n return top <= targetTop;\n};\nexports.isNodeBeforeScroll = isNodeBeforeScroll;\nvar findButtonParent = function findButtonParent(element) {\n if (element && element.nodeName !== 'BUTTON' && element.nodeName !== 'A') return findButtonParent(element.parentElement);\n return element;\n};\nexports.findButtonParent = findButtonParent;","\"use strict\";\n\nexports.__esModule = true;\nexports.PortalContext = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar PortalContext = /*#__PURE__*/_react[\"default\"].createContext([]);\nexports.PortalContext = PortalContext;","\"use strict\";\n\nexports.__esModule = true;\nexports.normalizeTiming = exports.animationObjectStyle = exports.animationEnding = exports.animationBounds = void 0;\nvar _styledComponents = require(\"styled-components\");\nvar PULSE_SIZES = {\n xsmall: 1.001,\n small: 1.01,\n medium: 1.1,\n large: 1.5,\n xlarge: 2\n};\nvar SLIDE_SIZES = {\n xsmall: 1,\n small: 5,\n medium: 10,\n large: 50,\n xlarge: 200\n};\nvar JIGGLE_SIZES = {\n xsmall: 0.1,\n small: 1,\n medium: 5,\n large: 400,\n xlarge: 1000\n};\nvar ZOOM_SIZES = {\n xsmall: 0.001,\n small: 0.01,\n medium: 0.05,\n large: 0.1,\n xlarge: 0.5\n};\nvar animationBounds = function animationBounds(type, size) {\n if (size === void 0) {\n size = 'medium';\n }\n if (type === 'draw') {\n return ['', \"stroke-dashoffset: 0\"];\n }\n if (type === 'fadeIn') {\n return ['opacity: 0;', 'opacity: 1;'];\n }\n if (type === 'fadeOut') {\n return ['opacity: 1;', 'opacity: 0;'];\n }\n if (type === 'jiggle') {\n var deg = JIGGLE_SIZES[size];\n return [\"transform: rotate(-\" + deg + \"deg);\", \"transform: rotate(\" + deg + \"deg);\"];\n }\n if (type === 'pulse') {\n return ['transform: scale(1);', \"transform: scale(\" + PULSE_SIZES[size] + \")\"];\n }\n if (type === 'rotateRight') {\n return [\"transform: rotate(0deg);\", \"transform: rotate(359deg);\"];\n }\n if (type === 'rotateLeft') {\n return [\"transform: rotate(0deg);\", \"transform: rotate(-359deg);\"];\n }\n if (type === 'flipIn') {\n return ['transform: rotateY(90deg);', 'transform: rotateY(0);'];\n }\n if (type === 'flipOut') {\n return ['transform: rotateY(0);', 'transform: rotateY(90deg);'];\n }\n if (type === 'slideDown') {\n return [\"transform: translateY(-\" + SLIDE_SIZES[size] + \"%);\", 'transform: none;'];\n }\n if (type === 'slideLeft') {\n return [\"transform: translateX(\" + SLIDE_SIZES[size] + \"%);\", 'transform: none;'];\n }\n if (type === 'slideRight') {\n return [\"transform: translateX(-\" + SLIDE_SIZES[size] + \"%);\", 'transform: none;'];\n }\n if (type === 'slideUp') {\n return [\"transform: translateY(\" + SLIDE_SIZES[size] + \"%);\", 'transform: none;'];\n }\n if (type === 'zoomIn') {\n return [\"transform: scale(\" + (1 - ZOOM_SIZES[size]) + \");\", 'transform: none;'];\n }\n if (type === 'zoomOut') {\n return [\"transform: scale(\" + (1 + ZOOM_SIZES[size]) + \");\", 'transform: none;'];\n }\n return [];\n};\nexports.animationBounds = animationBounds;\nvar normalizeTiming = function normalizeTiming(time, defaultTiming) {\n return typeof time === 'number' ? time / 1000.0 + \"s\" : time || defaultTiming;\n};\nexports.normalizeTiming = normalizeTiming;\nvar animationEnding = function animationEnding(type) {\n if (type === 'draw') {\n return 'linear forwards';\n }\n if (type === 'jiggle') {\n return 'alternate infinite';\n }\n if (type === 'pulse') {\n return 'alternate infinite';\n }\n if (type === 'rotateRight' || type === 'rotateLeft') {\n return 'infinite linear';\n }\n return 'forwards';\n};\nexports.animationEnding = animationEnding;\nvar animationObjectStyle = function animationObjectStyle(animation, theme, themeObj) {\n var bounds = animationBounds(animation.type, animation.size);\n var animationTheme = themeObj && themeObj.animation || theme.global.animation;\n if (bounds) {\n var animationTransition = (0, _styledComponents.css)([\"from{\", \";}to{\", \";}\"], bounds[0], bounds[1]);\n var defaultDuration = function defaultDuration() {\n return normalizeTiming(animationTheme[animation.type] ? animationTheme[animation.type].duration : animation.duration, animationTheme.duration);\n };\n return (0, _styledComponents.css)([\"\", \" \", \" \", \" \", \"\"], (0, _styledComponents.keyframes)([\"\", \"\"], animationTransition), normalizeTiming(animation.duration, defaultDuration()), normalizeTiming(animation.delay, '0s'), animationEnding(animation.type));\n }\n return '';\n};\nexports.animationObjectStyle = animationObjectStyle;","\"use strict\";\n\nexports.__esModule = true;\nexports.selectedStyle = exports.normalizeBackground = exports.getHoverIndicatorStyle = exports.backgroundStyle = exports.backgroundIsDark = exports.backgroundAndTextColors = exports.activeStyle = void 0;\nvar _styledComponents = require(\"styled-components\");\nvar _colors = require(\"./colors\");\n// evalStyle() converts a styled-components item into a string\nvar evalStyle = function evalStyle(arg, theme) {\n if (arg && Array.isArray(arg) && typeof arg[0] === 'function') {\n return arg[0]({\n theme: theme\n });\n }\n return arg;\n};\nvar normalizeBackground = function normalizeBackground(backgroundArg, theme) {\n var _theme$global$backgro;\n var background = ((_theme$global$backgro = theme.global.backgrounds) == null ? void 0 : _theme$global$backgro[backgroundArg]) || backgroundArg;\n var result = background;\n // If the background has a light or dark object, use that\n if (background) {\n if (theme.dark && background.dark && typeof background.dark !== 'boolean') {\n result = background.dark;\n } else if (!theme.dark && background.light && typeof background.light !== 'boolean') {\n result = background.light;\n }\n result = evalStyle(result, theme);\n }\n return result;\n};\nexports.normalizeBackground = normalizeBackground;\nvar normalizeBackgroundColor = function normalizeBackgroundColor(backgroundArg, theme) {\n var _theme$global$backgro2;\n var background = backgroundArg.color || backgroundArg;\n var result = (0, _colors.normalizeColor)(\n // Background color may be defined by theme.global.backgrounds or\n // theme.global.colors.\n ((_theme$global$backgro2 = theme.global.backgrounds) == null ? void 0 : _theme$global$backgro2[background]) || background, theme, backgroundArg.dark);\n return result;\n};\nvar normalizeBackgroundImage = function normalizeBackgroundImage(background, theme) {\n var result;\n if (background.image) {\n var _theme$global$backgro3, _theme$global$backgro4, _theme$global$backgro5;\n result = normalizeBackground(background.dark ? (_theme$global$backgro3 = theme.global.backgrounds) == null ? void 0 : (_theme$global$backgro4 = _theme$global$backgro3[background.image]) == null ? void 0 : _theme$global$backgro4.dark : (_theme$global$backgro5 = theme.global.backgrounds) == null ? void 0 : _theme$global$backgro5[background.image], theme) || background.image;\n } else {\n var _theme$global$backgro6;\n var normalized = normalizeBackground((_theme$global$backgro6 = theme.global.backgrounds) == null ? void 0 : _theme$global$backgro6[background], theme);\n result = typeof normalized === 'object' ? normalizeBackgroundImage(normalized, theme) : normalized;\n }\n return result;\n};\nvar rotateBackground = function rotateBackground(background, theme) {\n var backgroundImage = normalizeBackgroundImage(background, theme);\n var result = backgroundImage;\n if (backgroundImage.lastIndexOf('linear-gradient', 0) === 0) {\n var regex = /\\d{1,}deg\\b,/gm; // Contains rotation specified in degrees. Only targets 'deg' string with a trailing comma. Do not match 'deg' string for hsl, etc..\n result = backgroundImage.lastIndexOf('deg,') >= 0 ? backgroundImage.replace(regex, background.rotate + \"deg,\") : backgroundImage.replace('linear-gradient(', \"linear-gradient(\" + background.rotate + \"deg, \");\n } else {\n console.warn( // eslint-disable-next-line max-len\n \"'background.rotate' property only supports 'background.image' containing a linear-gradient string.\");\n }\n return result;\n};\nvar backgroundIsDark = function backgroundIsDark(backgroundArg, theme) {\n var background = normalizeBackground(backgroundArg, theme);\n var result;\n if (background) {\n if (typeof background === 'object') {\n var color = background.color,\n dark = background.dark,\n opacity = background.opacity;\n if (typeof dark === 'boolean') {\n result = dark;\n } else if (color && (\n // weak opacity means we keep the existing darkness\n !opacity || opacity !== 'weak')) {\n var backgroundColor = (0, _colors.normalizeColor)(background.color, theme);\n if (backgroundColor) {\n result = (0, _colors.colorIsDark)(backgroundColor);\n }\n }\n } else {\n var _color = (0, _colors.normalizeColor)(background, theme);\n if (_color) {\n result = (0, _colors.colorIsDark)(_color);\n }\n }\n }\n return result;\n};\nexports.backgroundIsDark = backgroundIsDark;\nvar darkContext = function darkContext(backgroundColor) {\n var isDark = (0, _colors.colorIsDark)(backgroundColor);\n if (isDark === undefined) return undefined;\n return isDark ? 'dark' : 'light';\n};\n\n// Returns an array of two CSS colors: [background, color]\n// Either could be undefined.\n// background could be a CSS gradient, like \"linear-gradient(...)\"\nvar backgroundAndTextColors = function backgroundAndTextColors(backgroundArg, textArg, theme) {\n if (!backgroundArg) return [undefined, textArg];\n var global = theme.global;\n var background = normalizeBackground(backgroundArg, theme);\n var text = textArg || global.colors.text;\n var backgroundColor;\n var textColor;\n if (typeof background === 'object') {\n if (background.dark === false) {\n textColor = text.light || text;\n } else if (background.dark) {\n textColor = text.dark || text;\n }\n if (background.color) {\n var color = normalizeBackgroundColor(background, theme);\n var opacity = background.opacity === true ? global.opacity.medium : global.opacity[background.opacity] || background.opacity;\n backgroundColor = (0, _colors.getRGBA)(color, opacity) || color;\n\n // If we don't have a textColor already, and we aren't too translucent,\n // set the textColor to have the best contrast against the background\n // color.\n if (!textColor && (opacity === undefined || opacity > 0.3)) {\n var shade = darkContext(backgroundColor, theme);\n textColor = (0, _colors.normalizeColor)(shade && text[shade] || text, theme);\n }\n }\n } else {\n backgroundColor = normalizeBackgroundColor(background, theme);\n var _shade = darkContext(backgroundColor, theme);\n var transparent;\n if (backgroundColor && (0, _colors.canExtractRGBArray)(backgroundColor)) {\n var colorArray = (0, _colors.getRGBArray)(backgroundColor);\n // check if the alpha value is less than 0.5\n if (colorArray[3] < 0.5) transparent = true;\n }\n if (_shade) {\n textColor = (0, _colors.normalizeColor)(text[_shade] || text, theme, _shade === 'dark');\n } else if (transparent && text) {\n textColor = (0, _colors.normalizeColor)(text, theme);\n } else {\n // If we can't determine the shade, we assume this isn't a simple color.\n // It could be a gradient. backgroundStyle() will take care of that case.\n if (backgroundColor !== 'transparent') backgroundColor = undefined;\n if (text) textColor = (0, _colors.normalizeColor)(text, theme);\n }\n }\n // if textArg is false, we don't want the textColor, used for Button hover\n if (textArg === false) textColor = undefined;\n return [backgroundColor, textColor];\n};\nexports.backgroundAndTextColors = backgroundAndTextColors;\nvar backgroundStyle = function backgroundStyle(backgroundArg, theme, textColorArg) {\n // for Grommet component, if the background isn't defined, don't set it\n if (backgroundArg === undefined) return undefined;\n var background = normalizeBackground(backgroundArg, theme);\n var _backgroundAndTextCol = backgroundAndTextColors(background, textColorArg, theme),\n backgroundColor = _backgroundAndTextCol[0],\n textColor = _backgroundAndTextCol[1];\n var backgroundImage = background.rotate ? rotateBackground(background, theme) : normalizeBackgroundImage(background, theme);\n var backgroundClipStyle = '';\n if (background.clip) {\n backgroundClipStyle = background.clip === 'text' ? \"-webkit-text-fill-color: transparent; \\n -webkit-background-clip: text; \\n background-clip: text;\" : \"background-clip: \" + background.clip + \";\";\n }\n if (typeof background === 'string' && background.lastIndexOf('url', 0) === 0) {\n return (0, _styledComponents.css)([\"background:\", \" no-repeat center center;background-size:cover;\"], background);\n }\n if (backgroundImage) {\n var backgroundStyles = \"\\n \" + (backgroundColor ? \"background-color: \" + backgroundColor + \";\" : '') + \"\\n background-image: \" + backgroundImage + \";\\n background-repeat: \" + (typeof background === 'object' && background.repeat || 'no-repeat') + \";\\n background-position: \" + (background.position || 'center center') + \";\\n background-size: \" + (background.size || 'cover') + \";\\n \" + backgroundClipStyle + \"\\n \";\n\n // allow both background color and image, in case the image doesn't fill\n // when image and opacity are used together, we need to use pseudo :before\n // to ensure that only image and background color are affected by opacity\n // but not the container contents\n return (0, _styledComponents.css)([\"\", \" \", \"\"], textColor ? \"color: \" + textColor + \";\" : '', !background.opacity ? backgroundStyles : \"position: relative;\\n z-index: 0;\\n &:before {\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n z-index: -1;\\n border-radius: inherit;\\n \" + backgroundStyles + \"\\n opacity: \" + (background.opacity === true ? theme.global.opacity.medium : theme.global.opacity[background.opacity] || background.opacity) + \";\\n }\");\n }\n if (backgroundColor) {\n return (0, _styledComponents.css)([\"background-color:\", \";\", \"\"], backgroundColor, textColor ? \"color: \" + textColor + \";\" : '');\n }\n if (typeof background === 'string')\n // This case takes care of gradients\n // or theme colors that use CSS names like 'crimson' that we don't parse\n return (0, _styledComponents.css)([\"background:\", \";\"], (0, _colors.normalizeColor)(background, theme));\n return undefined;\n};\nexports.backgroundStyle = backgroundStyle;\nvar activeStyle = (0, _styledComponents.css)([\"\", \"\"], function (props) {\n return backgroundStyle((0, _colors.normalizeColor)(props.theme.global.active.background, props.theme), props.theme, props.theme.global.active.color);\n});\nexports.activeStyle = activeStyle;\nvar selectedStyle = (0, _styledComponents.css)([\"\", \"\"], function (props) {\n return backgroundStyle((0, _colors.normalizeColor)(props.theme.global.selected.background, props.theme), props.theme, props.theme.global.selected.color);\n});\nexports.selectedStyle = selectedStyle;\nvar getHoverIndicatorStyle = function getHoverIndicatorStyle(hoverIndicator, theme) {\n var background;\n var elevation;\n if (hoverIndicator === true || hoverIndicator === 'background') {\n background = theme.global.hover.background;\n } else if (typeof hoverIndicator === 'object') {\n if (hoverIndicator.elevation || hoverIndicator.background) {\n elevation = hoverIndicator.elevation;\n background = hoverIndicator.background;\n } else background = hoverIndicator;\n } else {\n background = hoverIndicator;\n }\n return (0, _styledComponents.css)([\"\", \" \", \"\"], backgroundStyle(background, theme, theme.global.hover.color), elevation && \"box-shadow: \" + theme.global.elevation[theme.dark ? 'dark' : 'light'][elevation] + \";\");\n};\nexports.getHoverIndicatorStyle = getHoverIndicatorStyle;","\"use strict\";\n\nexports.__esModule = true;\nexports.responsiveBorderStyle = exports.borderStyle = void 0;\nvar _styledComponents = require(\"styled-components\");\nvar _colors = require(\"./colors\");\nvar _mixins = require(\"./mixins\");\nvar responsiveBorderStyle = function responsiveBorderStyle(data, theme) {\n var color = (0, _colors.normalizeColor)(data.color || 'border', theme);\n var borderSize = data.size || 'xsmall';\n var style = data.style || 'solid';\n var side = typeof data === 'string' ? data : data.side || 'all';\n var breakpoint = theme.box.responsiveBreakpoint && theme.global.breakpoints[theme.box.responsiveBreakpoint];\n if (!breakpoint.borderSize) breakpoint.borderSize = theme.global.borderSize;\n var value = breakpoint && (breakpoint.borderSize[borderSize] || borderSize) && style + \" \" + (breakpoint.borderSize[borderSize] || borderSize) + \" \" + color;\n if (!value) return undefined;\n if (side === 'top' || side === 'bottom' || side === 'left' || side === 'right') return \"border-\" + side + \": \" + value + \";\";\n if (side === 'end' || side === 'start') return \"border-inline-\" + side + \": \" + value + \";\";\n if (side === 'vertical') return \"\\n border-left: \" + value + \";\\n border-right: \" + value + \";\\n \";\n if (side === 'horizontal') return \"\\n border-top: \" + value + \";\\n border-bottom: \" + value + \";\\n \";\n if (side === 'between') return undefined; // no-op\n return \"border: \" + value + \";\";\n};\nexports.responsiveBorderStyle = responsiveBorderStyle;\nvar borderStyle = function borderStyle(borderData, responsive, theme) {\n var borderStyles = [];\n (Array.isArray(borderData) ? borderData : [borderData]).forEach(function (data) {\n var styles = [];\n var color = (0, _colors.normalizeColor)(data.color || 'border', theme);\n var borderSize = data.size || 'xsmall';\n var style = data.style || 'solid';\n var side = typeof data === 'string' ? data : data.side || 'all';\n var value = style + \" \" + (theme.global.borderSize[borderSize] || borderSize) + \" \" + color;\n var responsiveStyle = responsive && responsiveBorderStyle(data, theme);\n var breakpoint = responsiveStyle && theme.box.responsiveBreakpoint && theme.global.breakpoints[theme.box.responsiveBreakpoint];\n if (side === 'top' || side === 'bottom' || side === 'left' || side === 'right') {\n styles.push(\"border-\" + side + \": \" + value + \";\");\n if (responsiveStyle) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, responsiveStyle));\n }\n } else if (side === 'end' || side === 'start') {\n styles.push((0, _styledComponents.css)([\"border-inline-\", \":\", \";\"], side, value));\n if (responsiveStyle) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, responsiveStyle));\n }\n } else if (side === 'vertical') {\n styles.push((0, _styledComponents.css)([\"border-left:\", \";border-right:\", \";\"], value, value));\n if (responsiveStyle) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, responsiveStyle));\n }\n } else if (side === 'horizontal') {\n styles.push((0, _styledComponents.css)([\"border-top:\", \";border-bottom:\", \";\"], value, value));\n if (responsiveStyle) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, responsiveStyle));\n }\n } else if (side === 'between') {\n // no-op\n } else {\n styles.push((0, _styledComponents.css)([\"border:\", \";\"], value));\n if (responsiveStyle) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, responsiveStyle));\n }\n }\n borderStyles.push(styles);\n });\n return borderStyles;\n};\nexports.borderStyle = borderStyle;","\"use strict\";\n\nexports.__esModule = true;\nexports.normalizeColor = exports.getRGBArray = exports.getRGBA = exports.colorIsDark = exports.canExtractRGBArray = void 0;\n// Returns the specific color that should be used according to the theme.\n// If 'dark' is supplied, it takes precedence over 'theme.dark'.\n// Can return undefined.\nvar normalizeColor = function normalizeColor(color, theme, dark) {\n var colorSpec = theme.global && theme.global.colors[color] !== undefined ? theme.global.colors[color] : color;\n // If the color has a light or dark object, use that\n var result = colorSpec;\n if (colorSpec) {\n if ((dark === true || dark === undefined && theme.dark) && colorSpec.dark !== undefined) {\n result = colorSpec.dark;\n } else if ((dark === false || !theme.dark) && colorSpec.light !== undefined) {\n result = colorSpec.light;\n }\n }\n // allow one level of indirection in color names\n if (result && theme.global && theme.global.colors[result] !== undefined) {\n result = normalizeColor(result, theme, dark);\n }\n return result;\n};\nexports.normalizeColor = normalizeColor;\nvar parseHexToRGB = function parseHexToRGB(color) {\n return color.length < 7 // 7 is what's needed for '#RRGGBB'\n ? color.match(/[A-Za-z0-9]{1}/g).map(function (v) {\n return parseInt(\"\" + v + v, 16);\n }) :\n // https://stackoverflow.com/a/42429333\n color.match(/[A-Za-z0-9]{2}/g).map(function (v) {\n return parseInt(v, 16);\n });\n};\n\n// From: https://stackoverflow.com/a/9493060/8513067\n// Converts an HSL color value to RGB. Conversion formula\n// adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n// Assumes h, s, and l are contained in the set [0, 1] and\n// returns r, g, and b in the set [0, 255].\nvar hslToRGB = function hslToRGB(h, s, l) {\n var r;\n var g;\n var b;\n if (s === 0 || s === '0') {\n // achromatic\n r = l;\n g = l;\n b = l;\n } else {\n var hue2rgb = function hue2rgb(p, q, inT) {\n var t = inT;\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 0.16666667) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 0.66666667) return p + (q - p) * (0.66666667 - t) * 6;\n return p;\n };\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 0.33333333);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 0.33333333);\n }\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n};\n\n// allow for alpha: #RGB, #RGBA, #RRGGBB, or #RRGGBBAA\nvar hexExp = /^#[A-Za-z0-9]{3,4}$|^#[A-Za-z0-9]{6,8}$/;\nvar rgbExp = /^rgba?\\(\\s?([0-9]*)\\s?,\\s?([0-9]*)\\s?,\\s?([0-9]*)\\s?\\)/;\nvar rgbaExp = /^rgba?\\(\\s?([0-9]*)\\s?,\\s?([0-9]*)\\s?,\\s?([0-9]*)\\s?,\\s?([.0-9]*)\\s?\\)/;\n// e.g. hsl(240, 60%, 50%)\nvar hslExp = /^hsla?\\(\\s?([0-9]*)\\s?,\\s?([0-9]*)%?\\s?,\\s?([0-9]*)%?\\s?.*?\\)/;\nvar canExtractRGBArray = function canExtractRGBArray(color) {\n return hexExp.test(color) || rgbExp.test(color) || rgbaExp.test(color) || hslExp.test(color);\n};\nexports.canExtractRGBArray = canExtractRGBArray;\nvar getRGBArray = function getRGBArray(color) {\n if (hexExp.test(color)) {\n var _parseHexToRGB = parseHexToRGB(color),\n red = _parseHexToRGB[0],\n green = _parseHexToRGB[1],\n blue = _parseHexToRGB[2],\n alpha = _parseHexToRGB[3];\n return [red, green, blue, alpha !== undefined ? alpha / 255.0 : undefined];\n }\n var match = color.match(rgbExp);\n if (match) {\n return match.splice(1).map(function (v) {\n return parseInt(v, 10);\n });\n }\n match = color.match(rgbaExp);\n if (match) {\n return match.splice(1).map(function (v) {\n return parseFloat(v, 10);\n });\n }\n match = color.match(hslExp);\n if (match) {\n var _match$splice$map = match.splice(1).map(function (v) {\n return parseInt(v, 10);\n }),\n h = _match$splice$map[0],\n s = _match$splice$map[1],\n l = _match$splice$map[2];\n return hslToRGB(h / 360.0, s / 100.0, l / 100.0);\n }\n return color;\n};\nexports.getRGBArray = getRGBArray;\nvar colorIsDark = function colorIsDark(color) {\n if (color && canExtractRGBArray(color)) {\n var _getRGBArray = getRGBArray(color),\n red = _getRGBArray[0],\n green = _getRGBArray[1],\n blue = _getRGBArray[2],\n alpha = _getRGBArray[3];\n // if there is an alpha and it's greater than 50%, we can't really tell\n if (alpha < 0.5) return undefined;\n var brightness = (299 * red + 587 * green + 114 * blue) / 1000;\n // From: http://www.had2know.com/technology/color-contrast-calculator-web-design.html\n // Above domain is no longer registered.\n return brightness < 125;\n }\n return undefined;\n};\nexports.colorIsDark = colorIsDark;\nvar getRGBA = function getRGBA(color, opacity) {\n if (color && canExtractRGBArray(color)) {\n var _getRGBArray2 = getRGBArray(color),\n red = _getRGBArray2[0],\n green = _getRGBArray2[1],\n blue = _getRGBArray2[2],\n alpha = _getRGBArray2[3];\n var normalizedAlpha;\n if (opacity !== undefined) {\n normalizedAlpha = opacity;\n } else if (alpha !== undefined) {\n normalizedAlpha = alpha;\n } else {\n normalizedAlpha = 1;\n }\n return \"rgba(\" + red + \", \" + green + \", \" + blue + \", \" + normalizedAlpha + \")\";\n }\n return undefined;\n};\nexports.getRGBA = getRGBA;","\"use strict\";\n\nexports.__esModule = true;\nexports.setHoursWithOffset = void 0;\nvar setHoursWithOffset = function setHoursWithOffset(date) {\n var newDate = new Date(date);\n if ((date == null ? void 0 : date.indexOf('T')) === -1) {\n var offset = newDate.getTimezoneOffset();\n var hour = newDate.getHours();\n newDate.setHours(hour, offset < 0 ? -offset : offset);\n }\n return newDate;\n};\nexports.setHoursWithOffset = setHoursWithOffset;","\"use strict\";\n\nexports.__esModule = true;\nexports.translateEndAngle = exports.polarToCartesian = exports.baseUnit = exports.arcCommands = void 0;\nvar POST_DECIMAL_DIGITS = 10;\nvar baseUnit = 24;\nexports.baseUnit = baseUnit;\nvar polarToCartesian = function polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians)\n };\n};\nexports.polarToCartesian = polarToCartesian;\nvar arcCommands = function arcCommands(centerX, centerY, radius, startAngle, endAngle) {\n // handle that we can't draw a complete circle\n var normalizedEndAngle = endAngle;\n /* \n added endAngle - startAngle >= 360 \n for SemiCircle the endAngle will never be greater then startAngle \n since it starts with a startAngle of 270.\n */\n if (endAngle > startAngle && endAngle - startAngle >= 360) {\n normalizedEndAngle = startAngle + 359.99;\n }\n var start = polarToCartesian(centerX, centerY, radius, normalizedEndAngle);\n var end = polarToCartesian(centerX, centerY, radius, startAngle);\n var arcSweep = normalizedEndAngle - startAngle <= 180 ? '0' : '1';\n var d = ['M', start.x.toFixed(POST_DECIMAL_DIGITS), start.y.toFixed(POST_DECIMAL_DIGITS), 'A', radius.toFixed(POST_DECIMAL_DIGITS), radius.toFixed(POST_DECIMAL_DIGITS), 0, arcSweep, 0, end.x.toFixed(POST_DECIMAL_DIGITS), end.y.toFixed(POST_DECIMAL_DIGITS)].join(' ');\n return d;\n};\n\n/* TranslatedEngAngle will now take the value of the\nstartAngle + anglePer * value and mod by 360. This was added\nto take account the startAngle not being 0. So no matter the\nvalue it will be % 360 to get the correct angle. \n*/\nexports.arcCommands = arcCommands;\nvar translateEndAngle = function translateEndAngle(startAngle, anglePer, value) {\n return Math.max(0, startAngle + anglePer * value) % 360;\n};\nexports.translateEndAngle = translateEndAngle;","\"use strict\";\n\nexports.__esModule = true;\nexports.useSizedIcon = void 0;\nvar _react = require(\"react\");\nvar useSizedIcon = function useSizedIcon(icon, size, theme) {\n var _theme$icon;\n return icon && theme != null && (_theme$icon = theme.icon) != null && _theme$icon.matchSize && !icon.props.size ? /*#__PURE__*/(0, _react.cloneElement)(icon, {\n size: size\n }) : icon;\n};\nexports.useSizedIcon = useSizedIcon;","\"use strict\";\n\nexports.__esModule = true;\nvar _animation = require(\"./animation\");\nObject.keys(_animation).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _animation[key]) return;\n exports[key] = _animation[key];\n});\nvar _mixins = require(\"./mixins\");\nObject.keys(_mixins).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _mixins[key]) return;\n exports[key] = _mixins[key];\n});\nvar _background = require(\"./background\");\nObject.keys(_background).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _background[key]) return;\n exports[key] = _background[key];\n});\nvar _border = require(\"./border\");\nObject.keys(_border).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _border[key]) return;\n exports[key] = _border[key];\n});\nvar _colors = require(\"./colors\");\nObject.keys(_colors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _colors[key]) return;\n exports[key] = _colors[key];\n});\nvar _dates = require(\"./dates\");\nObject.keys(_dates).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _dates[key]) return;\n exports[key] = _dates[key];\n});\nvar _DOM = require(\"./DOM\");\nObject.keys(_DOM).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _DOM[key]) return;\n exports[key] = _DOM[key];\n});\nvar _graphics = require(\"./graphics\");\nObject.keys(_graphics).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _graphics[key]) return;\n exports[key] = _graphics[key];\n});\nvar _icon = require(\"./icon\");\nObject.keys(_icon).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _icon[key]) return;\n exports[key] = _icon[key];\n});\nvar _styles = require(\"./styles\");\nObject.keys(_styles).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _styles[key]) return;\n exports[key] = _styles[key];\n});\nvar _object = require(\"./object\");\nObject.keys(_object).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _object[key]) return;\n exports[key] = _object[key];\n});\nvar _pagination = require(\"./pagination\");\nObject.keys(_pagination).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _pagination[key]) return;\n exports[key] = _pagination[key];\n});\nvar _PortalContext = require(\"./PortalContext\");\nObject.keys(_PortalContext).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _PortalContext[key]) return;\n exports[key] = _PortalContext[key];\n});\nvar _refs = require(\"./refs\");\nObject.keys(_refs).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _refs[key]) return;\n exports[key] = _refs[key];\n});\nvar _responsive = require(\"./responsive\");\nObject.keys(_responsive).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _responsive[key]) return;\n exports[key] = _responsive[key];\n});\nvar _useKeyboard = require(\"./use-keyboard\");\nObject.keys(_useKeyboard).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _useKeyboard[key]) return;\n exports[key] = _useKeyboard[key];\n});","\"use strict\";\n\nexports.__esModule = true;\nexports.parseMetricToNum = exports.getAvailableAtBadge = exports.fontSize = exports.findAllByType = exports.edgeToNum = exports.breakpointStyle = void 0;\nvar _styledComponents = require(\"styled-components\");\nvar parseMetricToNum = function parseMetricToNum(metric) {\n if (typeof metric === 'number') return metric;\n if (metric.match(/\\s/) && process.env.NODE_ENV !== 'production') {\n console.warn(\"Invalid single measurement value: \\\"\" + metric + \"\\\"\");\n }\n return parseFloat(metric.match(/\\d+(\\.\\d+)?/), 10);\n};\nexports.parseMetricToNum = parseMetricToNum;\nvar edgeToNum = function edgeToNum(size, theme) {\n return size ? parseMetricToNum(theme.global.edgeSize[size] || size) : 0;\n};\nexports.edgeToNum = edgeToNum;\nvar fontSize = function fontSize(size, lineHeight) {\n return (0, _styledComponents.css)([\"font-size:\", \";line-height:\", \";\"], function (props) {\n return parseMetricToNum(size) / parseMetricToNum(props.theme.global.font.size) * 1 + \"rem\";\n }, function (props) {\n return lineHeight || Math.ceil(parseMetricToNum(size) / parseMetricToNum(props.theme.global.lineHeight)) * (parseMetricToNum(props.theme.global.lineHeight) / parseMetricToNum(size)) + \"px\";\n });\n};\nexports.fontSize = fontSize;\nvar breakpointStyle = function breakpointStyle(breakpoint, content) {\n return (0, _styledComponents.css)([\"@media only screen \", \"{\", \";}\"], breakpoint.value && \"and (max-width: \" + breakpoint.value + \"px)\", content);\n};\nexports.breakpointStyle = breakpointStyle;\nvar findAllByType = function findAllByType(component, type) {\n var matches = [];\n if (component.type === type) {\n matches.push(component);\n }\n if (component.children) {\n component.children.forEach(function (child) {\n matches = matches.concat(findAllByType(child, type));\n });\n }\n return matches;\n};\nexports.findAllByType = findAllByType;\nvar getAvailableAtBadge = function getAvailableAtBadge(availableAt, componentType) {\n return [{\n url: \"https://storybook.grommet.io/?selectedKind=\" + componentType + \"-\" + availableAt + \"&full=0&stories=1&panelRight=0\",\n badge: 'https://cdn-images-1.medium.com/fit/c/120/120/1*TD1P0HtIH9zF0UEH28zYtw.png',\n label: 'Storybook'\n }, {\n url: \"https://codesandbox.io/s/github/grommet/grommet-sandbox?initialpath=/\" + availableAt.toLowerCase() + \"&module=%2Fsrc%2F\" + availableAt + \".js\",\n badge: 'https://codesandbox.io/static/img/play-codesandbox.svg',\n label: 'CodeSandbox'\n }];\n};\nexports.getAvailableAtBadge = getAvailableAtBadge;","\"use strict\";\n\nexports.__esModule = true;\nexports.removeUndefined = exports.isObject = exports.deepMerge = exports.deepFreeze = void 0;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar isObject = function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n};\nexports.isObject = isObject;\nvar deepFreeze = function deepFreeze(obj) {\n Object.keys(obj).forEach(function (key) {\n return key && isObject(obj[key]) && Object.freeze(obj[key]);\n });\n return Object.freeze(obj);\n};\nexports.deepFreeze = deepFreeze;\nvar deepMerge = function deepMerge(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n if (!sources.length) {\n return target;\n }\n // making sure to not change target (immutable)\n var output = _extends({}, target);\n sources.forEach(function (source) {\n if (isObject(source)) {\n Object.keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!output[key]) {\n output[key] = _extends({}, source[key]);\n } else {\n output[key] = deepMerge(output[key], source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n }\n });\n return output;\n};\nexports.deepMerge = deepMerge;\nvar removeUndefined = function removeUndefined(obj) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (obj[key] !== undefined) {\n result[key] = obj[key];\n }\n });\n return result;\n};\nexports.removeUndefined = removeUndefined;","\"use strict\";\n\nexports.__esModule = true;\nexports.usePagination = exports.normalizeShow = void 0;\nvar _react = require(\"react\");\nvar _excluded = [\"data\", \"page\", \"step\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nvar normalizeShow = function normalizeShow(showProp, step) {\n var page;\n // by default, show refers to the index of an item,\n // but if using pagination, show can take the form of { page: # },\n // where page refers to the page # to show\n if (typeof showProp === 'number') page = Math.ceil((showProp + 1) / step);else if (typeof showProp === 'object' && 'page' in showProp) page = showProp.page;\n return page;\n};\nexports.normalizeShow = normalizeShow;\nvar usePagination = function usePagination(_ref) {\n var data = _ref.data,\n page = _ref.page,\n step = _ref.step,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var totalPages = data ? Math.ceil(data.length / step) : 0;\n var _useState = (0, _react.useState)(Math.min(page, totalPages) || 1),\n activePage = _useState[0],\n setActivePage = _useState[1];\n\n // ensure activePage is never lower than 1 to ensure that itemsBeginIndex\n // and itemsEndIndex aren't negative\n if (activePage > totalPages && (data == null ? void 0 : data.length) > 0) setActivePage(Math.max(totalPages, 1));\n var itemsBeginIndex = step * (activePage - 1);\n var itemsEndIndex = itemsBeginIndex + step;\n var currentItems = (0, _react.useMemo)(function () {\n if (Array.isArray(data)) return data.slice(itemsBeginIndex, itemsEndIndex);\n return [];\n }, [data, itemsBeginIndex, itemsEndIndex]);\n var paginationProps = _extends({\n numberItems: data && data.length,\n onChange: function onChange(event) {\n return setActivePage(event.page);\n },\n page: activePage,\n step: step\n }, rest);\n return [currentItems, paginationProps];\n};\nexports.usePagination = usePagination;","\"use strict\";\n\nexports.__esModule = true;\nexports.useForwardedRef = void 0;\nvar _react = require(\"react\");\nvar useForwardedRef = function useForwardedRef(ref) {\n var innerRef = (0, _react.useRef)(null);\n (0, _react.useImperativeHandle)(ref, function () {\n return innerRef.current;\n });\n return innerRef;\n};\nexports.useForwardedRef = useForwardedRef;","\"use strict\";\n\nexports.__esModule = true;\nexports.getDeviceBreakpoint = exports.getBreakpointStyle = exports.getBreakpoint = void 0;\nvar getBreakpoint = function getBreakpoint(viewportWidth, theme) {\n var sortedBreakpoints = Object.keys(theme.global.breakpoints).sort(function (a, b) {\n var first = theme.global.breakpoints[a];\n var second = theme.global.breakpoints[b];\n if (!first) return 1;\n if (!second) return -1;\n if (!first.value) return 1;\n if (!second.value) return -1;\n return first.value - second.value;\n });\n\n // the last breakpoint on the sorted array should have\n // no windowWidth boundaries\n var lastBreakpoint = sortedBreakpoints[sortedBreakpoints.length - 1];\n var result = sortedBreakpoints.find(function (name) {\n var breakpoint = theme.global.breakpoints[name];\n return !breakpoint.value || breakpoint.value >= viewportWidth ? name : false;\n });\n return result || lastBreakpoint;\n};\nexports.getBreakpoint = getBreakpoint;\nvar getDeviceBreakpoint = function getDeviceBreakpoint(type, theme) {\n return theme.global.deviceBreakpoints[type];\n};\nexports.getDeviceBreakpoint = getDeviceBreakpoint;\nvar getBreakpointStyle = function getBreakpointStyle(theme, breakpointSize) {\n var breakpoint = breakpointSize && theme.global.breakpoints[breakpointSize] || {};\n if (!breakpoint.edgeSize) breakpoint.edgeSize = theme.global.edgeSize;\n if (!breakpoint.borderSize) breakpoint.borderSize = theme.global.borderSize;\n if (!breakpoint.size) breakpoint.size = theme.global.size;\n return breakpoint;\n};\nexports.getBreakpointStyle = getBreakpointStyle;","\"use strict\";\n\nexports.__esModule = true;\nexports.widthStyle = exports.unfocusStyle = exports.textAlignStyle = exports.sizeStyle = exports.roundStyle = exports.plainInputStyle = exports.overflowStyle = exports.kindPartStyles = exports.inputStyle = exports.inputPadForIcon = exports.heightStyle = exports.getInputPadBySide = exports.genericStyles = exports.focusStyle = exports.fillStyle = exports.edgeStyle = exports.disabledStyle = exports.controlBorderStyle = exports.baseStyle = exports.alignStyle = exports.alignContentStyle = void 0;\nvar _styledComponents = require(\"styled-components\");\nvar _background = require(\"./background\");\nvar _colors = require(\"./colors\");\nvar _responsive = require(\"./responsive\");\nvar _mixins = require(\"./mixins\");\nvar baseStyle = (0, _styledComponents.css)([\"font-family:\", \";font-size:\", \";line-height:\", \";font-weight:\", \";\", \" \", \" box-sizing:border-box;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;\"], function (props) {\n return props.theme.global.font.family;\n}, function (props) {\n return props.theme.global.font.size;\n}, function (props) {\n return props.theme.global.font.height;\n}, function (props) {\n return props.theme.global.font.weight;\n}, function (props) {\n return props.theme.global.font.variant && \"\\n font-variant:\" + props.theme.global.font.variant + \";\\n \";\n}, function (props) {\n return !props.plain && (0, _background.backgroundStyle)(props.theme.baseBackground, props.theme);\n});\nexports.baseStyle = baseStyle;\nvar controlBorderStyle = (0, _styledComponents.css)([\"border:\", \" solid \", \";border-radius:\", \";\"], function (props) {\n return props.theme.global.control.border.width;\n}, function (props) {\n return (0, _colors.normalizeColor)(props.theme.global.control.border.color || 'border', props.theme);\n}, function (props) {\n return props.theme.global.control.border.radius;\n});\nexports.controlBorderStyle = controlBorderStyle;\nvar edgeStyle = function edgeStyle(kind, data, responsive, responsiveBreakpoint, theme) {\n var breakpoint = responsiveBreakpoint && theme.global.breakpoints[responsiveBreakpoint];\n if (typeof data === 'string') {\n return (0, _styledComponents.css)([\"\", \":\", \";\", \";\"], kind, theme.global.edgeSize[data] || data, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \": \" + (breakpoint.edgeSize[data] || data) + \";\\n \") : '');\n }\n var result = [];\n var horizontal = data.horizontal,\n vertical = data.vertical,\n top = data.top,\n bottom = data.bottom,\n left = data.left,\n right = data.right;\n\n // if horizontal and vertical are equal OR all sides are equal,\n // we can just return a single css value such as padding: 12px\n // instead of breaking out by sides.\n var horizontalVerticalEqual = horizontal && vertical && horizontal === vertical;\n var allSidesEqual = top && bottom && left && right && top === bottom === left === right;\n if (horizontalVerticalEqual || allSidesEqual) {\n // since the values will be the same between vertical & horizontal OR\n // left, right, top, & bottom, we can just choose one\n var value = horizontalVerticalEqual ? horizontal : top;\n return (0, _styledComponents.css)([\"\", \":\", \";\", \";\"], kind, theme.global.edgeSize[value] || value, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \": \" + (breakpoint.edgeSize[value] || value) + \";\\n \") : '');\n }\n if (horizontal) {\n result.push((0, _styledComponents.css)([\"\", \"-left:\", \";\", \"-right:\", \";\", \";\"], kind, theme.global.edgeSize[horizontal] || horizontal, kind, theme.global.edgeSize[horizontal] || horizontal, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \"-left: \" + (breakpoint.edgeSize[horizontal] || horizontal) + \";\\n \" + kind + \"-right: \" + (breakpoint.edgeSize[horizontal] || horizontal) + \";\\n \") : ''));\n }\n if (vertical) {\n result.push((0, _styledComponents.css)([\"\", \"-top:\", \";\", \"-bottom:\", \";\", \";\"], kind, theme.global.edgeSize[vertical] || vertical, kind, theme.global.edgeSize[vertical] || vertical, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \"-top: \" + (breakpoint.edgeSize[vertical] || vertical) + \";\\n \" + kind + \"-bottom: \" + (breakpoint.edgeSize[vertical] || vertical) + \";\\n \") : ''));\n }\n if (top) {\n result.push((0, _styledComponents.css)([\"\", \"-top:\", \";\", \";\"], kind, theme.global.edgeSize[top] || top, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \"-top: \" + (breakpoint.edgeSize[top] || top) + \";\\n \") : ''));\n }\n if (bottom) {\n result.push((0, _styledComponents.css)([\"\", \"-bottom:\", \";\", \";\"], kind, theme.global.edgeSize[bottom] || bottom, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \"-bottom: \" + (breakpoint.edgeSize[bottom] || bottom) + \";\\n \") : ''));\n }\n if (left) {\n result.push((0, _styledComponents.css)([\"\", \"-left:\", \";\", \";\"], kind, theme.global.edgeSize[left] || left, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \"-left: \" + (breakpoint.edgeSize[left] || left) + \";\\n \") : ''));\n }\n if (right) {\n result.push((0, _styledComponents.css)([\"\", \"-right:\", \";\", \";\"], kind, theme.global.edgeSize[right] || right, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \"-right: \" + (breakpoint.edgeSize[right] || right) + \";\\n \") : ''));\n }\n if (data.start) {\n result.push((0, _styledComponents.css)([\"\", \"-inline-start:\", \";\", \";\"], kind, theme.global.edgeSize[data.start] || data.start, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \"-inline-start: \" + (breakpoint.edgeSize[data.start] || data.start) + \";\\n \") : ''));\n }\n if (data.end) {\n result.push((0, _styledComponents.css)([\"\", \"-inline-end:\", \";\", \";\"], kind, theme.global.edgeSize[data.end] || data.end, responsive && breakpoint ? (0, _mixins.breakpointStyle)(breakpoint, \"\\n \" + kind + \"-inline-end: \" + (breakpoint.edgeSize[data.end] || data.end) + \";\\n \") : ''));\n }\n return result;\n};\nexports.edgeStyle = edgeStyle;\nvar fillStyle = function fillStyle(fillProp) {\n if (fillProp === 'horizontal') {\n return 'width: 100%;';\n }\n if (fillProp === 'vertical') {\n return 'height: 100%;';\n }\n if (fillProp) {\n return \"\\n width: 100%;\\n height: 100%;\\n \";\n }\n return undefined;\n};\nexports.fillStyle = fillStyle;\nvar focusStyles = function focusStyles(props, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n forceOutline = _ref.forceOutline,\n justBorder = _ref.justBorder;\n var focus = props.theme.global.focus;\n if (!focus || forceOutline && !focus.outline) {\n var color = (0, _colors.normalizeColor)('focus', props.theme);\n if (color) return \"outline: 2px solid \" + color + \";\";\n return ''; // native\n }\n\n if (focus.outline && (!focus.border || !justBorder)) {\n if (typeof focus.outline === 'object') {\n var _color = (0, _colors.normalizeColor)(focus.outline.color || 'focus', props.theme);\n var size = focus.outline.size || '2px';\n return \"\\n outline-offset: 0px;\\n outline: \" + size + \" solid \" + _color + \";\\n \";\n }\n return \"outline: \" + focus.outline + \";\";\n }\n if (focus.shadow && (!focus.border || !justBorder)) {\n if (typeof focus.shadow === 'object') {\n var _color2 = (0, _colors.normalizeColor)(\n // If there is a focus.border.color, use that for shadow too.\n // This is for backwards compatibility in v2.\n focus.border && focus.border.color || focus.shadow.color || 'focus', props.theme);\n var _size = focus.shadow.size || '2px'; // backwards compatible default\n return \"\\n outline: none;\\n box-shadow: 0 0 \" + _size + \" \" + _size + \" \" + _color2 + \";\\n \";\n }\n return \"\\n outline: none;\\n box-shadow: \" + focus.shadow + \";\\n \";\n }\n if (focus.border) {\n var _color3 = (0, _colors.normalizeColor)(focus.border.color || 'focus', props.theme);\n return \"\\n outline: none;\\n border-color: \" + _color3 + \";\\n \";\n }\n return ''; // defensive\n};\n\nvar unfocusStyles = function unfocusStyles(props, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n forceOutline = _ref2.forceOutline,\n justBorder = _ref2.justBorder;\n var focus = props.theme.global.focus;\n if (!focus || forceOutline && !focus.outline) {\n var color = (0, _colors.normalizeColor)('focus', props.theme);\n if (color) return \"outline: none;\";\n return ''; // native\n }\n\n if (focus.outline && (!focus.border || !justBorder)) {\n if (typeof focus.outline === 'object') {\n return \"\\n outline-offset: 0px;\\n outline: none;\\n \";\n }\n return \"outline: none;\";\n }\n if (focus.shadow && (!focus.border || !justBorder)) {\n if (typeof focus.shadow === 'object') {\n return \"\\n outline: none;\\n box-shadow: none;\\n \";\n }\n return \"\\n outline: none;\\n box-shadow: none;\\n \";\n }\n if (focus.border) {\n return \"\\n outline: none;\\n border-color: none;\\n \";\n }\n return ''; // defensive\n};\n\n// focus also supports clickable elements inside svg\nvar focusStyle = function focusStyle(_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n forceOutline = _ref3.forceOutline,\n justBorder = _ref3.justBorder,\n skipSvgChildren = _ref3.skipSvgChildren;\n return (0, _styledComponents.css)([\"\", \" \", \" \", \"\"], function (props) {\n return !skipSvgChildren && \"\\n > circle,\\n > ellipse,\\n > line,\\n > path,\\n > polygon,\\n > polyline,\\n > rect {\\n \" + focusStyles(props) + \"\\n }\";\n }, function (props) {\n return focusStyles(props, {\n forceOutline: forceOutline,\n justBorder: justBorder\n });\n }, !forceOutline && \"\\n ::-moz-focus-inner {\\n border: 0;\\n }\\n \");\n};\n\n// This is placed next to focusStyle for easy maintainability\n// of code since changes to focusStyle should be reflected in\n// unfocusStyle as well.\n// this function can be used to reset focus styles which is\n// applicable when turning the focus ring off when using the mouse\n// see https://nelo.is/writing/styling-better-focus-states/\nexports.focusStyle = focusStyle;\nvar unfocusStyle = function unfocusStyle(_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n forceOutline = _ref4.forceOutline,\n justBorder = _ref4.justBorder,\n skipSvgChildren = _ref4.skipSvgChildren;\n return (0, _styledComponents.css)([\"\", \" \", \" \", \"\"], function (props) {\n return !skipSvgChildren && \"\\n > circle,\\n > ellipse,\\n > line,\\n > path,\\n > polygon,\\n > polyline,\\n > rect {\\n \" + unfocusStyles(props) + \"\\n }\";\n }, function (props) {\n return unfocusStyles(props, {\n forceOutline: forceOutline,\n justBorder: justBorder\n });\n }, !forceOutline && \"\\n ::-moz-focus-inner {\\n border: 0;\\n }\\n \");\n};\n\n// For backwards compatibility we need to add back the control border width.\n// Based on how grommet was functioning prior to https://github.com/grommet/grommet/pull/3939,\n// the padding was subtracting the border width from the theme value, but the\n// placeholder was not. Because we're now placing the subtraction into the\n// theme itself, we have to add back in the border width here.\n// This is used for placeholder/icon in TextInput and MaskedInput.\nexports.unfocusStyle = unfocusStyle;\nvar adjustPad = function adjustPad(props, value) {\n return (0, _mixins.parseMetricToNum)((props.theme.global.edgeSize[value] || value) + \"px\") + (0, _mixins.parseMetricToNum)(props.theme.global.control.border.width + \"px\") + \"px\";\n};\nvar getInputPadBySide = function getInputPadBySide(props, side) {\n if (typeof props.theme.global.input.padding !== 'object') {\n var _adjustedPad = adjustPad(props, props.theme.global.input.padding);\n return _adjustedPad;\n }\n var orientation;\n if (side === 'left' || side === 'right') orientation = 'horizontal';else if (side === 'top' || side === 'bottom') orientation = 'vertical';else orientation = undefined;\n\n // if individual side isn't available, fallback to the\n // orientation if possible\n var pad = props.theme.global.input.padding[side] || props.theme.global.input.padding[orientation];\n var adjustedPad = adjustPad(props, pad);\n return adjustedPad;\n};\nexports.getInputPadBySide = getInputPadBySide;\nvar placeholderColor = (0, _styledComponents.css)([\"color:\", \";\"], function (props) {\n return (0, _colors.normalizeColor)(props.theme.global.colors.placeholder, props.theme);\n});\nvar placeholderStyle = (0, _styledComponents.css)([\"&::-webkit-input-placeholder{\", \";}&::-moz-placeholder{\", \";}&:-ms-input-placeholder{\", \";}\"], placeholderColor, placeholderColor, placeholderColor);\nvar inputSizeStyle = function inputSizeStyle(props) {\n var data = props.theme.text[props.size];\n if (!data) {\n return (0, _styledComponents.css)([\"font-size:\", \";\"], props.size);\n }\n return (0, _styledComponents.css)([\"font-size:\", \";line-height:\", \";\"], data.size, data.height);\n};\nvar inputStyle = (0, _styledComponents.css)([\"box-sizing:border-box;\", \" font-family:inherit;border:none;-webkit-appearance:none;background:transparent;color:inherit;width:100%;\", \" \", \" \", \" margin:0;\", \" &:focus{\", \";}\", \" \", \"::-webkit-search-decoration{-webkit-appearance:none;}&::-moz-focus-inner{border:none;outline:none;}&:-moz-placeholder,&::-moz-placeholder{opacity:1;}\", \"\"], function (props) {\n var _props$theme$text$pro;\n return \"font-size: \" + (props.theme.global.input.font.size ? ((_props$theme$text$pro = props.theme.text[props.theme.global.input.font.size]) == null ? void 0 : _props$theme$text$pro.size) || props.theme.global.input.font.size : 'inherit') + \";\";\n}, function (props) {\n return props.theme.global.input.font.height && \"line-height: \" + props.theme.global.input.font.height + \";\";\n}, function (props) {\n return props.theme.global.input.padding && typeof props.theme.global.input.padding !== 'object' ? // On a breaking change release, this condition could be removed and\n // just the edgeStyle could remain. Currently, this is needed for\n // backwards compatibility since we are placing the calculation in\n // base.js\n \"padding: \" + ((0, _mixins.parseMetricToNum)(props.theme.global.edgeSize[props.theme.global.input.padding] || props.theme.global.input.padding) - (0, _mixins.parseMetricToNum)(props.theme.global.control.border.width)) + \"px;\" : edgeStyle('padding', props.theme.global.input.padding, props.responsive, props.theme.box.responsiveBreakpoint, props.theme);\n}, function (props) {\n return (\n // for backwards compatibility, check if props.theme.global.input.weight\n (props.theme.global.input.weight || props.theme.global.input.font.weight) && (0, _styledComponents.css)([\"font-weight:\", \";\"], props.theme.global.input.weight || props.theme.global.input.font.weight)\n );\n}, function (props) {\n return props.size && inputSizeStyle(props);\n}, function (props) {\n return (!props.plain || props.focusIndicator) && focusStyle();\n}, controlBorderStyle, placeholderStyle, function (props) {\n return props.theme.global.input.extend;\n});\n\n// Apply padding on input to create space for icon.\n// When theme.icon.matchSize is true, the space for the\n// icon should equal the icon dimension + 12px (edgeSize.medium)\n// to ensure there is reasonable space between the icon and value or placeholder\nexports.inputStyle = inputStyle;\nvar inputPadForIcon = (0, _styledComponents.css)([\"\", \"\"], function (props) {\n var _props$theme, _props$theme$icon, _props$theme$icon2, _props$theme$icon2$si;\n var pad = (_props$theme = props.theme) != null && (_props$theme$icon = _props$theme.icon) != null && _props$theme$icon.matchSize ? (0, _mixins.parseMetricToNum)((_props$theme$icon2 = props.theme.icon) == null ? void 0 : (_props$theme$icon2$si = _props$theme$icon2.size) == null ? void 0 : _props$theme$icon2$si[(props == null ? void 0 : props.size) || 'medium']) + (0, _mixins.parseMetricToNum)(props.theme.global.edgeSize.medium) + \"px\" : props.theme.global.edgeSize.large;\n return props.reverse ? \"padding-right: \" + pad + \";\" : \"padding-left: \" + pad + \";\";\n});\nexports.inputPadForIcon = inputPadForIcon;\nvar overflowStyle = function overflowStyle(overflowProp) {\n if (typeof overflowProp === 'string') {\n return (0, _styledComponents.css)([\"overflow:\", \";\"], overflowProp);\n }\n return (0, _styledComponents.css)([\"\", \" \", \";\"], overflowProp.horizontal && \"overflow-x: \" + overflowProp.horizontal + \";\", overflowProp.vertical && \"overflow-y: \" + overflowProp.vertical + \";\");\n};\nexports.overflowStyle = overflowStyle;\nvar ALIGN_SELF_MAP = {\n center: 'center',\n end: 'flex-end',\n start: 'flex-start',\n stretch: 'stretch',\n baseline: 'baseline'\n};\nvar genericStyles = (0, _styledComponents.css)([\"\", \" \", \" \", \"\"], function (props) {\n return props.alignSelf && \"align-self: \" + ALIGN_SELF_MAP[props.alignSelf] + \";\";\n}, function (props) {\n return props.gridArea && \"grid-area: \" + props.gridArea + \";\";\n}, function (props) {\n return props.margin && props.theme.global && edgeStyle('margin', props.margin, props.responsive, props.theme.global.edgeSize.responsiveBreakpoint, props.theme);\n});\nexports.genericStyles = genericStyles;\nvar disabledStyle = function disabledStyle(componentStyle) {\n return (0, _styledComponents.css)([\"opacity:\", \";cursor:default;\"], function (props) {\n return componentStyle || props.theme.global.control.disabled.opacity;\n });\n};\nexports.disabledStyle = disabledStyle;\nvar sizeStyle = function sizeStyle(name, value, theme) {\n return (0, _styledComponents.css)([\"\", \":\", \";\"], name, theme.global.size[value] || value);\n};\nexports.sizeStyle = sizeStyle;\nvar plainInputStyle = (0, _styledComponents.css)([\"outline:none;border:none;\"]);\n\n// CSS for this sub-object in the theme\nexports.plainInputStyle = plainInputStyle;\nvar kindPartStyles = function kindPartStyles(obj, theme, colorValue) {\n var styles = [];\n if (obj.padding || obj.pad) {\n // button uses `padding` but other components use Grommet `pad`\n var pad = obj.padding || obj.pad;\n if (pad.vertical || pad.horizontal) styles.push(\"padding: \" + (theme.global.edgeSize[pad.vertical] || pad.vertical || 0) + \" \" + (theme.global.edgeSize[pad.horizontal] || pad.horizontal || 0) + \";\");else styles.push(\"padding: \" + (theme.global.edgeSize[pad] || pad || 0) + \";\");\n }\n if (obj.background) styles.push((0, _background.backgroundStyle)(colorValue || obj.background, theme, obj.color || (Object.prototype.hasOwnProperty.call(obj, 'color') && obj.color === undefined ? false : undefined)));else if (obj.color) styles.push(\"color: \" + (0, _colors.normalizeColor)(obj.color, theme) + \";\");\n if (obj.border) {\n if (obj.border.width) styles.push((0, _styledComponents.css)([\"border-style:solid;border-width:\", \";\"], obj.border.width));\n if (obj.border.color) styles.push((0, _styledComponents.css)([\"border-color:\", \";\"], (0, _colors.normalizeColor)(!obj.background && colorValue || obj.border.color || 'border', theme)));\n if (obj.border.radius) styles.push((0, _styledComponents.css)([\"border-radius:\", \";\"], obj.border.radius));\n } else if (obj.border === false) styles.push('border: none;');\n if (colorValue && !obj.border && !obj.background) styles.push(\"color: \" + (0, _colors.normalizeColor)(colorValue, theme) + \";\");\n if (obj.font) {\n if (obj.font.size) {\n styles.push(\"font-size: \" + (theme.text[obj.font.size].size || obj.font.size) + \";\");\n }\n if (obj.font.height) {\n styles.push(\"line-height: \" + obj.font.height + \";\");\n }\n if (obj.font.weight) {\n styles.push(\"font-weight: \" + obj.font.weight + \";\");\n }\n }\n if (obj.opacity) {\n var opacity = obj.opacity === true ? theme.global.opacity.medium : theme.global.opacity[obj.opacity] || obj.opacity;\n styles.push(\"opacity: \" + opacity + \";\");\n }\n if (obj.extend) styles.push(obj.extend);\n return styles;\n};\nexports.kindPartStyles = kindPartStyles;\nvar ROUND_MAP = {\n full: '100%'\n};\nvar roundStyle = function roundStyle(data, responsive, theme) {\n var breakpoint = (0, _responsive.getBreakpointStyle)(theme, theme.box.responsiveBreakpoint);\n var styles = [];\n if (typeof data === 'object') {\n var size = ROUND_MAP[data.size] || theme.global.edgeSize[data.size || 'medium'] || data.size;\n var responsiveSize = responsive && breakpoint && breakpoint.edgeSize[data.size] && (breakpoint.edgeSize[data.size] || data.size);\n if (data.corner === 'top') {\n styles.push((0, _styledComponents.css)([\"border-top-left-radius:\", \";border-top-right-radius:\", \";\"], size, size));\n if (responsiveSize) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, \"\\n border-top-left-radius: \" + responsiveSize + \";\\n border-top-right-radius: \" + responsiveSize + \";\\n \"));\n }\n } else if (data.corner === 'bottom') {\n styles.push((0, _styledComponents.css)([\"border-bottom-left-radius:\", \";border-bottom-right-radius:\", \";\"], size, size));\n if (responsiveSize) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, \"\\n border-bottom-left-radius: \" + responsiveSize + \";\\n border-bottom-right-radius: \" + responsiveSize + \";\\n \"));\n }\n } else if (data.corner === 'left') {\n styles.push((0, _styledComponents.css)([\"border-top-left-radius:\", \";border-bottom-left-radius:\", \";\"], size, size));\n if (responsiveSize) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, \"\\n border-top-left-radius: \" + responsiveSize + \";\\n border-bottom-left-radius: \" + responsiveSize + \";\\n \"));\n }\n } else if (data.corner === 'right') {\n styles.push((0, _styledComponents.css)([\"border-top-right-radius:\", \";border-bottom-right-radius:\", \";\"], size, size));\n if (responsiveSize) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, \"\\n border-top-right-radius: \" + responsiveSize + \";\\n border-bottom-right-radius: \" + responsiveSize + \";\\n \"));\n }\n } else if (data.corner) {\n styles.push((0, _styledComponents.css)([\"border-\", \"-radius:\", \";\"], data.corner, size));\n if (responsiveSize) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, \"\\n border-\" + data.corner + \"-radius: \" + responsiveSize + \";\\n \"));\n }\n } else {\n styles.push((0, _styledComponents.css)([\"border-radius:\", \";\"], size));\n if (responsiveSize) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, \"\\n border-radius: \" + responsiveSize + \";\\n \"));\n }\n }\n } else {\n var _size2 = data === true ? 'medium' : data;\n styles.push((0, _styledComponents.css)([\"border-radius:\", \";\"], ROUND_MAP[_size2] || theme.global.edgeSize[_size2] || _size2));\n var _responsiveSize = breakpoint && breakpoint.edgeSize[_size2];\n if (_responsiveSize) {\n styles.push((0, _mixins.breakpointStyle)(breakpoint, \"\\n border-radius: \" + _responsiveSize + \";\\n \"));\n }\n }\n return styles;\n};\nexports.roundStyle = roundStyle;\nvar TEXT_ALIGN_MAP = {\n center: 'center',\n end: 'right',\n justify: 'justify',\n start: 'left'\n};\nvar textAlignStyle = (0, _styledComponents.css)([\"text-align:\", \";\"], function (props) {\n return TEXT_ALIGN_MAP[props.textAlign];\n});\nexports.textAlignStyle = textAlignStyle;\nvar ALIGN_ITEMS_MAP = {\n baseline: 'baseline',\n center: 'center',\n end: 'flex-end',\n start: 'flex-start',\n stretch: 'stretch'\n};\nvar alignStyle = (0, _styledComponents.css)([\"align-items:\", \";\"], function (props) {\n var _ALIGN_ITEMS_MAP$prop;\n return (_ALIGN_ITEMS_MAP$prop = ALIGN_ITEMS_MAP[props.align]) != null ? _ALIGN_ITEMS_MAP$prop : props.align;\n});\nexports.alignStyle = alignStyle;\nvar ALIGN_CONTENT_MAP = {\n around: 'space-around',\n baseline: 'baseline',\n between: 'space-between',\n center: 'center',\n evenly: 'space-evenly',\n end: 'flex-end',\n start: 'flex-start',\n stretch: 'stretch'\n};\nvar alignContentStyle = (0, _styledComponents.css)([\"align-content:\", \";\"], function (props) {\n var _ALIGN_CONTENT_MAP$pr;\n return (_ALIGN_CONTENT_MAP$pr = ALIGN_CONTENT_MAP[props.alignContent]) != null ? _ALIGN_CONTENT_MAP$pr : props.alignContent;\n});\nexports.alignContentStyle = alignContentStyle;\nvar getSize = function getSize(theme, size) {\n return theme.global.size[size] || size;\n};\nvar widthObjectStyle = function widthObjectStyle(width, theme) {\n var result = [];\n if (width.max) result.push((0, _styledComponents.css)([\"max-width:\", \";\"], getSize(theme, width.max)));\n if (width.min) result.push((0, _styledComponents.css)([\"min-width:\", \";\"], getSize(theme, width.min)));\n if (width.width) result.push((0, _styledComponents.css)([\"width:\", \";\"], getSize(theme, width.width)));\n return result;\n};\nvar widthStringStyle = function widthStringStyle(width, theme) {\n return (0, _styledComponents.css)([\"width:\", \";\"], getSize(theme, width));\n};\nvar widthStyle = function widthStyle(width, theme) {\n return typeof width === 'object' ? widthObjectStyle(width, theme) : widthStringStyle(width, theme);\n};\nexports.widthStyle = widthStyle;\nvar heightObjectStyle = function heightObjectStyle(height, theme) {\n var result = [];\n if (height.max) result.push((0, _styledComponents.css)([\"max-height:\", \";\"], getSize(theme, height.max)));\n if (height.min) result.push((0, _styledComponents.css)([\"min-height:\", \";\"], getSize(theme, height.min)));\n // backwards compatibile\n if (height.width) result.push((0, _styledComponents.css)([\"height:\", \";\"], getSize(theme, height.height)));\n if (height.height) result.push((0, _styledComponents.css)([\"height:\", \";\"], getSize(theme, height.height)));\n return result;\n};\nvar heightStringStyle = function heightStringStyle(height, theme) {\n return (0, _styledComponents.css)([\"height:\", \";\"], getSize(theme, height));\n};\nvar heightStyle = function heightStyle(height, theme) {\n return typeof height === 'object' ? heightObjectStyle(height, theme) : heightStringStyle(height, theme);\n};\nexports.heightStyle = heightStyle;","\"use strict\";\n\nexports.__esModule = true;\nexports.useKeyboard = exports[\"default\"] = void 0;\nvar _react = require(\"react\");\nvar useKeyboard = function useKeyboard() {\n var _useState = (0, _react.useState)(),\n usingKeyboard = _useState[0],\n setUsingKeyboard = _useState[1];\n (0, _react.useEffect)(function () {\n var onMouseDown = function onMouseDown() {\n return setUsingKeyboard(false);\n };\n var onKeyDown = function onKeyDown() {\n return setUsingKeyboard(true);\n };\n document.addEventListener('mousedown', onMouseDown);\n document.addEventListener('keydown', onKeyDown);\n return function () {\n document.removeEventListener('mousedown', onMouseDown);\n document.removeEventListener('keydown', onKeyDown);\n };\n }, []);\n return usingKeyboard;\n};\nexports.useKeyboard = useKeyboard;\nvar _default = useKeyboard;\nexports[\"default\"] = _default;","'use strict'\n\nmodule.exports = parse\n\nvar search = /[#.]/g\n\n// Create a hast element from a simple CSS selector.\nfunction parse(selector, defaultTagName) {\n var value = selector || ''\n var name = defaultTagName || 'div'\n var props = {}\n var start = 0\n var subvalue\n var previous\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n name = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (props.className) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {type: 'element', tagName: name, properties: props, children: []}\n}\n","'use strict'\n\nvar find = require('property-information/find')\nvar normalize = require('property-information/normalize')\nvar parseSelector = require('hast-util-parse-selector')\nvar spaces = require('space-separated-tokens').parse\nvar commas = require('comma-separated-tokens').parse\n\nmodule.exports = factory\n\nvar own = {}.hasOwnProperty\n\nfunction factory(schema, defaultTagName, caseSensitive) {\n var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null\n\n return h\n\n // Hyperscript compatible DSL for creating virtual hast trees.\n function h(selector, properties) {\n var node = parseSelector(selector, defaultTagName)\n var children = Array.prototype.slice.call(arguments, 2)\n var name = node.tagName.toLowerCase()\n var property\n\n node.tagName = adjust && own.call(adjust, name) ? adjust[name] : name\n\n if (properties && isChildren(properties, node)) {\n children.unshift(properties)\n properties = null\n }\n\n if (properties) {\n for (property in properties) {\n addProperty(node.properties, property, properties[property])\n }\n }\n\n addChild(node.children, children)\n\n if (node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n function addProperty(properties, key, value) {\n var info\n var property\n var result\n\n // Ignore nullish and NaN values.\n if (value === null || value === undefined || value !== value) {\n return\n }\n\n info = find(schema, key)\n property = info.property\n result = value\n\n // Handle list values.\n if (typeof result === 'string') {\n if (info.spaceSeparated) {\n result = spaces(result)\n } else if (info.commaSeparated) {\n result = commas(result)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(result).join(' '))\n }\n }\n\n // Accept `object` on style.\n if (property === 'style' && typeof value !== 'string') {\n result = style(result)\n }\n\n // Class-names (which can be added both on the `selector` and here).\n if (property === 'className' && properties.className) {\n result = properties.className.concat(result)\n }\n\n properties[property] = parsePrimitives(info, property, result)\n }\n}\n\nfunction isChildren(value, node) {\n return (\n typeof value === 'string' ||\n 'length' in value ||\n isNode(node.tagName, value)\n )\n}\n\nfunction isNode(tagName, value) {\n var type = value.type\n\n if (tagName === 'input' || !type || typeof type !== 'string') {\n return false\n }\n\n if (typeof value.children === 'object' && 'length' in value.children) {\n return true\n }\n\n type = type.toLowerCase()\n\n if (tagName === 'button') {\n return (\n type !== 'menu' &&\n type !== 'submit' &&\n type !== 'reset' &&\n type !== 'button'\n )\n }\n\n return 'value' in value\n}\n\nfunction addChild(nodes, value) {\n var index\n var length\n\n if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n return\n }\n\n if (typeof value === 'object' && 'length' in value) {\n index = -1\n length = value.length\n\n while (++index < length) {\n addChild(nodes, value[index])\n }\n\n return\n }\n\n if (typeof value !== 'object' || !('type' in value)) {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n\n nodes.push(value)\n}\n\n// Parse a (list of) primitives.\nfunction parsePrimitives(info, name, value) {\n var index\n var length\n var result\n\n if (typeof value !== 'object' || !('length' in value)) {\n return parsePrimitive(info, name, value)\n }\n\n length = value.length\n index = -1\n result = []\n\n while (++index < length) {\n result[index] = parsePrimitive(info, name, value[index])\n }\n\n return result\n}\n\n// Parse a single primitives.\nfunction parsePrimitive(info, name, value) {\n var result = value\n\n if (info.number || info.positiveNumber) {\n if (!isNaN(result) && result !== '') {\n result = Number(result)\n }\n } else if (info.boolean || info.overloadedBoolean) {\n // Accept `boolean` and `string`.\n if (\n typeof result === 'string' &&\n (result === '' || normalize(value) === normalize(name))\n ) {\n result = true\n }\n }\n\n return result\n}\n\nfunction style(value) {\n var result = []\n var key\n\n for (key in value) {\n result.push([key, value[key]].join(': '))\n }\n\n return result.join('; ')\n}\n\nfunction createAdjustMap(values) {\n var length = values.length\n var index = -1\n var result = {}\n var value\n\n while (++index < length) {\n value = values[index]\n result[value.toLowerCase()] = value\n }\n\n return result\n}\n","'use strict'\n\nvar schema = require('property-information/html')\nvar factory = require('./factory')\n\nvar html = factory(schema, 'div')\nhtml.displayName = 'html'\n\nmodule.exports = html\n","'use strict'\n\nmodule.exports = require('./html')\n","'use strict'\n\nmodule.exports = alphabetical\n\n// Check if the given character code, or the character code at the first\n// character, is alphabetical.\nfunction alphabetical(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 && code <= 122) /* a-z */ ||\n (code >= 65 && code <= 90) /* A-Z */\n )\n}\n","'use strict'\n\nvar alphabetical = require('is-alphabetical')\nvar decimal = require('is-decimal')\n\nmodule.exports = alphanumerical\n\n// Check if the given character code, or the character code at the first\n// character, is alphanumerical.\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character)\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nmodule.exports = decimal\n\n// Check if the given character code, or the character code at the first\n// character, is decimal.\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return code >= 48 && code <= 57 /* 0-9 */\n}\n","'use strict'\n\nmodule.exports = hexadecimal\n\n// Check if the given character code, or the character code at the first\n// character, is hexadecimal.\nfunction hexadecimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 /* a */ && code <= 102) /* z */ ||\n (code >= 65 /* A */ && code <= 70) /* Z */ ||\n (code >= 48 /* A */ && code <= 57) /* Z */\n )\n}\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict'\n\nvar legacy = require('character-entities-legacy')\nvar invalid = require('character-reference-invalid')\nvar decimal = require('is-decimal')\nvar hexadecimal = require('is-hexadecimal')\nvar alphanumerical = require('is-alphanumerical')\nvar decodeEntity = require('./decode-entity')\n\nmodule.exports = parseEntities\n\nvar own = {}.hasOwnProperty\nvar fromCharCode = String.fromCharCode\nvar noop = Function.prototype\n\n// Default settings.\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}\n\n// Characters.\nvar tab = 9 // '\\t'\nvar lineFeed = 10 // '\\n'\nvar formFeed = 12 // '\\f'\nvar space = 32 // ' '\nvar ampersand = 38 // '&'\nvar semicolon = 59 // ';'\nvar lessThan = 60 // '<'\nvar equalsTo = 61 // '='\nvar numberSign = 35 // '#'\nvar uppercaseX = 88 // 'X'\nvar lowercaseX = 120 // 'x'\nvar replacementCharacter = 65533 // '�'\n\n// Reference types.\nvar name = 'named'\nvar hexa = 'hexadecimal'\nvar deci = 'decimal'\n\n// Map of bases.\nvar bases = {}\n\nbases[hexa] = 16\nbases[deci] = 10\n\n// Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\nvar tests = {}\n\ntests[name] = alphanumerical\ntests[deci] = decimal\ntests[hexa] = hexadecimal\n\n// Warning types.\nvar namedNotTerminated = 1\nvar numericNotTerminated = 2\nvar namedEmpty = 3\nvar numericEmpty = 4\nvar namedUnknown = 5\nvar numericDisallowed = 6\nvar numericProhibited = 7\n\n// Warning messages.\nvar messages = {}\n\nmessages[namedNotTerminated] =\n 'Named character references must be terminated by a semicolon'\nmessages[numericNotTerminated] =\n 'Numeric character references must be terminated by a semicolon'\nmessages[namedEmpty] = 'Named character references cannot be empty'\nmessages[numericEmpty] = 'Numeric character references cannot be empty'\nmessages[namedUnknown] = 'Named character references must be known'\nmessages[numericDisallowed] =\n 'Numeric character references cannot be disallowed'\nmessages[numericProhibited] =\n 'Numeric character references cannot be outside the permissible Unicode range'\n\n// Wrap to ensure clean parameters are given to `parse`.\nfunction parseEntities(value, options) {\n var settings = {}\n var option\n var key\n\n if (!options) {\n options = {}\n }\n\n for (key in defaults) {\n option = options[key]\n settings[key] =\n option === null || option === undefined ? defaults[key] : option\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || []\n settings.position = settings.position.start\n }\n\n return parse(value, settings)\n}\n\n// Parse entities.\n// eslint-disable-next-line complexity\nfunction parse(value, settings) {\n var additional = settings.additional\n var nonTerminated = settings.nonTerminated\n var handleText = settings.text\n var handleReference = settings.reference\n var handleWarning = settings.warning\n var textContext = settings.textContext\n var referenceContext = settings.referenceContext\n var warningContext = settings.warningContext\n var pos = settings.position\n var indent = settings.indent || []\n var length = value.length\n var index = 0\n var lines = -1\n var column = pos.column || 1\n var line = pos.line || 1\n var queue = ''\n var result = []\n var entityCharacters\n var namedEntity\n var terminated\n var characters\n var character\n var reference\n var following\n var warning\n var reason\n var output\n var entity\n var begin\n var start\n var type\n var test\n var prev\n var next\n var diff\n var end\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0)\n }\n\n // Cache the current point.\n prev = now()\n\n // Wrap `handleWarning`.\n warning = handleWarning ? parseError : noop\n\n // Ensure the algorithm walks over the first character and the end\n // (inclusive).\n index--\n length++\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1\n }\n\n character = value.charCodeAt(index)\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1)\n\n // The behaviour depends on the identity of the next character.\n if (\n following === tab ||\n following === lineFeed ||\n following === formFeed ||\n following === space ||\n following === ampersand ||\n following === lessThan ||\n following !== following ||\n (additional && following === additional)\n ) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character)\n column++\n\n continue\n }\n\n start = index + 1\n begin = start\n end = start\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin\n\n // The behaviour further depends on the next character.\n following = value.charCodeAt(end)\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa\n end = ++begin\n } else {\n // ASCII digits.\n type = deci\n }\n } else {\n // Named entity.\n type = name\n }\n\n entityCharacters = ''\n entity = ''\n characters = ''\n test = tests[type]\n end--\n\n while (++end < length) {\n following = value.charCodeAt(end)\n\n if (!test(following)) {\n break\n }\n\n characters += fromCharCode(following)\n\n // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n if (type === name && own.call(legacy, characters)) {\n entityCharacters = characters\n entity = legacy[characters]\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon\n\n if (terminated) {\n end++\n\n namedEntity = type === name ? decodeEntity(characters) : false\n\n if (namedEntity) {\n entityCharacters = characters\n entity = namedEntity\n }\n }\n\n diff = 1 + end - start\n\n if (!terminated && !nonTerminated) {\n // Empty.\n } else if (!characters) {\n // An empty (possible) entity is valid, unless it’s numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff)\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1)\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length\n diff = 1 + end - begin\n terminated = false\n }\n\n // If the reference is not terminated, warn.\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty\n\n if (settings.attribute) {\n following = value.charCodeAt(end)\n\n if (following === equalsTo) {\n warning(reason, diff)\n entity = null\n } else if (alphanumerical(following)) {\n entity = null\n } else {\n warning(reason, diff)\n }\n } else {\n warning(reason, diff)\n }\n }\n }\n\n reference = entity\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff)\n }\n\n // When terminated and number, parse as either hexadecimal or decimal.\n reference = parseInt(characters, bases[type])\n\n // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n if (prohibited(reference)) {\n warning(numericProhibited, diff)\n reference = fromCharCode(replacementCharacter)\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff)\n reference = invalid[reference]\n } else {\n // Parse the number.\n output = ''\n\n // Trigger a warning when the parsed number should not be used.\n if (disallowed(reference)) {\n warning(numericDisallowed, diff)\n }\n\n // Stringify the number.\n if (reference > 0xffff) {\n reference -= 0x10000\n output += fromCharCode((reference >>> (10 & 0x3ff)) | 0xd800)\n reference = 0xdc00 | (reference & 0x3ff)\n }\n\n reference = output + fromCharCode(reference)\n }\n }\n\n // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n if (reference) {\n flush()\n\n prev = now()\n index = end - 1\n column += end - start + 1\n result.push(reference)\n next = now()\n next.offset++\n\n if (handleReference) {\n handleReference.call(\n referenceContext,\n reference,\n {start: prev, end: next},\n value.slice(start - 1, end)\n )\n }\n\n prev = next\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end)\n queue += characters\n column += characters.length\n index = end - 1\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (\n character === 10 // Line feed\n ) {\n line++\n lines++\n column = 0\n }\n\n if (character === character) {\n queue += fromCharCode(character)\n column++\n } else {\n flush()\n }\n }\n }\n\n // Return the reduced nodes.\n return result.join('')\n\n // Get current position.\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n }\n }\n\n // “Throw†a parse-error: a warning.\n function parseError(code, offset) {\n var position = now()\n\n position.column += offset\n position.offset += offset\n\n handleWarning.call(warningContext, messages[code], position, code)\n }\n\n // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n function flush() {\n if (queue) {\n result.push(queue)\n\n if (handleText) {\n handleText.call(textContext, queue, {start: prev, end: now()})\n }\n\n queue = ''\n }\n }\n}\n\n// Check if `character` is outside the permissible unicode range.\nfunction prohibited(code) {\n return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n// Check if `character` is disallowed.\nfunction disallowed(code) {\n return (\n (code >= 0x0001 && code <= 0x0008) ||\n code === 0x000b ||\n (code >= 0x000d && code <= 0x001f) ||\n (code >= 0x007f && code <= 0x009f) ||\n (code >= 0xfdd0 && code <= 0xfdef) ||\n (code & 0xffff) === 0xffff ||\n (code & 0xffff) === 0xfffe\n )\n}\n","/**\n * Based on Kendo UI Core expression code <https://github.com/telerik/kendo-ui-core#license-information>\n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","'use strict'\n\nvar normalize = require('./normalize')\nvar DefinedInfo = require('./lib/util/defined-info')\nvar Info = require('./lib/util/info')\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return data + value\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar html = require('./lib/html')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","'use strict'\n\nvar caseSensitiveTransform = require('./case-sensitive-transform')\n\nmodule.exports = caseInsensitiveTransform\n\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","'use strict'\n\nmodule.exports = caseSensitiveTransform\n\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","'use strict'\n\nvar normalize = require('../../normalize')\nvar Schema = require('./schema')\nvar DefinedInfo = require('./defined-info')\n\nmodule.exports = create\n\nfunction create(definition) {\n var space = definition.space\n var mustUseProperty = definition.mustUseProperty || []\n var attributes = definition.attributes || {}\n var props = definition.properties\n var transform = definition.transform\n var property = {}\n var normal = {}\n var prop\n var info\n\n for (prop in props) {\n info = new DefinedInfo(\n prop,\n transform(attributes, prop),\n props[prop],\n space\n )\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n\n return new Schema(property, normal, space)\n}\n","'use strict'\n\nvar Info = require('./info')\nvar types = require('./types')\n\nmodule.exports = DefinedInfo\n\nDefinedInfo.prototype = new Info()\nDefinedInfo.prototype.defined = true\n\nvar checks = [\n 'boolean',\n 'booleanish',\n 'overloadedBoolean',\n 'number',\n 'commaSeparated',\n 'spaceSeparated',\n 'commaOrSpaceSeparated'\n]\nvar checksLength = checks.length\n\nfunction DefinedInfo(property, attribute, mask, space) {\n var index = -1\n var check\n\n mark(this, 'space', space)\n\n Info.call(this, property, attribute)\n\n while (++index < checksLength) {\n check = checks[index]\n mark(this, check, (mask & types[check]) === types[check])\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","'use strict'\n\nmodule.exports = Info\n\nvar proto = Info.prototype\n\nproto.space = null\nproto.attribute = null\nproto.property = null\nproto.boolean = false\nproto.booleanish = false\nproto.overloadedBoolean = false\nproto.number = false\nproto.commaSeparated = false\nproto.spaceSeparated = false\nproto.commaOrSpaceSeparated = false\nproto.mustUseProperty = false\nproto.defined = false\n\nfunction Info(property, attribute) {\n this.property = property\n this.attribute = attribute\n}\n","'use strict'\n\nvar xtend = require('xtend')\nvar Schema = require('./schema')\n\nmodule.exports = merge\n\nfunction merge(definitions) {\n var length = definitions.length\n var property = []\n var normal = []\n var index = -1\n var info\n var space\n\n while (++index < length) {\n info = definitions[index]\n property.push(info.property)\n normal.push(info.normal)\n space = info.space\n }\n\n return new Schema(\n xtend.apply(null, property),\n xtend.apply(null, normal),\n space\n )\n}\n","'use strict'\n\nmodule.exports = Schema\n\nvar proto = Schema.prototype\n\nproto.space = null\nproto.normal = {}\nproto.property = {}\n\nfunction Schema(property, normal, space) {\n this.property = property\n this.normal = normal\n\n if (space) {\n this.space = space\n }\n}\n","'use strict'\n\nvar powers = 0\n\nexports.boolean = increment()\nexports.booleanish = increment()\nexports.overloadedBoolean = increment()\nexports.number = increment()\nexports.spaceSeparated = increment()\nexports.commaSeparated = increment()\nexports.commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return Math.pow(2, ++powers)\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xlink',\n transform: xlinkTransform,\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n})\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nmodule.exports = create({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n})\n","'use strict'\n\nmodule.exports = normalize\n\nfunction normalize(value) {\n return value.toLowerCase()\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\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;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function 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, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","'use strict'\n\n/* global window, self */\n\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\nvar ctx =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {}\n\nvar restore = capture()\n\nctx.Prism = {manual: true, disableWorkerMessageHandler: true}\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\nvar h = require('hastscript')\nvar decode = require('parse-entities')\nvar Prism = require('prismjs/components/prism-core')\nvar markup = require('./lang/markup')\nvar css = require('./lang/css')\nvar clike = require('./lang/clike')\nvar js = require('./lang/javascript')\n\nrestore()\n\nvar own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n// Construct.\nvar refract = new Refractor()\n\n// Expose.\nmodule.exports = refract\n\n// Create.\nrefract.highlight = highlight\nrefract.register = register\nrefract.alias = alias\nrefract.registered = registered\nrefract.listLanguages = listLanguages\n\n// Register bundled grammars.\nregister(markup)\nregister(css)\nregister(clike)\nregister(js)\n\nrefract.util.encode = encode\nrefract.Token.stringify = stringify\n\nfunction register(grammar) {\n if (typeof grammar !== 'function' || !grammar.displayName) {\n throw new Error('Expected `function` for `grammar`, got `' + grammar + '`')\n }\n\n // Do not duplicate registrations.\n if (refract.languages[grammar.displayName] === undefined) {\n grammar(refract)\n }\n}\n\nfunction alias(name, alias) {\n var languages = refract.languages\n var map = name\n var key\n var list\n var length\n var index\n\n if (alias) {\n map = {}\n map[name] = alias\n }\n\n for (key in map) {\n list = map[key]\n list = typeof list === 'string' ? [list] : list\n length = list.length\n index = -1\n\n while (++index < length) {\n languages[list[index]] = languages[key]\n }\n }\n}\n\nfunction highlight(value, name) {\n var sup = Prism.highlight\n var grammar\n\n if (typeof value !== 'string') {\n throw new Error('Expected `string` for `value`, got `' + value + '`')\n }\n\n // `name` is a grammar object.\n if (refract.util.type(name) === 'Object') {\n grammar = name\n name = null\n } else {\n if (typeof name !== 'string') {\n throw new Error('Expected `string` for `name`, got `' + name + '`')\n }\n\n if (own.call(refract.languages, name)) {\n grammar = refract.languages[name]\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered')\n }\n }\n\n return sup.call(this, value, grammar, name)\n}\n\nfunction registered(language) {\n if (typeof language !== 'string') {\n throw new Error('Expected `string` for `language`, got `' + language + '`')\n }\n\n return own.call(refract.languages, language)\n}\n\nfunction listLanguages() {\n var languages = refract.languages\n var list = []\n var language\n\n for (language in languages) {\n if (\n own.call(languages, language) &&\n typeof languages[language] === 'object'\n ) {\n list.push(language)\n }\n }\n\n return list\n}\n\nfunction stringify(value, language, parent) {\n var env\n\n if (typeof value === 'string') {\n return {type: 'text', value: value}\n }\n\n if (refract.util.type(value) === 'Array') {\n return stringifyAll(value, language)\n }\n\n env = {\n type: value.type,\n content: refract.Token.stringify(value.content, language, parent),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language: language,\n parent: parent\n }\n\n if (value.alias) {\n env.classes = env.classes.concat(value.alias)\n }\n\n refract.hooks.run('wrap', env)\n\n return h(\n env.tag + '.' + env.classes.join('.'),\n attributes(env.attributes),\n env.content\n )\n}\n\nfunction stringifyAll(values, language) {\n var result = []\n var length = values.length\n var index = -1\n var value\n\n while (++index < length) {\n value = values[index]\n\n if (value !== '' && value !== null && value !== undefined) {\n result.push(value)\n }\n }\n\n index = -1\n length = result.length\n\n while (++index < length) {\n value = result[index]\n result[index] = refract.Token.stringify(value, language, result)\n }\n\n return result\n}\n\nfunction encode(tokens) {\n return tokens\n}\n\nfunction attributes(attrs) {\n var key\n\n for (key in attrs) {\n attrs[key] = decode(attrs[key])\n }\n\n return attrs\n}\n\nfunction capture() {\n var defined = 'Prism' in ctx\n /* istanbul ignore next */\n var current = defined ? ctx.Prism : undefined\n\n return restore\n\n function restore() {\n /* istanbul ignore else - Clean leaks after Prism. */\n if (defined) {\n ctx.Prism = current\n } else {\n delete ctx.Prism\n }\n\n defined = undefined\n current = undefined\n }\n}\n","'use strict'\n\nvar refractor = require('./core.js')\n\nmodule.exports = refractor\n\nrefractor.register(require('./lang/abap.js'))\nrefractor.register(require('./lang/abnf.js'))\nrefractor.register(require('./lang/actionscript.js'))\nrefractor.register(require('./lang/ada.js'))\nrefractor.register(require('./lang/agda.js'))\nrefractor.register(require('./lang/al.js'))\nrefractor.register(require('./lang/antlr4.js'))\nrefractor.register(require('./lang/apacheconf.js'))\nrefractor.register(require('./lang/apex.js'))\nrefractor.register(require('./lang/apl.js'))\nrefractor.register(require('./lang/applescript.js'))\nrefractor.register(require('./lang/aql.js'))\nrefractor.register(require('./lang/arduino.js'))\nrefractor.register(require('./lang/arff.js'))\nrefractor.register(require('./lang/asciidoc.js'))\nrefractor.register(require('./lang/asm6502.js'))\nrefractor.register(require('./lang/asmatmel.js'))\nrefractor.register(require('./lang/aspnet.js'))\nrefractor.register(require('./lang/autohotkey.js'))\nrefractor.register(require('./lang/autoit.js'))\nrefractor.register(require('./lang/avisynth.js'))\nrefractor.register(require('./lang/avro-idl.js'))\nrefractor.register(require('./lang/bash.js'))\nrefractor.register(require('./lang/basic.js'))\nrefractor.register(require('./lang/batch.js'))\nrefractor.register(require('./lang/bbcode.js'))\nrefractor.register(require('./lang/bicep.js'))\nrefractor.register(require('./lang/birb.js'))\nrefractor.register(require('./lang/bison.js'))\nrefractor.register(require('./lang/bnf.js'))\nrefractor.register(require('./lang/brainfuck.js'))\nrefractor.register(require('./lang/brightscript.js'))\nrefractor.register(require('./lang/bro.js'))\nrefractor.register(require('./lang/bsl.js'))\nrefractor.register(require('./lang/c.js'))\nrefractor.register(require('./lang/cfscript.js'))\nrefractor.register(require('./lang/chaiscript.js'))\nrefractor.register(require('./lang/cil.js'))\nrefractor.register(require('./lang/clojure.js'))\nrefractor.register(require('./lang/cmake.js'))\nrefractor.register(require('./lang/cobol.js'))\nrefractor.register(require('./lang/coffeescript.js'))\nrefractor.register(require('./lang/concurnas.js'))\nrefractor.register(require('./lang/coq.js'))\nrefractor.register(require('./lang/cpp.js'))\nrefractor.register(require('./lang/crystal.js'))\nrefractor.register(require('./lang/csharp.js'))\nrefractor.register(require('./lang/cshtml.js'))\nrefractor.register(require('./lang/csp.js'))\nrefractor.register(require('./lang/css-extras.js'))\nrefractor.register(require('./lang/csv.js'))\nrefractor.register(require('./lang/cypher.js'))\nrefractor.register(require('./lang/d.js'))\nrefractor.register(require('./lang/dart.js'))\nrefractor.register(require('./lang/dataweave.js'))\nrefractor.register(require('./lang/dax.js'))\nrefractor.register(require('./lang/dhall.js'))\nrefractor.register(require('./lang/diff.js'))\nrefractor.register(require('./lang/django.js'))\nrefractor.register(require('./lang/dns-zone-file.js'))\nrefractor.register(require('./lang/docker.js'))\nrefractor.register(require('./lang/dot.js'))\nrefractor.register(require('./lang/ebnf.js'))\nrefractor.register(require('./lang/editorconfig.js'))\nrefractor.register(require('./lang/eiffel.js'))\nrefractor.register(require('./lang/ejs.js'))\nrefractor.register(require('./lang/elixir.js'))\nrefractor.register(require('./lang/elm.js'))\nrefractor.register(require('./lang/erb.js'))\nrefractor.register(require('./lang/erlang.js'))\nrefractor.register(require('./lang/etlua.js'))\nrefractor.register(require('./lang/excel-formula.js'))\nrefractor.register(require('./lang/factor.js'))\nrefractor.register(require('./lang/false.js'))\nrefractor.register(require('./lang/firestore-security-rules.js'))\nrefractor.register(require('./lang/flow.js'))\nrefractor.register(require('./lang/fortran.js'))\nrefractor.register(require('./lang/fsharp.js'))\nrefractor.register(require('./lang/ftl.js'))\nrefractor.register(require('./lang/gap.js'))\nrefractor.register(require('./lang/gcode.js'))\nrefractor.register(require('./lang/gdscript.js'))\nrefractor.register(require('./lang/gedcom.js'))\nrefractor.register(require('./lang/gherkin.js'))\nrefractor.register(require('./lang/git.js'))\nrefractor.register(require('./lang/glsl.js'))\nrefractor.register(require('./lang/gml.js'))\nrefractor.register(require('./lang/gn.js'))\nrefractor.register(require('./lang/go-module.js'))\nrefractor.register(require('./lang/go.js'))\nrefractor.register(require('./lang/graphql.js'))\nrefractor.register(require('./lang/groovy.js'))\nrefractor.register(require('./lang/haml.js'))\nrefractor.register(require('./lang/handlebars.js'))\nrefractor.register(require('./lang/haskell.js'))\nrefractor.register(require('./lang/haxe.js'))\nrefractor.register(require('./lang/hcl.js'))\nrefractor.register(require('./lang/hlsl.js'))\nrefractor.register(require('./lang/hoon.js'))\nrefractor.register(require('./lang/hpkp.js'))\nrefractor.register(require('./lang/hsts.js'))\nrefractor.register(require('./lang/http.js'))\nrefractor.register(require('./lang/ichigojam.js'))\nrefractor.register(require('./lang/icon.js'))\nrefractor.register(require('./lang/icu-message-format.js'))\nrefractor.register(require('./lang/idris.js'))\nrefractor.register(require('./lang/iecst.js'))\nrefractor.register(require('./lang/ignore.js'))\nrefractor.register(require('./lang/inform7.js'))\nrefractor.register(require('./lang/ini.js'))\nrefractor.register(require('./lang/io.js'))\nrefractor.register(require('./lang/j.js'))\nrefractor.register(require('./lang/java.js'))\nrefractor.register(require('./lang/javadoc.js'))\nrefractor.register(require('./lang/javadoclike.js'))\nrefractor.register(require('./lang/javastacktrace.js'))\nrefractor.register(require('./lang/jexl.js'))\nrefractor.register(require('./lang/jolie.js'))\nrefractor.register(require('./lang/jq.js'))\nrefractor.register(require('./lang/js-extras.js'))\nrefractor.register(require('./lang/js-templates.js'))\nrefractor.register(require('./lang/jsdoc.js'))\nrefractor.register(require('./lang/json.js'))\nrefractor.register(require('./lang/json5.js'))\nrefractor.register(require('./lang/jsonp.js'))\nrefractor.register(require('./lang/jsstacktrace.js'))\nrefractor.register(require('./lang/jsx.js'))\nrefractor.register(require('./lang/julia.js'))\nrefractor.register(require('./lang/keepalived.js'))\nrefractor.register(require('./lang/keyman.js'))\nrefractor.register(require('./lang/kotlin.js'))\nrefractor.register(require('./lang/kumir.js'))\nrefractor.register(require('./lang/kusto.js'))\nrefractor.register(require('./lang/latex.js'))\nrefractor.register(require('./lang/latte.js'))\nrefractor.register(require('./lang/less.js'))\nrefractor.register(require('./lang/lilypond.js'))\nrefractor.register(require('./lang/liquid.js'))\nrefractor.register(require('./lang/lisp.js'))\nrefractor.register(require('./lang/livescript.js'))\nrefractor.register(require('./lang/llvm.js'))\nrefractor.register(require('./lang/log.js'))\nrefractor.register(require('./lang/lolcode.js'))\nrefractor.register(require('./lang/lua.js'))\nrefractor.register(require('./lang/magma.js'))\nrefractor.register(require('./lang/makefile.js'))\nrefractor.register(require('./lang/markdown.js'))\nrefractor.register(require('./lang/markup-templating.js'))\nrefractor.register(require('./lang/matlab.js'))\nrefractor.register(require('./lang/maxscript.js'))\nrefractor.register(require('./lang/mel.js'))\nrefractor.register(require('./lang/mermaid.js'))\nrefractor.register(require('./lang/mizar.js'))\nrefractor.register(require('./lang/mongodb.js'))\nrefractor.register(require('./lang/monkey.js'))\nrefractor.register(require('./lang/moonscript.js'))\nrefractor.register(require('./lang/n1ql.js'))\nrefractor.register(require('./lang/n4js.js'))\nrefractor.register(require('./lang/nand2tetris-hdl.js'))\nrefractor.register(require('./lang/naniscript.js'))\nrefractor.register(require('./lang/nasm.js'))\nrefractor.register(require('./lang/neon.js'))\nrefractor.register(require('./lang/nevod.js'))\nrefractor.register(require('./lang/nginx.js'))\nrefractor.register(require('./lang/nim.js'))\nrefractor.register(require('./lang/nix.js'))\nrefractor.register(require('./lang/nsis.js'))\nrefractor.register(require('./lang/objectivec.js'))\nrefractor.register(require('./lang/ocaml.js'))\nrefractor.register(require('./lang/opencl.js'))\nrefractor.register(require('./lang/openqasm.js'))\nrefractor.register(require('./lang/oz.js'))\nrefractor.register(require('./lang/parigp.js'))\nrefractor.register(require('./lang/parser.js'))\nrefractor.register(require('./lang/pascal.js'))\nrefractor.register(require('./lang/pascaligo.js'))\nrefractor.register(require('./lang/pcaxis.js'))\nrefractor.register(require('./lang/peoplecode.js'))\nrefractor.register(require('./lang/perl.js'))\nrefractor.register(require('./lang/php-extras.js'))\nrefractor.register(require('./lang/php.js'))\nrefractor.register(require('./lang/phpdoc.js'))\nrefractor.register(require('./lang/plsql.js'))\nrefractor.register(require('./lang/powerquery.js'))\nrefractor.register(require('./lang/powershell.js'))\nrefractor.register(require('./lang/processing.js'))\nrefractor.register(require('./lang/prolog.js'))\nrefractor.register(require('./lang/promql.js'))\nrefractor.register(require('./lang/properties.js'))\nrefractor.register(require('./lang/protobuf.js'))\nrefractor.register(require('./lang/psl.js'))\nrefractor.register(require('./lang/pug.js'))\nrefractor.register(require('./lang/puppet.js'))\nrefractor.register(require('./lang/pure.js'))\nrefractor.register(require('./lang/purebasic.js'))\nrefractor.register(require('./lang/purescript.js'))\nrefractor.register(require('./lang/python.js'))\nrefractor.register(require('./lang/q.js'))\nrefractor.register(require('./lang/qml.js'))\nrefractor.register(require('./lang/qore.js'))\nrefractor.register(require('./lang/qsharp.js'))\nrefractor.register(require('./lang/r.js'))\nrefractor.register(require('./lang/racket.js'))\nrefractor.register(require('./lang/reason.js'))\nrefractor.register(require('./lang/regex.js'))\nrefractor.register(require('./lang/rego.js'))\nrefractor.register(require('./lang/renpy.js'))\nrefractor.register(require('./lang/rest.js'))\nrefractor.register(require('./lang/rip.js'))\nrefractor.register(require('./lang/roboconf.js'))\nrefractor.register(require('./lang/robotframework.js'))\nrefractor.register(require('./lang/ruby.js'))\nrefractor.register(require('./lang/rust.js'))\nrefractor.register(require('./lang/sas.js'))\nrefractor.register(require('./lang/sass.js'))\nrefractor.register(require('./lang/scala.js'))\nrefractor.register(require('./lang/scheme.js'))\nrefractor.register(require('./lang/scss.js'))\nrefractor.register(require('./lang/shell-session.js'))\nrefractor.register(require('./lang/smali.js'))\nrefractor.register(require('./lang/smalltalk.js'))\nrefractor.register(require('./lang/smarty.js'))\nrefractor.register(require('./lang/sml.js'))\nrefractor.register(require('./lang/solidity.js'))\nrefractor.register(require('./lang/solution-file.js'))\nrefractor.register(require('./lang/soy.js'))\nrefractor.register(require('./lang/sparql.js'))\nrefractor.register(require('./lang/splunk-spl.js'))\nrefractor.register(require('./lang/sqf.js'))\nrefractor.register(require('./lang/sql.js'))\nrefractor.register(require('./lang/squirrel.js'))\nrefractor.register(require('./lang/stan.js'))\nrefractor.register(require('./lang/stylus.js'))\nrefractor.register(require('./lang/swift.js'))\nrefractor.register(require('./lang/systemd.js'))\nrefractor.register(require('./lang/t4-cs.js'))\nrefractor.register(require('./lang/t4-templating.js'))\nrefractor.register(require('./lang/t4-vb.js'))\nrefractor.register(require('./lang/tap.js'))\nrefractor.register(require('./lang/tcl.js'))\nrefractor.register(require('./lang/textile.js'))\nrefractor.register(require('./lang/toml.js'))\nrefractor.register(require('./lang/tremor.js'))\nrefractor.register(require('./lang/tsx.js'))\nrefractor.register(require('./lang/tt2.js'))\nrefractor.register(require('./lang/turtle.js'))\nrefractor.register(require('./lang/twig.js'))\nrefractor.register(require('./lang/typescript.js'))\nrefractor.register(require('./lang/typoscript.js'))\nrefractor.register(require('./lang/unrealscript.js'))\nrefractor.register(require('./lang/uorazor.js'))\nrefractor.register(require('./lang/uri.js'))\nrefractor.register(require('./lang/v.js'))\nrefractor.register(require('./lang/vala.js'))\nrefractor.register(require('./lang/vbnet.js'))\nrefractor.register(require('./lang/velocity.js'))\nrefractor.register(require('./lang/verilog.js'))\nrefractor.register(require('./lang/vhdl.js'))\nrefractor.register(require('./lang/vim.js'))\nrefractor.register(require('./lang/visual-basic.js'))\nrefractor.register(require('./lang/warpscript.js'))\nrefractor.register(require('./lang/wasm.js'))\nrefractor.register(require('./lang/web-idl.js'))\nrefractor.register(require('./lang/wiki.js'))\nrefractor.register(require('./lang/wolfram.js'))\nrefractor.register(require('./lang/wren.js'))\nrefractor.register(require('./lang/xeora.js'))\nrefractor.register(require('./lang/xml-doc.js'))\nrefractor.register(require('./lang/xojo.js'))\nrefractor.register(require('./lang/xquery.js'))\nrefractor.register(require('./lang/yaml.js'))\nrefractor.register(require('./lang/yang.js'))\nrefractor.register(require('./lang/zig.js'))\n","'use strict'\n\nmodule.exports = abap\nabap.displayName = 'abap'\nabap.aliases = []\nfunction abap(Prism) {\n Prism.languages.abap = {\n comment: /^\\*.*/m,\n string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n 'string-template': {\n pattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n lookbehind: true,\n alias: 'string'\n },\n /* End Of Line comments should not interfere with strings when the\nquote character occurs within them. We assume a string being highlighted\ninside an EOL comment is more acceptable than the opposite.\n*/\n 'eol-comment': {\n pattern: /(^|\\s)\".*/m,\n lookbehind: true,\n alias: 'comment'\n },\n keyword: {\n pattern:\n /(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,\n lookbehind: true\n },\n /* Numbers can be only integers. Decimal or Hex appear only as strings */\n number: /\\b\\d+\\b/,\n /* Operators must always be surrounded by whitespace, they cannot be put\nadjacent to operands.\n*/\n operator: {\n pattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n lookbehind: true\n },\n 'string-operator': {\n pattern: /(\\s)&&?(?=\\s)/,\n lookbehind: true,\n /* The official editor highlights */\n alias: 'keyword'\n },\n 'token-operator': [\n {\n /* Special operators used to access structure components, class methods/attributes, etc. */\n pattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n {\n /* Special tokens used do delimit string templates */\n pattern: /[|{}]/,\n alias: 'punctuation'\n }\n ],\n punctuation: /[,.:()]/\n }\n}\n","'use strict'\n\nmodule.exports = abnf\nabnf.displayName = 'abnf'\nabnf.aliases = []\nfunction abnf(Prism) {\n ;(function (Prism) {\n var coreRules =\n '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'\n Prism.languages.abnf = {\n comment: /;.*/,\n string: {\n pattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n greedy: true,\n inside: {\n punctuation: /^%[is]/\n }\n },\n range: {\n pattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n alias: 'number'\n },\n terminal: {\n pattern:\n /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n alias: 'number'\n },\n repetition: {\n pattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n lookbehind: true,\n alias: 'operator'\n },\n definition: {\n pattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^<>\\r\\n]*>)(?=\\s*=)/m,\n lookbehind: true,\n alias: 'keyword',\n inside: {\n punctuation: /<|>/\n }\n },\n 'core-rule': {\n pattern: RegExp(\n '(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])',\n 'i'\n ),\n lookbehind: true,\n alias: ['rule', 'constant'],\n inside: {\n punctuation: /<|>/\n }\n },\n rule: {\n pattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^<>\\r\\n]*>/i,\n lookbehind: true,\n inside: {\n punctuation: /<|>/\n }\n },\n operator: /=\\/?|\\//,\n punctuation: /[()\\[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = actionscript\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\nfunction actionscript(Prism) {\n Prism.languages.actionscript = Prism.languages.extend('javascript', {\n keyword:\n /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/,\n operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n })\n Prism.languages.actionscript['class-name'].alias = 'function' // doesn't work with AS because AS is too complex\n delete Prism.languages.actionscript['parameter']\n delete Prism.languages.actionscript['literal-property']\n if (Prism.languages.markup) {\n Prism.languages.insertBefore('actionscript', 'string', {\n xml: {\n pattern:\n /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n lookbehind: true,\n inside: Prism.languages.markup\n }\n })\n }\n}\n","'use strict'\n\nmodule.exports = ada\nada.displayName = 'ada'\nada.aliases = []\nfunction ada(Prism) {\n Prism.languages.ada = {\n comment: /--.*/,\n string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/,\n number: [\n {\n pattern:\n /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n },\n {\n pattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n }\n ],\n 'attr-name': /\\b'\\w+/,\n keyword:\n /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n punctuation: /\\.\\.?|[,;():]/,\n char: /'.'/,\n variable: /\\b[a-z](?:\\w)*\\b/i\n }\n}\n","'use strict'\n\nmodule.exports = agda\nagda.displayName = 'agda'\nagda.aliases = []\nfunction agda(Prism) {\n ;(function (Prism) {\n Prism.languages.agda = {\n comment: /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n punctuation: /[(){}⦃⦄.;@]/,\n 'class-name': {\n pattern: /((?:data|record) +)\\S+/,\n lookbehind: true\n },\n function: {\n pattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n lookbehind: true\n },\n operator: {\n pattern: /(^\\s*|\\s)(?:[=|:∀→λ\\\\?_]|->)(?=\\s)/,\n lookbehind: true\n },\n keyword:\n /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = al\nal.displayName = 'al'\nal.aliases = []\nfunction al(Prism) {\n // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n Prism.languages.al = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n function: {\n pattern:\n /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true\n },\n keyword: [\n // keywords\n /\\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\\b/i, // objects and metadata that are used like keywords\n /\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n ],\n number:\n /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|LL?|U(?:LL?)?)?\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n variable: /\\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\\b/,\n 'class-name':\n /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n operator: /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n punctuation: /[()\\[\\]{}:.;,]/\n }\n}\n","'use strict'\n\nmodule.exports = antlr4\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\nfunction antlr4(Prism) {\n Prism.languages.antlr4 = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n string: {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n greedy: true\n },\n 'character-class': {\n pattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n greedy: true,\n alias: 'regex',\n inside: {\n range: {\n pattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n lookbehind: true,\n alias: 'punctuation'\n },\n escape:\n /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n punctuation: /[\\[\\]]/\n }\n },\n action: {\n pattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n greedy: true,\n inside: {\n content: {\n // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n pattern: /(\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true\n },\n punctuation: /[{}]/\n }\n },\n command: {\n pattern:\n /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n lookbehind: true,\n inside: {\n function: /\\b\\w+(?=\\s*(?:[,(]|$))/,\n punctuation: /[,()]/\n }\n },\n annotation: {\n pattern: /@\\w+(?:::\\w+)*/,\n alias: 'keyword'\n },\n label: {\n pattern: /#[ \\t]*\\w+/,\n alias: 'punctuation'\n },\n keyword:\n /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n definition: [\n {\n pattern: /\\b[a-z]\\w*(?=\\s*:)/,\n alias: ['rule', 'class-name']\n },\n {\n pattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n alias: ['token', 'constant']\n }\n ],\n constant: /\\b[A-Z][A-Z_]*\\b/,\n operator: /\\.\\.|->|[|~]|[*+?]\\??/,\n punctuation: /[;:()=]/\n }\n Prism.languages.g4 = Prism.languages.antlr4\n}\n","'use strict'\n\nmodule.exports = apacheconf\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\nfunction apacheconf(Prism) {\n Prism.languages.apacheconf = {\n comment: /#.*/,\n 'directive-inline': {\n pattern:\n /(^[\\t ]*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n lookbehind: true,\n alias: 'property'\n },\n 'directive-block': {\n pattern:\n /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n inside: {\n 'directive-block': {\n pattern: /^<\\/?\\w+/,\n inside: {\n punctuation: /^<\\/?/\n },\n alias: 'tag'\n },\n 'directive-block-parameter': {\n pattern: /.*[^>]/,\n inside: {\n punctuation: /:/,\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n }\n },\n alias: 'attr-value'\n },\n punctuation: />/\n },\n alias: 'tag'\n },\n 'directive-flags': {\n pattern: /\\[(?:[\\w=],?)+\\]/,\n alias: 'keyword'\n },\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n },\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n regex: /\\^?.*\\$|\\^.*\\$?/\n }\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = apex\napex.displayName = 'apex'\napex.aliases = []\nfunction apex(Prism) {\n Prism.register(refractorSql)\n ;(function (Prism) {\n var keywords =\n /\\b(?:(?:after|before)(?=\\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\\s+sharing)\\b/i\n var className =\n /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n /** @param {string} pattern */\n function insertClassName(pattern) {\n return RegExp(\n pattern.replace(/<CLASS-NAME>/g, function () {\n return className\n }),\n 'i'\n )\n }\n var classNameInside = {\n keyword: keywords,\n punctuation: /[()\\[\\]{};,:.<>]/\n }\n Prism.languages.apex = {\n comment: Prism.languages.clike.comment,\n string: Prism.languages.clike.string,\n sql: {\n pattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n lookbehind: true,\n greedy: true,\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n annotation: {\n pattern: /@\\w+\\b/,\n alias: 'punctuation'\n },\n 'class-name': [\n {\n pattern: insertClassName(\n /(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>/\n .source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // cast\n pattern: insertClassName(\n /(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])/.source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // variable/parameter declaration and return types\n pattern: insertClassName(/<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])/.source),\n inside: classNameInside\n }\n ],\n trigger: {\n pattern: /(\\btrigger\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n keyword: keywords,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n operator:\n /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,\n punctuation: /[()\\[\\]{};,.]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = apl\napl.displayName = 'apl'\napl.aliases = []\nfunction apl(Prism) {\n Prism.languages.apl = {\n comment: /(?:â|#[! ]).*$/m,\n string: {\n pattern: /'(?:[^'\\r\\n]|'')*'/,\n greedy: true\n },\n number:\n /¯?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+)?|¯|∞)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+)?|¯|∞))?/i,\n statement: /:[A-Z][a-z][A-Za-z]*\\b/,\n 'system-function': {\n pattern: /⎕[A-Z]+/i,\n alias: 'function'\n },\n constant: /[â¬âŒ¾#⎕âž]/,\n function: /[-+×÷⌈⌊∣|â³â¸?*âŸâ—‹!⌹<≤=>≥≠≡≢∊â·âˆªâˆ©~∨∧â±â²â´,âªâŒ½âŠ–â‰â†‘↓⊂⊃⊆⊇⌷â‹â’⊤⊥â•âŽâŠ£âŠ¢ââ‚≈â¯â†—¤→]/,\n 'monadic-operator': {\n pattern: /[\\\\\\/⌿â€Â¨â¨âŒ¶&∥]/,\n alias: 'operator'\n },\n 'dyadic-operator': {\n pattern: /[.â£â â¤âˆ˜âŒ¸@⌺â¥]/,\n alias: 'operator'\n },\n assignment: {\n pattern: /â†/,\n alias: 'keyword'\n },\n punctuation: /[\\[;\\]()◇⋄]/,\n dfn: {\n pattern: /[{}âºâµâ¶â¹âˆ‡â«:]/,\n alias: 'builtin'\n }\n }\n}\n","'use strict'\n\nmodule.exports = applescript\napplescript.displayName = 'applescript'\napplescript.aliases = []\nfunction applescript(Prism) {\n Prism.languages.applescript = {\n comment: [\n // Allow one level of nesting\n /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n /--.+/,\n /#.+/\n ],\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n operator: [\n /[&=≠≤≥*+\\-\\/÷^]|[<>]=?/,\n /\\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\\b/\n ],\n keyword:\n /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n 'class-name':\n /\\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\\b/,\n punctuation: /[{}():,¬«»《》]/\n }\n}\n","'use strict'\n\nmodule.exports = aql\naql.displayName = 'aql'\naql.aliases = []\nfunction aql(Prism) {\n Prism.languages.aql = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n property: {\n pattern:\n /([{,]\\s*)(?:(?!\\d)\\w+|([\"'´`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /([´`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n variable: /@@?\\w+/,\n keyword: [\n {\n pattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n lookbehind: true\n },\n /\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\\b/i, // pseudo keywords get a lookbehind to avoid false positives\n {\n pattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n lookbehind: true\n },\n {\n pattern: /\\bOPTIONS(?=\\s*\\{)/i\n }\n ],\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n boolean: /\\b(?:false|true)\\b/i,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n number: [\n /\\b0b[01]+/i,\n /\\b0x[0-9a-f]+/i,\n /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i\n ],\n operator: /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n punctuation: /::|[?.:,;()[\\]{}]/\n }\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = arduino\narduino.displayName = 'arduino'\narduino.aliases = ['ino']\nfunction arduino(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.arduino = Prism.languages.extend('cpp', {\n keyword:\n /\\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\\b/,\n constant:\n /\\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\\b/,\n builtin:\n /\\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\\b/\n })\n Prism.languages.ino = Prism.languages.arduino\n}\n","'use strict'\n\nmodule.exports = arff\narff.displayName = 'arff'\narff.aliases = []\nfunction arff(Prism) {\n Prism.languages.arff = {\n comment: /%.*/,\n string: {\n pattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: /@(?:attribute|data|end|relation)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n punctuation: /[{},]/\n }\n}\n","'use strict'\n\nmodule.exports = asciidoc\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\nfunction asciidoc(Prism) {\n ;(function (Prism) {\n var attributes = {\n pattern:\n /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n lookbehind: true,\n inside: {\n quoted: {\n pattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n inside: {\n punctuation: /^[$`]|[$`]$/\n }\n },\n interpreted: {\n pattern: /'(?:[^'\\\\]|\\\\.)*'/,\n inside: {\n punctuation: /^'|'$/ // See rest below\n }\n },\n string: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n variable: /\\w+(?==)/,\n punctuation: /^\\[|\\]$|,/,\n operator: /=/,\n // The negative look-ahead prevents blank matches\n 'attr-value': /(?!^\\s+$).+/\n }\n }\n var asciidoc = (Prism.languages.asciidoc = {\n 'comment-block': {\n pattern: /^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,\n alias: 'comment'\n },\n table: {\n pattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n inside: {\n specifiers: {\n pattern:\n /(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*](?:[<^>](?:\\.[<^>])?|\\.[<^>])?|[<^>](?:\\.[<^>])?|\\.[<^>])[a-z]*|[a-z]+)(?=\\|)/,\n alias: 'attr-value'\n },\n punctuation: {\n pattern: /(^|[^\\\\])[|!]=*/,\n lookbehind: true\n } // See rest below\n }\n },\n 'passthrough-block': {\n pattern: /^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^\\++|\\++$/ // See rest below\n }\n },\n // Literal blocks and listing blocks\n 'literal-block': {\n pattern: /^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/ // See rest below\n }\n },\n // Sidebar blocks, quote blocks, example blocks and open blocks\n 'other-block': {\n pattern:\n /^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/ // See rest below\n }\n },\n // list-punctuation and list-label must appear before indented-block\n 'list-punctuation': {\n pattern:\n /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'list-label': {\n pattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'indented-block': {\n pattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n lookbehind: true\n },\n comment: /^\\/\\/.*/m,\n title: {\n pattern:\n /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n alias: 'important',\n inside: {\n punctuation: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/ // See rest below\n }\n },\n 'attribute-entry': {\n pattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n alias: 'tag'\n },\n attributes: attributes,\n hr: {\n pattern: /^'{3,}$/m,\n alias: 'punctuation'\n },\n 'page-break': {\n pattern: /^<{3,}$/m,\n alias: 'punctuation'\n },\n admonition: {\n pattern: /^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,\n alias: 'keyword'\n },\n callout: [\n {\n pattern: /(^[ \\t]*)<?\\d*>/m,\n lookbehind: true,\n alias: 'symbol'\n },\n {\n pattern: /<\\d+>/,\n alias: 'symbol'\n }\n ],\n macro: {\n pattern:\n /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: {\n function: /^[a-z\\d-]+(?=:)/,\n punctuation: /^::?/,\n attributes: {\n pattern: /(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: attributes.inside\n }\n }\n },\n inline: {\n /*\nThe initial look-behind prevents the highlighting of escaped quoted text.\nQuoted text can be multi-line but cannot span an empty line.\nAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\nFirst, we handle the constrained quotes.\nThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\nThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\nThen we handle the unconstrained quotes.\nThose do not have the restrictions of the constrained quotes.\nThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))\n*/\n pattern:\n /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n lookbehind: true,\n inside: {\n attributes: attributes,\n url: {\n pattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n inside: {\n punctuation: /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n }\n },\n 'attribute-ref': {\n pattern: /^\\{.+\\}$/,\n inside: {\n variable: {\n pattern: /(^\\{)[a-z\\d,+_-]+/,\n lookbehind: true\n },\n operator: /^[=?!#%@$]|!(?=[:}])/,\n punctuation: /^\\{|\\}$|::?/\n }\n },\n italic: {\n pattern: /^(['_])[\\s\\S]+\\1$/,\n inside: {\n punctuation: /^(?:''?|__?)|(?:''?|__?)$/\n }\n },\n bold: {\n pattern: /^\\*[\\s\\S]+\\*$/,\n inside: {\n punctuation: /^\\*\\*?|\\*\\*?$/\n }\n },\n punctuation:\n /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n }\n },\n replacement: {\n pattern: /\\((?:C|R|TM)\\)/,\n alias: 'builtin'\n },\n entity: /&#?[\\da-z]{1,8};/i,\n 'line-continuation': {\n pattern: /(^| )\\+$/m,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Allow some nesting. There is no recursion though, so cloning should not be needed.\n function copyFromAsciiDoc(keys) {\n keys = keys.split(' ')\n var o = {}\n for (var i = 0, l = keys.length; i < l; i++) {\n o[keys[i]] = asciidoc[keys[i]]\n }\n return o\n }\n attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n )\n asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro')\n asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout')\n asciidoc['table'].inside.rest = copyFromAsciiDoc(\n 'comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'\n )\n asciidoc['other-block'].inside.rest = copyFromAsciiDoc(\n 'table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'\n )\n asciidoc['title'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n ) // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&/, '&')\n }\n })\n Prism.languages.adoc = Prism.languages.asciidoc\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = asm6502\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\nfunction asm6502(Prism) {\n Prism.languages.asm6502 = {\n comment: /;.*/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'property'\n },\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n 'op-code': {\n pattern:\n /\\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\\b/,\n alias: 'keyword'\n },\n 'hex-number': {\n pattern: /#?\\$[\\da-f]{1,4}\\b/i,\n alias: 'number'\n },\n 'binary-number': {\n pattern: /#?%[01]+\\b/,\n alias: 'number'\n },\n 'decimal-number': {\n pattern: /#?\\b\\d+\\b/,\n alias: 'number'\n },\n register: {\n pattern: /\\b[xya]\\b/i,\n alias: 'variable'\n },\n punctuation: /[(),:]/\n }\n}\n","'use strict'\n\nmodule.exports = asmatmel\nasmatmel.displayName = 'asmatmel'\nasmatmel.aliases = []\nfunction asmatmel(Prism) {\n Prism.languages.asmatmel = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n constant: /\\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\\d|[0-2]\\d|3[01]))\\b/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'property'\n },\n 'r-register': {\n pattern: /\\br(?:\\d|[12]\\d|3[01])\\b/,\n alias: 'variable'\n },\n 'op-code': {\n pattern:\n /\\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\\b/,\n alias: 'keyword'\n },\n 'hex-number': {\n pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n alias: 'number'\n },\n 'binary-number': {\n pattern: /#?%[01]+\\b/,\n alias: 'number'\n },\n 'decimal-number': {\n pattern: /#?\\b\\d+\\b/,\n alias: 'number'\n },\n register: {\n pattern: /\\b[acznvshtixy]\\b/i,\n alias: 'variable'\n },\n operator: />>=?|<<=?|&&?|\\|\\|?|[-+*/%&|^!=<>?]=?/,\n punctuation: /[(),:]/\n }\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = aspnet\naspnet.displayName = 'aspnet'\naspnet.aliases = []\nfunction aspnet(Prism) {\n Prism.register(refractorCsharp)\n Prism.languages.aspnet = Prism.languages.extend('markup', {\n 'page-directive': {\n pattern: /<%\\s*@.*%>/,\n alias: 'tag',\n inside: {\n 'page-directive': {\n pattern:\n /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n alias: 'tag'\n },\n rest: Prism.languages.markup.tag.inside\n }\n },\n directive: {\n pattern: /<%.*%>/,\n alias: 'tag',\n inside: {\n directive: {\n pattern: /<%\\s*?[$=%#:]{0,2}|%>/,\n alias: 'tag'\n },\n rest: Prism.languages.csharp\n }\n }\n }) // Regexp copied from prism-markup, with a negative look-ahead added\n Prism.languages.aspnet.tag.pattern =\n /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/ // match directives of attribute value foo=\"<% Bar %>\"\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n directive: Prism.languages.aspnet['directive']\n },\n Prism.languages.aspnet.tag.inside['attr-value']\n )\n Prism.languages.insertBefore('aspnet', 'comment', {\n 'asp-comment': {\n pattern: /<%--[\\s\\S]*?--%>/,\n alias: ['asp', 'comment']\n }\n }) // script runat=\"server\" contains csharp, not javascript\n Prism.languages.insertBefore(\n 'aspnet',\n Prism.languages.javascript ? 'script' : 'tag',\n {\n 'asp-script': {\n pattern:\n /(<script(?=.*runat=['\"]?server\\b)[^>]*>)[\\s\\S]*?(?=<\\/script>)/i,\n lookbehind: true,\n alias: ['asp', 'script'],\n inside: Prism.languages.csharp || {}\n }\n }\n )\n}\n","'use strict'\n\nmodule.exports = autohotkey\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\nfunction autohotkey(Prism) {\n // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\n Prism.languages.autohotkey = {\n comment: [\n {\n pattern: /(^|\\s);.*/,\n lookbehind: true\n },\n {\n pattern:\n /(^[\\t ]*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n lookbehind: true,\n greedy: true\n }\n ],\n tag: {\n // labels\n pattern: /^([ \\t]*)[^\\s,`\":]+(?=:[ \\t]*$)/m,\n lookbehind: true\n },\n string: /\"(?:[^\"\\n\\r]|\"\")*\"/,\n variable: /%\\w+%/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator:\n /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n selector:\n /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n constant:\n /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\\b/i,\n builtin:\n /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\\b/i,\n symbol:\n /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n important:\n /#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\\b/i,\n keyword:\n /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n function: /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+(?=\\()/,\n punctuation: /[{}[\\]():,]/\n }\n}\n","'use strict'\n\nmodule.exports = autoit\nautoit.displayName = 'autoit'\nautoit.aliases = []\nfunction autoit(Prism) {\n Prism.languages.autoit = {\n comment: [\n /;.*/,\n {\n // The multi-line comments delimiters can actually be commented out with \";\"\n pattern:\n /(^[\\t ]*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:ce|comments-end)/m,\n lookbehind: true\n }\n ],\n url: {\n pattern: /(^[\\t ]*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n greedy: true,\n inside: {\n variable: /([%$@])\\w+\\1/\n }\n },\n directive: {\n pattern: /(^[\\t ]*)#[\\w-]+/m,\n lookbehind: true,\n alias: 'keyword'\n },\n function: /\\b\\w+(?=\\()/,\n // Variables and macros\n variable: /[$@]\\w+/,\n keyword:\n /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n boolean: /\\b(?:False|True)\\b/i,\n operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[\\[\\]().,:]/\n }\n}\n","'use strict'\n\nmodule.exports = avisynth\navisynth.displayName = 'avisynth'\navisynth.aliases = ['avs']\nfunction avisynth(Prism) {\n // http://avisynth.nl/index.php/The_full_AviSynth_grammar\n ;(function (Prism) {\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return replacements[+index]\n })\n }\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n var types = /bool|clip|float|int|string|val/.source\n var internals = [\n // bools\n /is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/\n .source, // control\n /apply|assert|default|eval|import|nop|select|undefined/.source, // global\n /opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/\n .source, // conv\n /hex(?:value)?|value/.source, // numeric\n /abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/\n .source, // trig\n /a?sinh?|a?cosh?|a?tan[2h]?/.source, // bit\n /(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/\n .source, // runtime\n /average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/\n .source, // script\n /getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/\n .source, // string\n /chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/\n .source, // version\n /isversionorgreater|version(?:number|string)/.source, // helper\n /buildpixeltype|colorspacenametopixeltype/.source, // avsplus\n /addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source\n ].join('|')\n var properties = [\n // content\n /has(?:audio|video)/.source, // resolution\n /height|width/.source, // framerate\n /frame(?:count|rate)|framerate(?:denominator|numerator)/.source, // interlacing\n /getparity|is(?:field|frame)based/.source, // color format\n /bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/\n .source, // audio\n /audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/\n .source\n ].join('|')\n var filters = [\n // source\n /avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/\n .source, // color\n /coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/\n .source, // overlay\n /(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source, // geometry\n /addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/\n .source, // pixel\n /blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/\n .source, // timeline\n /trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/\n .source, // interlace\n /assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/\n .source, // audio\n /amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/\n .source, // conditional\n /animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/\n .source, // export\n /imagewriter/.source, // debug\n /blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/\n .source\n ].join('|')\n var allinternals = [internals, properties, filters].join('|')\n Prism.languages.avisynth = {\n comment: [\n {\n // Matches [* *] nestable block comments, but only supports 1 level of nested comments\n // /\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|<self>)*\\*\\]/\n pattern:\n /(^|[^\\\\])\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\]))*\\*\\])*\\*\\]/,\n lookbehind: true,\n greedy: true\n },\n {\n // Matches /* */ block comments\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n // Matches # comments\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // Handle before strings because optional arguments are surrounded by double quotes\n argument: {\n pattern: re(/\\b(?:<<0>>)\\s+(\"?)\\w+\\1/.source, [types], 'i'),\n inside: {\n keyword: /^\\w+/\n }\n },\n // Optional argument assignment\n 'argument-label': {\n pattern: /([,(][\\s\\\\]*)\\w+\\s*=(?!=)/,\n lookbehind: true,\n inside: {\n 'argument-name': {\n pattern: /^\\w+/,\n alias: 'punctuation'\n },\n punctuation: /=$/\n }\n },\n string: [\n {\n // triple double-quoted\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n // single double-quoted\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true,\n inside: {\n constant: {\n // These *are* case-sensitive!\n pattern:\n /\\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\\b/\n }\n }\n }\n ],\n // The special \"last\" variable that takes the value of the last implicitly returned clip\n variable: /\\b(?:last)\\b/i,\n boolean: /\\b(?:false|no|true|yes)\\b/i,\n keyword:\n /\\b(?:catch|else|for|function|global|if|return|try|while|__END__)\\b/i,\n constant: /\\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\\b/,\n // AviSynth's internal functions, filters, and properties\n 'builtin-function': {\n pattern: re(/\\b(?:<<0>>)\\b/.source, [allinternals], 'i'),\n alias: 'function'\n },\n 'type-cast': {\n pattern: re(/\\b(?:<<0>>)(?=\\s*\\()/.source, [types], 'i'),\n alias: 'keyword'\n },\n // External/user-defined filters\n function: {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()|(\\.)[a-z_]\\w*\\b/i,\n lookbehind: true\n },\n // Matches a \\ as the first or last character on a line\n 'line-continuation': {\n pattern: /(^[ \\t]*)\\\\|\\\\(?=[ \\t]*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n number:\n /\\B\\$(?:[\\da-f]{6}|[\\da-f]{8})\\b|(?:(?:\\b|\\B-)\\d+(?:\\.\\d*)?\\b|\\B\\.\\d+\\b)/i,\n operator: /\\+\\+?|[!=<>]=?|&&|\\|\\||[?:*/%-]/,\n punctuation: /[{}\\[\\]();,.]/\n }\n Prism.languages.avs = Prism.languages.avisynth\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = avroIdl\navroIdl.displayName = 'avroIdl'\navroIdl.aliases = []\nfunction avroIdl(Prism) {\n // GitHub: https://github.com/apache/avro\n // Docs: https://avro.apache.org/docs/current/idl.html\n Prism.languages['avro-idl'] = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n annotation: {\n pattern: /@(?:[$\\w.-]|`[^\\r\\n`]+`)+/,\n greedy: true,\n alias: 'function'\n },\n 'function-identifier': {\n pattern: /`[^\\r\\n`]+`(?=\\s*\\()/,\n greedy: true,\n alias: 'function'\n },\n identifier: {\n pattern: /`[^\\r\\n`]+`/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:enum|error|protocol|record|throws)\\b\\s+)[$\\w]+/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: [\n {\n pattern:\n /(^|[^\\w.])-?(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|0x(?:[a-f0-9]+(?:\\.[a-f0-9]*)?|\\.[a-f0-9]+)(?:p[+-]?\\d+)?)[dfl]?(?![\\w.])/i,\n lookbehind: true\n },\n /-?\\b(?:Infinity|NaN)\\b/\n ],\n operator: /=/,\n punctuation: /[()\\[\\]{}<>.:,;-]/\n }\n Prism.languages.avdl = Prism.languages['avro-idl']\n}\n","'use strict'\n\nmodule.exports = bash\nbash.displayName = 'bash'\nbash.aliases = ['shell']\nfunction bash(Prism) {\n ;(function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars =\n '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n }\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [\n // [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [\n {\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n },\n /^\\$\\(\\(/\n ],\n number:\n /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator:\n /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n }, // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n }, // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n },\n /\\$(?:\\w+|[#?*!@$])/\n ],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity:\n /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n }\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [\n // a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {â€\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n },\n {\n // b)\n pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }\n ],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=†and “+=â€).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n string: [\n // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, // Here-document with quotes around the tag\n // → No expansion (so no “insideâ€).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n }, // “Normal†string\n {\n // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n pattern: /(^|[^$\\\\])'[^']*'/,\n lookbehind: true,\n greedy: true\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n entity: insideString.entity\n }\n }\n ],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern:\n /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n }\n commandAfterHeredoc.inside = Prism.languages.bash\n /* Patterns in command substitution. */\n var toBeCopied = [\n 'comment',\n 'function-name',\n 'for-or-select',\n 'assign-left',\n 'string',\n 'environment',\n 'function',\n 'keyword',\n 'builtin',\n 'boolean',\n 'file-descriptor',\n 'operator',\n 'punctuation',\n 'number'\n ]\n var inside = insideString.variable[1].inside\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n }\n Prism.languages.shell = Prism.languages.bash\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = basic\nbasic.displayName = 'basic'\nbasic.aliases = []\nfunction basic(Prism) {\n Prism.languages.basic = {\n comment: {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n greedy: true\n },\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n function:\n /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n punctuation: /[,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = batch\nbatch.displayName = 'batch'\nbatch.aliases = []\nfunction batch(Prism) {\n ;(function (Prism) {\n var variable = /%%?[~:\\w]+%?|!\\S+!/\n var parameter = {\n pattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n alias: 'attr-name',\n inside: {\n punctuation: /:/\n }\n }\n var string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/\n var number = /(?:\\b|-)\\d+\\b/\n Prism.languages.batch = {\n comment: [\n /^::.*/m,\n {\n pattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true\n }\n ],\n label: {\n pattern: /^:.*/m,\n alias: 'property'\n },\n command: [\n {\n // FOR command\n pattern:\n /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:do|in)\\b|^for\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n punctuation: /[()',]/\n }\n },\n {\n // IF command\n pattern:\n /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n lookbehind: true,\n inside: {\n keyword:\n /\\b(?:cmdextversion|defined|errorlevel|exist|not)\\b|^if\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n operator: /\\^|==|\\b(?:equ|geq|gtr|leq|lss|neq)\\b/i\n }\n },\n {\n // ELSE command\n pattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n lookbehind: true,\n inside: {\n keyword: /^else\\b/i\n }\n },\n {\n // SET command\n pattern:\n /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n inside: {\n keyword: /^set\\b/i,\n string: string,\n parameter: parameter,\n variable: [variable, /\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],\n number: number,\n operator: /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n punctuation: /[()',]/\n }\n },\n {\n // Other commands\n pattern:\n /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/m,\n lookbehind: true,\n inside: {\n keyword: /^\\w+\\b/,\n string: string,\n parameter: parameter,\n label: {\n pattern: /(^\\s*):\\S+/m,\n lookbehind: true,\n alias: 'property'\n },\n variable: variable,\n number: number,\n operator: /\\^/\n }\n }\n ],\n operator: /[&@]/,\n punctuation: /[()']/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = bbcode\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\nfunction bbcode(Prism) {\n Prism.languages.bbcode = {\n tag: {\n pattern:\n /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n inside: {\n tag: {\n pattern: /^\\[\\/?[^\\s=\\]]+/,\n inside: {\n punctuation: /^\\[\\/?/\n }\n },\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ]\n }\n },\n punctuation: /\\]/,\n 'attr-name': /[^\\s=\\]]+/\n }\n }\n }\n Prism.languages.shortcode = Prism.languages.bbcode\n}\n","'use strict'\n\nmodule.exports = bicep\nbicep.displayName = 'bicep'\nbicep.aliases = []\nfunction bicep(Prism) {\n // based loosely upon: https://github.com/Azure/bicep/blob/main/src/textmate/bicep.tmlanguage\n Prism.languages.bicep = {\n comment: [\n {\n // multiline comments eg /* ASDF */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n // singleline comments eg // ASDF\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n property: [\n {\n pattern: /([\\r\\n][ \\t]*)[a-z_]\\w*(?=[ \\t]*:)/i,\n lookbehind: true\n },\n {\n pattern: /([\\r\\n][ \\t]*)'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: /'''[^'][\\s\\S]*?'''/,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'interpolated-string': {\n pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?:(?!\\{)|\\{[^{}\\r\\n]*\\})|[^'\\\\\\r\\n$])*'/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}\\r\\n]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true\n },\n punctuation: /^\\$\\{|\\}$/\n }\n },\n string: /[\\s\\S]+/\n }\n },\n datatype: {\n pattern: /(\\b(?:output|param)\\b[ \\t]+\\w+[ \\t]+)\\w+\\b/,\n lookbehind: true,\n alias: 'class-name'\n },\n boolean: /\\b(?:false|true)\\b/,\n // https://github.com/Azure/bicep/blob/114a3251b4e6e30082a58729f19a8cc4e374ffa6/src/textmate/bicep.tmlanguage#L184\n keyword:\n /\\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\\b/,\n decorator: /@\\w+\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.bicep['interpolated-string'].inside['interpolation'].inside[\n 'expression'\n ].inside = Prism.languages.bicep\n}\n","'use strict'\n\nmodule.exports = birb\nbirb.displayName = 'birb'\nbirb.aliases = []\nfunction birb(Prism) {\n Prism.languages.birb = Prism.languages.extend('clike', {\n string: {\n pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'class-name': [\n /\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/, // matches variable and function return types (parameters as well).\n /\\b(?:[A-Z]\\w*|(?!(?:var|void)\\b)[a-z]\\w*)(?=\\s+\\w+\\s*[;,=()])/\n ],\n keyword:\n /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n variable: /\\b[a-z_]\\w*\\b/\n })\n Prism.languages.insertBefore('birb', 'function', {\n metadata: {\n pattern: /<\\w+>/,\n greedy: true,\n alias: 'symbol'\n }\n })\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = bison\nbison.displayName = 'bison'\nbison.aliases = []\nfunction bison(Prism) {\n Prism.register(refractorC)\n Prism.languages.bison = Prism.languages.extend('c', {})\n Prism.languages.insertBefore('bison', 'comment', {\n bison: {\n // This should match all the beginning of the file\n // including the prologue(s), the bison declarations and\n // the grammar rules.\n pattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n inside: {\n c: {\n // Allow for one level of nested braces\n pattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n inside: {\n delimiter: {\n pattern: /^%?\\{|%?\\}$/,\n alias: 'punctuation'\n },\n 'bison-variable': {\n pattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n alias: 'variable',\n inside: {\n punctuation: /<|>/\n }\n },\n rest: Prism.languages.c\n }\n },\n comment: Prism.languages.c.comment,\n string: Prism.languages.c.string,\n property: /\\S+(?=:)/,\n keyword: /%\\w+/,\n number: {\n pattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n lookbehind: true\n },\n punctuation: /%[%?]|[|:;\\[\\]<>]/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = bnf\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\nfunction bnf(Prism) {\n Prism.languages.bnf = {\n string: {\n pattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n },\n definition: {\n pattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n alias: ['rule', 'keyword'],\n inside: {\n punctuation: /^<|>$/\n }\n },\n rule: {\n pattern: /<[^<>\\r\\n\\t]+>/,\n inside: {\n punctuation: /^<|>$/\n }\n },\n operator: /::=|[|()[\\]{}*+?]|\\.{3}/\n }\n Prism.languages.rbnf = Prism.languages.bnf\n}\n","'use strict'\n\nmodule.exports = brainfuck\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\nfunction brainfuck(Prism) {\n Prism.languages.brainfuck = {\n pointer: {\n pattern: /<|>/,\n alias: 'keyword'\n },\n increment: {\n pattern: /\\+/,\n alias: 'inserted'\n },\n decrement: {\n pattern: /-/,\n alias: 'deleted'\n },\n branching: {\n pattern: /\\[|\\]/,\n alias: 'important'\n },\n operator: /[.,]/,\n comment: /\\S+/\n }\n}\n","'use strict'\n\nmodule.exports = brightscript\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\nfunction brightscript(Prism) {\n Prism.languages.brightscript = {\n comment: /(?:\\brem|').*/i,\n 'directive-statement': {\n pattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n lookbehind: true,\n alias: 'property',\n inside: {\n 'error-message': {\n pattern: /(^#error).+/,\n lookbehind: true\n },\n directive: {\n pattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n alias: 'keyword'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n property: {\n pattern:\n /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\bAs[\\t ]+)\\w+/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/,\n number: /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n operator:\n /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n punctuation: /[.,;()[\\]{}]/,\n constant: /\\b(?:LINE_NUM)\\b/i\n }\n Prism.languages.brightscript['directive-statement'].inside.expression.inside =\n Prism.languages.brightscript\n}\n","'use strict'\n\nmodule.exports = bro\nbro.displayName = 'bro'\nbro.aliases = []\nfunction bro(Prism) {\n Prism.languages.bro = {\n comment: {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n inside: {\n italic: /\\b(?:FIXME|TODO|XXX)\\b/\n }\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n boolean: /\\b[TF]\\b/,\n function: {\n pattern: /(\\b(?:event|function|hook)[ \\t]+)\\w+(?:::\\w+)?/,\n lookbehind: true\n },\n builtin:\n /(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,\n constant: {\n pattern: /(\\bconst[ \\t]+)\\w+/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\\b/,\n operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = bsl\nbsl.displayName = 'bsl'\nbsl.aliases = []\nfunction bsl(Prism) {\n /* eslint-disable no-misleading-character-class */\n // 1C:Enterprise\n // https://github.com/Diversus23/\n //\n Prism.languages.bsl = {\n comment: /\\/\\/.*/,\n string: [\n // Строки\n // Strings\n {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n }, // Дата и времÑ\n // Date & time\n {\n pattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n }\n ],\n keyword: [\n {\n // RU\n pattern:\n /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:пока|длÑ|новый|прервать|попытка|иÑключение|вызватьиÑключение|иначе|конецпопытки|неопределено|функциÑ|перем|возврат|конецфункции|еÑли|иначееÑли|процедура|конецпроцедуры|тогда|знач|ÑкÑпорт|конецеÑли|из|каждого|иÑтина|ложь|по|цикл|конеццикла|выполнить)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n },\n {\n // EN\n pattern:\n /\\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\\b/i\n }\n ],\n number: {\n pattern:\n /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n lookbehind: true\n },\n operator: [\n /[<>+\\-*/]=?|[%=]/, // RU\n {\n pattern:\n /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:и|или|не)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n }, // EN\n {\n pattern: /\\b(?:and|not|or)\\b/i\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n directive: [\n // Теги препроцеÑÑора вида &Клиент, &Сервер, ...\n // Preprocessor tags of the type &Client, &Server, ...\n {\n pattern: /^([ \\t]*)&.*/m,\n lookbehind: true,\n greedy: true,\n alias: 'important'\n }, // ИнÑтрукции препроцеÑÑора вида:\n // #ЕÑли Сервер Тогда\n // ...\n // #КонецЕÑли\n // Preprocessor instructions of the form:\n // #If Server Then\n // ...\n // #EndIf\n {\n pattern: /^([ \\t]*)#.*/gm,\n lookbehind: true,\n greedy: true,\n alias: 'important'\n }\n ]\n }\n Prism.languages.oscript = Prism.languages['bsl']\n}\n","'use strict'\n\nmodule.exports = c\nc.displayName = 'c'\nc.aliases = []\nfunction c(Prism) {\n Prism.languages.c = Prism.languages.extend('clike', {\n comment: {\n pattern:\n /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n string: {\n // https://en.cppreference.com/w/c/language/string_literal\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n lookbehind: true\n },\n keyword:\n /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n })\n Prism.languages.insertBefore('c', 'string', {\n char: {\n // https://en.cppreference.com/w/c/language/character_constant\n pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('c', 'string', {\n macro: {\n // allow for multiline macro definitions\n // spaces after the # character compile fine with gcc\n pattern:\n /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n string: [\n {\n // highlight the path of the include statement as a string\n pattern: /^(#\\s*include\\s*)<[^>]+>/,\n lookbehind: true\n },\n Prism.languages.c['string']\n ],\n char: Prism.languages.c['char'],\n comment: Prism.languages.c['comment'],\n 'macro-name': [\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n lookbehind: true\n },\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n lookbehind: true,\n alias: 'function'\n }\n ],\n // highlight macro directives as keywords\n directive: {\n pattern: /^(#\\s*)[a-z]+/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'directive-hash': /^#/,\n punctuation: /##|\\\\(?=[\\r\\n])/,\n expression: {\n pattern: /\\S[\\s\\S]*/,\n inside: Prism.languages.c\n }\n }\n }\n })\n Prism.languages.insertBefore('c', 'function', {\n // highlight predefined macros as constants\n constant:\n /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n })\n delete Prism.languages.c['boolean']\n}\n","'use strict'\n\nmodule.exports = cfscript\ncfscript.displayName = 'cfscript'\ncfscript.aliases = []\nfunction cfscript(Prism) {\n // https://cfdocs.org/script\n Prism.languages.cfscript = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n inside: {\n annotation: {\n pattern: /(?:^|[^.])@[\\w\\.]+/,\n alias: 'punctuation'\n }\n }\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n keyword:\n /\\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\\b(?!\\s*=)/,\n operator: [\n /\\+\\+|--|&&|\\|\\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\\?(?:\\.|:)?|[?:]/,\n /\\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\\b/\n ],\n scope: {\n pattern:\n /\\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\\b/,\n alias: 'global'\n },\n type: {\n pattern:\n /\\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\\b/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('cfscript', 'keyword', {\n // This must be declared before keyword because we use \"function\" inside the lookahead\n 'function-variable': {\n pattern:\n /[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n }\n })\n delete Prism.languages.cfscript['class-name']\n Prism.languages.cfc = Prism.languages['cfscript']\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = chaiscript\nchaiscript.displayName = 'chaiscript'\nchaiscript.aliases = []\nfunction chaiscript(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.chaiscript = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n {\n // e.g. class Rectangle { ... }\n pattern: /(\\bclass\\s+)\\w+/,\n lookbehind: true\n },\n {\n // e.g. attr Rectangle::height, def Rectangle::area() { ... }\n pattern: /(\\b(?:attr|def)\\s+)\\w+(?=\\s*::)/,\n lookbehind: true\n }\n ],\n keyword:\n /\\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\\b/,\n number: [Prism.languages.cpp.number, /\\b(?:Infinity|NaN)\\b/],\n operator:\n />>=?|<<=?|\\|\\||&&|:[:=]?|--|\\+\\+|[=!<>+\\-*/%|&^]=?|[?~]|`[^`\\r\\n]{1,4}`/\n })\n Prism.languages.insertBefore('chaiscript', 'operator', {\n 'parameter-type': {\n // e.g. def foo(int x, Vector y) {...}\n pattern: /([,(]\\s*)\\w+(?=\\s+\\w)/,\n lookbehind: true,\n alias: 'class-name'\n }\n })\n Prism.languages.insertBefore('chaiscript', 'string', {\n 'string-interpolation': {\n pattern:\n /(^|[^\\\\])\"(?:[^\"$\\\\]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-expression': {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.chaiscript\n },\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = cil\ncil.displayName = 'cil'\ncil.aliases = []\nfunction cil(Prism) {\n Prism.languages.cil = {\n comment: /\\/\\/.*/,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n directive: {\n pattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n lookbehind: true,\n alias: 'class-name'\n },\n // Actually an assembly reference\n variable: /\\[[\\w\\.]+\\]/,\n keyword:\n /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n function:\n /\\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.\\d+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.\\d+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|castclass|ldvirtftn|beq(?:\\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b-?(?:0x[0-9a-f]+|\\d+)(?:\\.[0-9a-f]+)?\\b/i,\n punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n }\n}\n","'use strict'\n\nmodule.exports = clike\nclike.displayName = 'clike'\nclike.aliases = []\nfunction clike(Prism) {\n Prism.languages.clike = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = clojure\nclojure.displayName = 'clojure'\nclojure.aliases = []\nfunction clojure(Prism) {\n // Copied from https://github.com/jeluard/prism-clojure\n Prism.languages.clojure = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n char: /\\\\\\w+/,\n symbol: {\n pattern: /(^|[\\s()\\[\\]{},])::?[\\w*+!?'<>=/.-]+/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(\\()(?:-|->|->>|\\.|\\.\\.|\\*|\\/|\\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[\\s)]|$)/,\n lookbehind: true\n },\n boolean: /\\b(?:false|nil|true)\\b/,\n number: {\n pattern:\n /(^|[^\\w$@])(?:\\d+(?:[/.]\\d+)?(?:e[+-]?\\d+)?|0x[a-f0-9]+|[1-9]\\d?r[a-z0-9]+)[lmn]?(?![\\w$@])/i,\n lookbehind: true\n },\n function: {\n pattern: /((?:^|[^'])\\()[\\w*+!?'<>=/.-]+(?=[\\s)]|$)/,\n lookbehind: true\n },\n operator: /[#@^`~]/,\n punctuation: /[{}\\[\\](),]/\n }\n}\n","'use strict'\n\nmodule.exports = cmake\ncmake.displayName = 'cmake'\ncmake.aliases = []\nfunction cmake(Prism) {\n Prism.languages.cmake = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{(?:[^{}$]|\\$\\{[^{}$]*\\})*\\}/,\n inside: {\n punctuation: /\\$\\{|\\}/,\n variable: /\\w+/\n }\n }\n }\n },\n variable:\n /\\b(?:CMAKE_\\w+|\\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\\b/,\n property:\n /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n keyword:\n /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n boolean: /\\b(?:FALSE|OFF|ON|TRUE)\\b/,\n namespace:\n /\\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\\b/,\n operator:\n /\\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\\b/,\n inserted: {\n pattern: /\\b\\w+::\\w+\\b/,\n alias: 'class-name'\n },\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n punctuation: /[()>}]|\\$[<{]/\n }\n}\n","'use strict'\n\nmodule.exports = cobol\ncobol.displayName = 'cobol'\ncobol.aliases = []\nfunction cobol(Prism) {\n Prism.languages.cobol = {\n comment: {\n pattern: /\\*>.*|(^[ \\t]*)\\*.*/m,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /[xzgn]?(?:\"(?:[^\\r\\n\"]|\"\")*\"(?!\")|'(?:[^\\r\\n']|'')*'(?!'))/i,\n greedy: true\n },\n level: {\n pattern: /(^[ \\t]*)\\d+\\b/m,\n lookbehind: true,\n greedy: true,\n alias: 'number'\n },\n 'class-name': {\n // https://github.com/antlr/grammars-v4/blob/42edd5b687d183b5fa679e858a82297bd27141e7/cobol85/Cobol85.g4#L1015\n pattern:\n /(\\bpic(?:ture)?\\s+)(?:(?:[-\\w$/,:*+<>]|\\.(?!\\s|$))(?:\\(\\d+\\))?)+/i,\n lookbehind: true,\n inside: {\n number: {\n pattern: /(\\()\\d+/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n keyword: {\n pattern:\n /(^|[^\\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\\w-])/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^\\w-])(?:false|true)(?![\\w-])/i,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^\\w-])(?:[+-]?(?:(?:\\d+(?:[.,]\\d+)?|[.,]\\d+)(?:e[+-]?\\d+)?|zero))(?![\\w-])/i,\n lookbehind: true\n },\n operator: [\n /<>|[<>]=?|[=+*/&]/,\n {\n pattern: /(^|[^\\w-])(?:-|and|equal|greater|less|not|or|than)(?![\\w-])/i,\n lookbehind: true\n }\n ],\n punctuation: /[.:,()]/\n }\n}\n","'use strict'\n\nmodule.exports = coffeescript\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\nfunction coffeescript(Prism) {\n ;(function (Prism) {\n // Ignore comments starting with { to privilege string interpolation highlighting\n var comment = /#(?!\\{).+/\n var interpolation = {\n pattern: /#\\{[^}]+\\}/,\n alias: 'variable'\n }\n Prism.languages.coffeescript = Prism.languages.extend('javascript', {\n comment: comment,\n string: [\n // Strings are multiline\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n greedy: true\n },\n {\n // Strings are multiline\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n }\n ],\n keyword:\n /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n 'class-member': {\n pattern: /@(?!\\d)\\w+/,\n alias: 'variable'\n }\n })\n Prism.languages.insertBefore('coffeescript', 'comment', {\n 'multiline-comment': {\n pattern: /###[\\s\\S]+?###/,\n alias: 'comment'\n },\n // Block regexp can contain comments and interpolation\n 'block-regex': {\n pattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n alias: 'regex',\n inside: {\n comment: comment,\n interpolation: interpolation\n }\n }\n })\n Prism.languages.insertBefore('coffeescript', 'string', {\n 'inline-javascript': {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n },\n script: {\n pattern: /[\\s\\S]+/,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n }\n }\n },\n // Block strings\n 'multiline-string': [\n {\n pattern: /'''[\\s\\S]*?'''/,\n greedy: true,\n alias: 'string'\n },\n {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string',\n inside: {\n interpolation: interpolation\n }\n }\n ]\n })\n Prism.languages.insertBefore('coffeescript', 'keyword', {\n // Object property\n property: /(?!\\d)\\w+(?=\\s*:(?!:))/\n })\n delete Prism.languages.coffeescript['template-string']\n Prism.languages.coffee = Prism.languages.coffeescript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = concurnas\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\nfunction concurnas(Prism) {\n Prism.languages.concurnas = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n langext: {\n pattern: /\\b\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n greedy: true,\n inside: {\n 'class-name': /^\\w+/,\n string: {\n pattern: /(^\\s*\\|\\|)[\\s\\S]+(?=\\|\\|$)/,\n lookbehind: true\n },\n punctuation: /\\|\\|/\n }\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n lookbehind: true\n },\n keyword:\n /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number:\n /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n punctuation: /[{}[\\];(),.:]/,\n operator:\n /<==|>==|=>|->|<-|<>|&==|&<>|\\?:?|\\.\\?|\\+\\+|--|[-+*/=<>]=?|[!^~]|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n annotation: {\n pattern: /@(?:\\w+:)?(?:\\w+|\\[[^\\]]+\\])?/,\n alias: 'builtin'\n }\n }\n Prism.languages.insertBefore('concurnas', 'langext', {\n 'regex-literal': {\n pattern: /\\br(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n regex: /[\\s\\S]+/\n }\n },\n 'string-literal': {\n pattern: /(?:\\B|\\bs)(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.conc = Prism.languages.concurnas\n}\n","'use strict'\n\nmodule.exports = coq\ncoq.displayName = 'coq'\ncoq.aliases = []\nfunction coq(Prism) {\n ;(function (Prism) {\n // https://github.com/coq/coq\n var commentSource = /\\(\\*(?:[^(*]|\\((?!\\*)|\\*(?!\\))|<self>)*\\*\\)/.source\n for (var i = 0; i < 2; i++) {\n commentSource = commentSource.replace(/<self>/g, function () {\n return commentSource\n })\n }\n commentSource = commentSource.replace(/<self>/g, '[]')\n Prism.languages.coq = {\n comment: RegExp(commentSource),\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n attribute: [\n {\n pattern: RegExp(\n /#\\[(?:[^\\[\\](\"]|\"(?:[^\"]|\"\")*\"(?!\")|\\((?!\\*)|<comment>)*\\]/.source.replace(\n /<comment>/g,\n function () {\n return commentSource\n }\n )\n ),\n greedy: true,\n alias: 'attr-name',\n inside: {\n comment: RegExp(commentSource),\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n operator: /=/,\n punctuation: /^#\\[|\\]$|[,()]/\n }\n },\n {\n pattern:\n /\\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\\b/,\n alias: 'attr-name'\n }\n ],\n keyword:\n /\\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\\b/,\n number:\n /\\b(?:0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]+)?(?:p[+-]?\\d[\\d_]*)?|\\d[\\d_]*(?:\\.[\\d_]+)?(?:e[+-]?\\d[\\d_]*)?)\\b/i,\n punct: {\n pattern: /@\\{|\\{\\||\\[=|:>/,\n alias: 'punctuation'\n },\n operator:\n /\\/\\\\|\\\\\\/|\\.{2,3}|:{1,2}=|\\*\\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\\|[-|]?|[-!%&*+/<=>?@^~']/,\n punctuation: /\\.\\(|`\\(|@\\{|`\\{|\\{\\||\\[=|:>|[:.,;(){}\\[\\]]/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = cpp\ncpp.displayName = 'cpp'\ncpp.aliases = []\nfunction cpp(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n var keyword =\n /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/\n var modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n Prism.languages.cpp = Prism.languages.extend('c', {\n 'class-name': [\n {\n pattern: RegExp(\n /(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n ),\n lookbehind: true\n }, // This is intended to capture the class name of method implementations like:\n // void foo::bar() const {}\n // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n // it starts with an uppercase letter. This approximation should give decent results.\n /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, // This will capture the class name before destructors like:\n // Foo::~Foo() {}\n /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, // This also intends to capture the class name of method implementations but here the class has template\n // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n ],\n keyword: keyword,\n number: {\n pattern:\n /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n greedy: true\n },\n operator:\n />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n Prism.languages.insertBefore('cpp', 'string', {\n module: {\n // https://en.cppreference.com/w/cpp/language/modules\n pattern: RegExp(\n /(\\b(?:import|module)\\s+)/.source +\n '(?:' + // header-name\n /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\n '|' + // module name or partition or both\n /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(\n /<mod-name>/g,\n function () {\n return modName\n }\n ) +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n string: /^[<\"][\\s\\S]+/,\n operator: /:/,\n punctuation: /\\./\n }\n },\n 'raw-string': {\n pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n alias: 'string',\n greedy: true\n }\n })\n Prism.languages.insertBefore('cpp', 'keyword', {\n 'generic-function': {\n pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n inside: {\n function: /^\\w+/,\n generic: {\n pattern: /<[\\s\\S]+/,\n alias: 'class-name',\n inside: Prism.languages.cpp\n }\n }\n }\n })\n Prism.languages.insertBefore('cpp', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('cpp', 'class-name', {\n // the base clause is an optional list of parent classes\n // https://en.cppreference.com/w/cpp/language/class\n 'base-clause': {\n pattern:\n /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.extend('cpp', {})\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'double-colon',\n {\n // All untokenized words that are not namespaces should be class names\n 'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n },\n Prism.languages.cpp['base-clause']\n )\n })(Prism)\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = crystal\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\nfunction crystal(Prism) {\n Prism.register(refractorRuby)\n ;(function (Prism) {\n Prism.languages.crystal = Prism.languages.extend('ruby', {\n keyword: [\n /\\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\\b/,\n {\n pattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n lookbehind: true\n }\n ],\n number:\n /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/,\n operator: [/->/, Prism.languages.ruby.operator],\n punctuation: /[(){}[\\].,;\\\\]/\n })\n Prism.languages.insertBefore('crystal', 'string-literal', {\n attribute: {\n pattern: /@\\[.*?\\]/,\n inside: {\n delimiter: {\n pattern: /^@\\[|\\]$/,\n alias: 'punctuation'\n },\n attribute: {\n pattern: /^(\\s*)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n args: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.crystal\n }\n }\n },\n expansion: {\n pattern: /\\{(?:\\{.*?\\}|%.*?%)\\}/,\n inside: {\n content: {\n pattern: /^(\\{.)[\\s\\S]+(?=.\\}$)/,\n lookbehind: true,\n inside: Prism.languages.crystal\n },\n delimiter: {\n pattern: /^\\{[\\{%]|[\\}%]\\}$/,\n alias: 'operator'\n }\n }\n },\n char: {\n pattern:\n /'(?:[^\\\\\\r\\n]{1,2}|\\\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\\{[A-Fa-f0-9]{1,6}\\})))'/,\n greedy: true\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csharp\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['dotnet', 'cs']\nfunction csharp(Prism) {\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n } // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n var keywordKinds = {\n // keywords which represent a return or variable type\n type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n // keywords which are used to declare a type\n typeDeclaration: 'class enum interface record struct',\n // contextual keywords\n // (\"var\" and \"dynamic\" are missing because they are used like types)\n contextual:\n 'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n // all other keywords\n other:\n 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n } // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var typeDeclarationKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration\n )\n var keywords = RegExp(\n keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n )\n var nonTypeKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n var nonContextualKeywords = keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.other\n ) // types\n var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2) // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2)\n var name = /@?\\b[A-Za-z_]\\w*\\b/.source\n var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic])\n var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n nonTypeKeywords,\n genericName\n ])\n var array = /\\[\\s*(?:,\\s*)*\\]/.source\n var typeExpressionWithoutTuple = replace(\n /<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source,\n [identifier, array]\n )\n var tupleElement = replace(\n /[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,\n [generic, nestedRound, array]\n )\n var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement])\n var typeExpression = replace(\n /(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source,\n [tuple, identifier, array]\n )\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n } // strings & characters\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source // simplified pattern\n var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source\n var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source\n Prism.languages.csharp = Prism.languages.extend('clike', {\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n // Using static\n // using static System.Math;\n pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [\n identifier\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (type)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n name,\n typeExpression\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (alias)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n lookbehind: true\n },\n {\n // Type declarations\n // class Foo<A, B>\n // interface Foo<out A, B>\n pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n typeDeclarationKeywords,\n genericName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Single catch exception declaration\n // catch(Foo)\n // (things like catch(Foo e) is covered by variable declaration)\n pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Name of the type parameter of generic constraints\n // where Foo : class\n pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n lookbehind: true\n },\n {\n // Casts and checks via as and is.\n // as Foo<A>, is Bar<B>\n // (things like if(a is Foo b) is covered by variable declaration)\n pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [\n typeExpressionWithoutTuple\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Variable, field and parameter declaration\n // (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n pattern: re(\n /\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/\n .source,\n [typeExpression, nonContextualKeywords, name]\n ),\n inside: typeInside\n }\n ],\n keyword: keywords,\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n number:\n /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n operator: />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n punctuation: /\\?\\.?|::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('csharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('csharp', 'punctuation', {\n 'named-parameter': {\n pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n lookbehind: true,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('csharp', 'class-name', {\n namespace: {\n // namespace Foo.Bar {}\n // using Foo.Bar;\n pattern: re(\n /(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source,\n [name]\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n 'type-expression': {\n // default(Foo), typeof(Foo<Bar>), sizeof(int)\n pattern: re(\n /(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/\n .source,\n [nestedRound]\n ),\n lookbehind: true,\n alias: 'class-name',\n inside: typeInside\n },\n 'return-type': {\n // Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n // int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n // int Foo => 0; int Foo { get; set } = 0;\n pattern: re(\n /<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source,\n [typeExpression, identifier]\n ),\n inside: typeInside,\n alias: 'class-name'\n },\n 'constructor-invocation': {\n // new List<Foo<Bar[]>> { }\n pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n lookbehind: true,\n inside: typeInside,\n alias: 'class-name'\n },\n /*'explicit-implementation': {\n// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\npattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\ninside: classNameInside,\nalias: 'class-name'\n},*/\n 'generic-method': {\n // foo<Bar>()\n pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n inside: {\n function: re(/^<<0>>/.source, [name]),\n generic: {\n pattern: RegExp(generic),\n alias: 'class-name',\n inside: typeInside\n }\n }\n },\n 'type-list': {\n // The list of types inherited or of generic constraints\n // class Foo<F> : Bar, IList<FooBar>\n // where F : Bar, IList<int>\n pattern: re(\n /\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/\n .source,\n [\n typeDeclarationKeywords,\n genericName,\n name,\n typeExpression,\n keywords.source,\n nestedRound,\n /\\bnew\\s*\\(\\s*\\)/.source\n ]\n ),\n lookbehind: true,\n inside: {\n 'record-arguments': {\n pattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [\n genericName,\n nestedRound\n ]),\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.csharp\n },\n keyword: keywords,\n 'class-name': {\n pattern: RegExp(typeExpression),\n greedy: true,\n inside: typeInside\n },\n punctuation: /[,()]/\n }\n },\n preprocessor: {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n // highlight preprocessor directives as keywords\n directive: {\n pattern:\n /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n }) // attributes\n var regularStringOrCharacter = regularString + '|' + character\n var regularStringCharacterOrComment = replace(\n /\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source,\n [regularStringOrCharacter]\n )\n var roundExpression = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n ) // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n var attrTarget =\n /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/\n .source\n var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n identifier,\n roundExpression\n ])\n Prism.languages.insertBefore('csharp', 'class-name', {\n attribute: {\n // Attributes\n // [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n pattern: re(\n /((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/\n .source,\n [attrTarget, attr]\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n target: {\n pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n alias: 'keyword'\n },\n 'attribute-arguments': {\n pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n inside: Prism.languages.csharp\n },\n 'class-name': {\n pattern: RegExp(identifier),\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[:,]/\n }\n }\n }) // string interpolation\n var formatString = /:[^}\\r\\n]+/.source // multi line\n var mInterpolationRound = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n )\n var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n mInterpolationRound,\n formatString\n ]) // single line\n var sInterpolationRound = nested(\n replace(\n /[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/\n .source,\n [regularStringOrCharacter]\n ),\n 2\n )\n var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n sInterpolationRound,\n formatString\n ])\n function createInterpolationInside(interpolation, interpolationRound) {\n return {\n interpolation: {\n pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n lookbehind: true,\n inside: {\n 'format-string': {\n pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n interpolationRound,\n formatString\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^:/\n }\n },\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-csharp',\n inside: Prism.languages.csharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.insertBefore('csharp', 'string', {\n 'interpolation-string': [\n {\n pattern: re(\n /(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source,\n [mInterpolation]\n ),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n },\n {\n pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [\n sInterpolation\n ]),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n }\n ],\n char: {\n pattern: RegExp(character),\n greedy: true\n }\n })\n Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n })(Prism)\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = cshtml\ncshtml.displayName = 'cshtml'\ncshtml.aliases = ['razor']\nfunction cshtml(Prism) {\n Prism.register(refractorCsharp)\n // Docs:\n // https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio\n // https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-5.0\n ;(function (Prism) {\n var commentLike = /\\/(?![/*])|\\/\\/.*[\\r\\n]|\\/\\*[^*]*(?:\\*(?!\\/)[^*]*)*\\*\\//\n .source\n var stringLike =\n /@(?!\")|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|@\"(?:[^\\\\\"]|\"\"|\\\\[\\s\\S])*\"(?!\")/.source +\n '|' +\n /'(?:(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'|(?=[^\\\\](?!')))/.source\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<self>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern\n .replace(/<self>/g, '[^\\\\s\\\\S]')\n .replace(/<str>/g, '(?:' + stringLike + ')')\n .replace(/<comment>/g, '(?:' + commentLike + ')')\n }\n var round = nested(/\\((?:[^()'\"@/]|<str>|<comment>|<self>)*\\)/.source, 2)\n var square = nested(/\\[(?:[^\\[\\]'\"@/]|<str>|<comment>|<self>)*\\]/.source, 2)\n var curly = nested(/\\{(?:[^{}'\"@/]|<str>|<comment>|<self>)*\\}/.source, 2)\n var angle = nested(/<(?:[^<>'\"@/]|<str>|<comment>|<self>)*>/.source, 2) // Note about the above bracket patterns:\n // They all ignore HTML expressions that might be in the C# code. This is a problem because HTML (like strings and\n // comments) is parsed differently. This is a huge problem because HTML might contain brackets and quotes which\n // messes up the bracket and string counting implemented by the above patterns.\n //\n // This problem is not fixable because 1) HTML expression are highly context sensitive and very difficult to detect\n // and 2) they require one capturing group at every nested level. See the `tagRegion` pattern to admire the\n // complexity of an HTML expression.\n //\n // To somewhat alleviate the problem a bit, the patterns for characters (e.g. 'a') is very permissive, it also\n // allows invalid characters to support HTML expressions like this: <p>That's it!</p>.\n var tagAttrs =\n /(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?/\n .source\n var tagContent = /(?!\\d)[^\\s>\\/=$<%]+/.source + tagAttrs + /\\s*\\/?>/.source\n var tagRegion =\n /\\B@?/.source +\n '(?:' +\n /<([a-zA-Z][\\w:]*)/.source +\n tagAttrs +\n /\\s*>/.source +\n '(?:' +\n (/[^<]/.source +\n '|' + // all tags that are not the start tag\n // eslint-disable-next-line regexp/strict\n /<\\/?(?!\\1\\b)/.source +\n tagContent +\n '|' + // nested start tag\n nested(\n // eslint-disable-next-line regexp/strict\n /<\\1/.source +\n tagAttrs +\n /\\s*>/.source +\n '(?:' +\n (/[^<]/.source +\n '|' + // all tags that are not the start tag\n // eslint-disable-next-line regexp/strict\n /<\\/?(?!\\1\\b)/.source +\n tagContent +\n '|' +\n '<self>') +\n ')*' + // eslint-disable-next-line regexp/strict\n /<\\/\\1\\s*>/.source,\n 2\n )) +\n ')*' + // eslint-disable-next-line regexp/strict\n /<\\/\\1\\s*>/.source +\n '|' +\n /</.source +\n tagContent +\n ')' // Now for the actual language definition(s):\n //\n // Razor as a language has 2 parts:\n // 1) CSHTML: A markup-like language that has been extended with inline C# code expressions and blocks.\n // 2) C#+HTML: A variant of C# that can contain CSHTML tags as expressions.\n //\n // In the below code, both CSHTML and C#+HTML will be create as separate language definitions that reference each\n // other. However, only CSHTML will be exported via `Prism.languages`.\n Prism.languages.cshtml = Prism.languages.extend('markup', {})\n var csharpWithHtml = Prism.languages.insertBefore(\n 'csharp',\n 'string',\n {\n html: {\n pattern: RegExp(tagRegion),\n greedy: true,\n inside: Prism.languages.cshtml\n }\n },\n {\n csharp: Prism.languages.extend('csharp', {})\n }\n )\n var cs = {\n pattern: /\\S[\\s\\S]*/,\n alias: 'language-csharp',\n inside: csharpWithHtml\n }\n Prism.languages.insertBefore('cshtml', 'prolog', {\n 'razor-comment': {\n pattern: /@\\*[\\s\\S]*?\\*@/,\n greedy: true,\n alias: 'comment'\n },\n block: {\n pattern: RegExp(\n /(^|[^@])@/.source +\n '(?:' +\n [\n // @{ ... }\n curly, // @code{ ... }\n /(?:code|functions)\\s*/.source + curly, // @for (...) { ... }\n /(?:for|foreach|lock|switch|using|while)\\s*/.source +\n round +\n /\\s*/.source +\n curly, // @do { ... } while (...);\n /do\\s*/.source +\n curly +\n /\\s*while\\s*/.source +\n round +\n /(?:\\s*;)?/.source, // @try { ... } catch (...) { ... } finally { ... }\n /try\\s*/.source +\n curly +\n /\\s*catch\\s*/.source +\n round +\n /\\s*/.source +\n curly +\n /\\s*finally\\s*/.source +\n curly, // @if (...) {...} else if (...) {...} else {...}\n /if\\s*/.source +\n round +\n /\\s*/.source +\n curly +\n '(?:' +\n /\\s*else/.source +\n '(?:' +\n /\\s+if\\s*/.source +\n round +\n ')?' +\n /\\s*/.source +\n curly +\n ')*'\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^@\\w*/,\n csharp: cs\n }\n },\n directive: {\n pattern:\n /^([ \\t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\\s).*/m,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^@\\w+/,\n csharp: cs\n }\n },\n value: {\n pattern: RegExp(\n /(^|[^@])@/.source +\n /(?:await\\b\\s*)?/.source +\n '(?:' +\n /\\w+\\b/.source +\n '|' +\n round +\n ')' +\n '(?:' +\n /[?!]?\\.\\w+\\b/.source +\n '|' +\n round +\n '|' +\n square +\n '|' +\n angle +\n round +\n ')*'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'variable',\n inside: {\n keyword: /^@/,\n csharp: cs\n }\n },\n 'delegate-operator': {\n pattern: /(^|[^@])@(?=<)/,\n lookbehind: true,\n alias: 'operator'\n }\n })\n Prism.languages.razor = Prism.languages.cshtml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csp\ncsp.displayName = 'csp'\ncsp.aliases = []\nfunction csp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n *\n * Supports the following:\n * - https://www.w3.org/TR/CSP1/\n * - https://www.w3.org/TR/CSP2/\n * - https://www.w3.org/TR/CSP3/\n */\n ;(function (Prism) {\n /**\n * @param {string} source\n * @returns {RegExp}\n */\n function value(source) {\n return RegExp(\n /([ \\t])/.source + '(?:' + source + ')' + /(?=[\\s;]|$)/.source,\n 'i'\n )\n }\n Prism.languages.csp = {\n directive: {\n pattern:\n /(^|[\\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\\s;]|$)/i,\n lookbehind: true,\n alias: 'property'\n },\n scheme: {\n pattern: value(/[a-z][a-z0-9.+-]*:/.source),\n lookbehind: true\n },\n none: {\n pattern: value(/'none'/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n nonce: {\n pattern: value(/'nonce-[-+/\\w=]+'/.source),\n lookbehind: true,\n alias: 'number'\n },\n hash: {\n pattern: value(/'sha(?:256|384|512)-[-+/\\w=]+'/.source),\n lookbehind: true,\n alias: 'number'\n },\n host: {\n pattern: value(\n /[a-z][a-z0-9.+-]*:\\/\\/[^\\s;,']*/.source +\n '|' +\n /\\*[^\\s;,']*/.source +\n '|' +\n /[a-z0-9-]+(?:\\.[a-z0-9-]+)+(?::[\\d*]+)?(?:\\/[^\\s;,']*)?/.source\n ),\n lookbehind: true,\n alias: 'url',\n inside: {\n important: /\\*/\n }\n },\n keyword: [\n {\n pattern: value(/'unsafe-[a-z-]+'/.source),\n lookbehind: true,\n alias: 'unsafe'\n },\n {\n pattern: value(/'[a-z-]+'/.source),\n lookbehind: true,\n alias: 'safe'\n }\n ],\n punctuation: /;/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = cssExtras\ncssExtras.displayName = 'cssExtras'\ncssExtras.aliases = []\nfunction cssExtras(Prism) {\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var selectorInside\n Prism.languages.css.selector = {\n pattern: Prism.languages.css.selector.pattern,\n lookbehind: true,\n inside: (selectorInside = {\n 'pseudo-element':\n /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n 'pseudo-class': /:[-\\w]+/,\n class: /\\.[-\\w]+/,\n id: /#[-\\w]+/,\n attribute: {\n pattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'case-sensitivity': {\n pattern: /(\\s)[si]$/i,\n lookbehind: true,\n alias: 'keyword'\n },\n namespace: {\n pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n lookbehind: true,\n inside: {\n punctuation: /\\|$/\n }\n },\n 'attr-name': {\n pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n lookbehind: true\n },\n 'attr-value': [\n string,\n {\n pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n lookbehind: true\n }\n ],\n operator: /[|~*^$]?=/\n }\n },\n 'n-th': [\n {\n pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n number: /[\\dn]+/,\n operator: /[+-]/\n }\n },\n {\n pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n lookbehind: true\n }\n ],\n combinator: />|\\+|~|\\|\\|/,\n // the `tag` token has been existed and removed.\n // because we can't find a perfect tokenize to match it.\n // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n punctuation: /[(),]/\n })\n }\n Prism.languages.css['atrule'].inside['selector-function-argument'].inside =\n selectorInside\n Prism.languages.insertBefore('css', 'property', {\n variable: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n lookbehind: true\n }\n })\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/,\n lookbehind: true\n } // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n Prism.languages.insertBefore('css', 'function', {\n operator: {\n pattern: /(\\s)[+\\-*\\/](?=\\s)/,\n lookbehind: true\n },\n // CAREFUL!\n // Previewers and Inline color use hexcode and color.\n hexcode: {\n pattern: /\\B#[\\da-f]{3,8}\\b/i,\n alias: 'color'\n },\n color: [\n {\n pattern:\n /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n // it's important that there is no boundary assertion after the hex digits\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n number: number\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = css\ncss.displayName = 'css'\ncss.aliases = []\nfunction css(Prism) {\n ;(function (Prism) {\n var string =\n /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/\n Prism.languages.css = {\n comment: /\\/\\*[\\s\\S]*?\\*\\//,\n atrule: {\n pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n inside: {\n rule: /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern:\n /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n keyword: {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n } // See rest below\n }\n },\n url: {\n // https://drafts.csswg.org/css-values-3/#urls\n pattern: RegExp(\n '\\\\burl\\\\((?:' +\n string.source +\n '|' +\n /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n ')\\\\)',\n 'i'\n ),\n greedy: true,\n inside: {\n function: /^url/i,\n punctuation: /^\\(|\\)$/,\n string: {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n selector: {\n pattern: RegExp(\n '(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n string.source +\n ')*(?=\\\\s*\\\\{)'\n ),\n lookbehind: true\n },\n string: {\n pattern: string,\n greedy: true\n },\n property: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n lookbehind: true\n },\n important: /!important\\b/i,\n function: {\n pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n lookbehind: true\n },\n punctuation: /[(){};:,]/\n }\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n var markup = Prism.languages.markup\n if (markup) {\n markup.tag.addInlined('style', 'css')\n markup.tag.addAttribute('style', 'css')\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csv\ncsv.displayName = 'csv'\ncsv.aliases = []\nfunction csv(Prism) {\n // https://tools.ietf.org/html/rfc4180\n Prism.languages.csv = {\n value: /[^\\r\\n,\"]+|\"(?:[^\"]|\"\")*\"(?!\")/,\n punctuation: /,/\n }\n}\n","'use strict'\n\nmodule.exports = cypher\ncypher.displayName = 'cypher'\ncypher.aliases = []\nfunction cypher(Prism) {\n Prism.languages.cypher = {\n // https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n comment: /\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n 'class-name': {\n pattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n lookbehind: true,\n greedy: true\n },\n relationship: {\n pattern:\n /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n identifier: {\n pattern: /`(?:[^`\\\\\\r\\n])*`/,\n greedy: true\n },\n variable: /\\$\\w+/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n keyword:\n /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n function: /\\b\\w+\\b(?=\\s*\\()/,\n boolean: /\\b(?:false|null|true)\\b/i,\n number: /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n punctuation: /[()[\\]{},;.]/\n }\n}\n","'use strict'\n\nmodule.exports = d\nd.displayName = 'd'\nd.aliases = []\nfunction d(Prism) {\n Prism.languages.d = Prism.languages.extend('clike', {\n comment: [\n {\n // Shebang\n pattern: /^\\s*#!.+/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n [\n // /+ comment +/\n // Allow one level of nesting\n /\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source, // // comment\n /\\/\\/.*/.source, // /* comment */\n /\\/\\*[\\s\\S]*?\\*\\//.source\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: RegExp(\n [\n // r\"\", x\"\"\n /\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source, // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source, // q\"IDENT\n // ...\n // IDENT\"\n /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source, // q\"//\", q\"||\", etc.\n // eslint-disable-next-line regexp/strict\n /\\bq\"(.)[\\s\\S]*?\\2\"/.source, // eslint-disable-next-line regexp/strict\n /([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n ].join('|'),\n 'm'\n ),\n greedy: true\n },\n {\n pattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n greedy: true,\n alias: 'token-string'\n }\n ],\n // In order: $, keywords and special tokens, globally defined symbols\n keyword:\n /\\$|\\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\\b/,\n number: [\n // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n // Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n /\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n {\n pattern:\n /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n lookbehind: true\n }\n ],\n operator:\n /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n })\n Prism.languages.insertBefore('d', 'string', {\n // Characters\n // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n char: /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/\n })\n Prism.languages.insertBefore('d', 'keyword', {\n property: /\\B@\\w*/\n })\n Prism.languages.insertBefore('d', 'function', {\n register: {\n // Iasm registers\n pattern:\n /\\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n alias: 'variable'\n }\n })\n}\n","'use strict'\n\nmodule.exports = dart\ndart.displayName = 'dart'\ndart.aliases = []\nfunction dart(Prism) {\n ;(function (Prism) {\n var keywords = [\n /\\b(?:async|sync|yield)\\*/,\n /\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n ] // Handles named imports, such as http.Client\n var packagePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // based on the dart naming conventions\n var className = {\n pattern: RegExp(packagePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n }\n }\n }\n Prism.languages.dart = Prism.languages.extend('clike', {\n 'class-name': [\n className,\n {\n // variables and parameters\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n packagePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n operator:\n /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n })\n Prism.languages.insertBefore('dart', 'string', {\n 'string-literal': {\n pattern:\n /r?(?:(\"\"\"|''')[\\s\\S]*?\\1|([\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2(?!\\2))/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n lookbehind: true,\n inside: {\n punctuation: /^\\$\\{?|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.dart\n }\n }\n },\n string: /[\\s\\S]+/\n }\n },\n string: undefined\n })\n Prism.languages.insertBefore('dart', 'class-name', {\n metadata: {\n pattern: /@\\w+/,\n alias: 'function'\n }\n })\n Prism.languages.insertBefore('dart', 'class-name', {\n generics: {\n pattern:\n /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dataweave\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\nfunction dataweave(Prism) {\n ;(function (Prism) {\n Prism.languages.dataweave = {\n url: /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n property: {\n pattern: /(?:\\b\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\b\\w+)(?=\\s*[:@])/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'mime-type':\n /\\b(?:application|audio|image|multipart|text|video)\\/[\\w+-]+/,\n date: {\n pattern: /\\|[\\w:+-]+\\|/,\n greedy: true\n },\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n regex: {\n pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n greedy: true\n },\n keyword:\n /\\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\\b/,\n function: /\\b[A-Z_]\\w*(?=\\s*\\()/i,\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\];(),.:@]/,\n operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|!|\\?/,\n boolean: /\\b(?:false|true)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dax\ndax.displayName = 'dax'\ndax.aliases = []\nfunction dax(Prism) {\n Prism.languages.dax = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n lookbehind: true\n },\n 'data-field': {\n pattern:\n /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'symbol'\n },\n measure: {\n pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'constant'\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n function:\n /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n keyword:\n /\\b(?:DEFINE|EVALUATE|MEASURE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n boolean: {\n pattern: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n alias: 'constant'\n },\n number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/,\n operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n punctuation: /[;\\[\\](){}`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = dhall\ndhall.displayName = 'dhall'\ndhall.aliases = []\nfunction dhall(Prism) {\n // ABNF grammar:\n // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n Prism.languages.dhall = {\n // Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n // The multi-line pattern is essentially this:\n // \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|<SELF>)*-\\}\n comment:\n /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n alias: 'language-dhall',\n inside: null // see blow\n },\n punctuation: /\\$\\{|\\}/\n }\n }\n }\n },\n label: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n url: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n pattern:\n /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n greedy: true\n },\n env: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n pattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n greedy: true,\n inside: {\n function: /^env/,\n operator: /^:/,\n variable: /[\\s\\S]+/\n }\n },\n hash: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n pattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n inside: {\n function: /sha256/,\n operator: /:/,\n number: /[\\da-fA-F]{64}/\n }\n },\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n keyword:\n /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n builtin: /\\b(?:None|Some)\\b/,\n boolean: /\\b(?:False|True)\\b/,\n number:\n /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n operator:\n /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||===|[!=]=|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n punctuation: /\\.\\.|[{}\\[\\](),./]/,\n // we'll just assume that every capital word left is a type name\n 'class-name': /\\b[A-Z]\\w*\\b/\n }\n Prism.languages.dhall.string.inside.interpolation.inside.expression.inside =\n Prism.languages.dhall\n}\n","'use strict'\n\nmodule.exports = diff\ndiff.displayName = 'diff'\ndiff.aliases = []\nfunction diff(Prism) {\n ;(function (Prism) {\n Prism.languages.diff = {\n coord: [\n // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n /^(?:\\*{3}|-{3}|\\+{3}).*$/m, // Match \"@@ ... @@\" coord lines in unified diff.\n /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number).\n /^\\d.*$/m\n ] // deleted, inserted, unchanged, diff\n }\n /**\n * A map from the name of a block to its line prefix.\n *\n * @type {Object<string, string>}\n */\n var PREFIXES = {\n 'deleted-sign': '-',\n 'deleted-arrow': '<',\n 'inserted-sign': '+',\n 'inserted-arrow': '>',\n unchanged: ' ',\n diff: '!'\n } // add a token for each prefix\n Object.keys(PREFIXES).forEach(function (name) {\n var prefix = PREFIXES[name]\n var alias = []\n if (!/^\\w+$/.test(name)) {\n // \"deleted-sign\" -> \"deleted\"\n alias.push(/\\w+/.exec(name)[0])\n }\n if (name === 'diff') {\n alias.push('bold')\n }\n Prism.languages.diff[name] = {\n pattern: RegExp(\n '^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+',\n 'm'\n ),\n alias: alias,\n inside: {\n line: {\n pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]/,\n alias: /\\w+/.exec(name)[0]\n }\n }\n }\n }) // make prefixes available to Diff plugin\n Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n value: PREFIXES\n })\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = django\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\nfunction django(Prism) {\n Prism.register(refractorMarkupTemplating)\n // Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.\n // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n ;(function (Prism) {\n Prism.languages.django = {\n comment: /^\\{#[\\s\\S]*?#\\}$/,\n tag: {\n pattern: /(^\\{%[+-]?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%][+-]?|[+-]?[}%]\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n filter: {\n pattern: /(\\|)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n test: {\n pattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b[a-z_]\\w+(?=\\s*\\()/i,\n keyword:\n /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /[Ff]alse|[Nn]one|[Tt]rue/,\n variable: /\\b\\w+\\b/,\n punctuation: /[{}[\\](),.:;]/\n }\n var pattern = /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}|\\{#[\\s\\S]*?#\\}/g\n var markupTemplating = Prism.languages['markup-templating']\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'django', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'django')\n }) // Add an Jinja2 alias\n Prism.languages.jinja2 = Prism.languages.django\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'jinja2', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'jinja2')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dnsZoneFile\ndnsZoneFile.displayName = 'dnsZoneFile'\ndnsZoneFile.aliases = []\nfunction dnsZoneFile(Prism) {\n Prism.languages['dns-zone-file'] = {\n comment: /;.*/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n lookbehind: true\n },\n {\n pattern: /(^|\\s)@(?=\\s|$)/,\n lookbehind: true\n }\n ],\n keyword: /^\\$(?:INCLUDE|ORIGIN|TTL)(?=\\s|$)/m,\n class: {\n // https://tools.ietf.org/html/rfc1035#page-13\n pattern: /(^|\\s)(?:CH|CS|HS|IN)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n // https://en.wikipedia.org/wiki/List_of_DNS_record_types\n pattern:\n /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /[()]/\n }\n Prism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n}\n","'use strict'\n\nmodule.exports = docker\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\nfunction docker(Prism) {\n ;(function (Prism) {\n // Many of the following regexes will contain negated lookaheads like `[ \\t]+(?![ \\t])`. This is a trick to ensure\n // that quantifiers behave *atomically*. Atomic quantifiers are necessary to prevent exponential backtracking.\n var spaceAfterBackSlash =\n /\\\\[\\r\\n](?:\\s|\\\\[\\r\\n]|#.*(?!.))*(?![\\s#]|\\\\[\\r\\n])/.source // At least one space, comment, or line break\n var space = /(?:[ \\t]+(?![ \\t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(\n /<SP_BS>/g,\n function () {\n return spaceAfterBackSlash\n }\n )\n var string =\n /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"|'(?:[^'\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*'/\n .source\n var option = /--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)/.source.replace(\n /<STR>/g,\n function () {\n return string\n }\n )\n var stringRule = {\n pattern: RegExp(string),\n greedy: true\n }\n var commentRule = {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true,\n greedy: true\n }\n /**\n * @param {string} source\n * @param {string} flags\n * @returns {RegExp}\n */\n function re(source, flags) {\n source = source\n .replace(/<OPT>/g, function () {\n return option\n })\n .replace(/<SP>/g, function () {\n return space\n })\n return RegExp(source, flags)\n }\n Prism.languages.docker = {\n instruction: {\n pattern:\n /(^[ \\t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)(?:\\\\.|[^\\r\\n\\\\])*(?:\\\\$(?:\\s|#.*$)*(?![\\s#])(?:\\\\.|[^\\r\\n\\\\])*)*/im,\n lookbehind: true,\n greedy: true,\n inside: {\n options: {\n pattern: re(\n /(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n property: {\n pattern: /(^|\\s)--[\\w-]+/,\n lookbehind: true\n },\n string: [\n stringRule,\n {\n pattern: /(=)(?![\"'])(?:[^\\s\\\\]|\\\\.)+/,\n lookbehind: true\n }\n ],\n operator: /\\\\$/m,\n punctuation: /=/\n }\n },\n keyword: [\n {\n // https://docs.docker.com/engine/reference/builder/#healthcheck\n pattern: re(\n /(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b/\n .source,\n 'i'\n ),\n lookbehind: true,\n greedy: true\n },\n {\n // https://docs.docker.com/engine/reference/builder/#from\n pattern: re(\n /(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \\t\\\\]+<SP>)AS/\n .source,\n 'i'\n ),\n lookbehind: true,\n greedy: true\n },\n {\n // https://docs.docker.com/engine/reference/builder/#onbuild\n pattern: re(/(^ONBUILD<SP>)\\w+/.source, 'i'),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /^\\w+/,\n greedy: true\n }\n ],\n comment: commentRule,\n string: stringRule,\n variable: /\\$(?:\\w+|\\{[^{}\"'\\\\]*\\})/,\n operator: /\\\\$/m\n }\n },\n comment: commentRule\n }\n Prism.languages.dockerfile = Prism.languages.docker\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dot\ndot.displayName = 'dot'\ndot.aliases = ['gv']\nfunction dot(Prism) {\n // https://www.graphviz.org/doc/info/lang.html\n ;(function (Prism) {\n var ID =\n '(?:' +\n [\n // an identifier\n /[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*/.source, // a number\n /-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)/.source, // a double-quoted string\n /\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"/.source, // HTML-like string\n /<(?:[^<>]|(?!<!--)<(?:[^<>\"']|\"[^\"]*\"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/\n .source\n ].join('|') +\n ')'\n var IDInside = {\n markup: {\n pattern: /(^<)[\\s\\S]+(?=>$)/,\n lookbehind: true,\n alias: ['language-markup', 'language-html', 'language-xml'],\n inside: Prism.languages.markup\n }\n }\n /**\n * @param {string} source\n * @param {string} flags\n * @returns {RegExp}\n */\n function withID(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return ID\n }),\n flags\n )\n }\n Prism.languages.dot = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|^#.*/m,\n greedy: true\n },\n 'graph-name': {\n pattern: withID(\n /(\\b(?:digraph|graph|subgraph)[ \\t\\r\\n]+)<ID>/.source,\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name',\n inside: IDInside\n },\n 'attr-value': {\n pattern: withID(/(=[ \\t\\r\\n]*)<ID>/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n 'attr-name': {\n pattern: withID(/([\\[;, \\t\\r\\n])<ID>(?=[ \\t\\r\\n]*=)/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n keyword: /\\b(?:digraph|edge|graph|node|strict|subgraph)\\b/i,\n 'compass-point': {\n pattern: /(:[ \\t\\r\\n]*)(?:[ewc_]|[ns][ew]?)(?![\\w\\x80-\\uFFFF])/,\n lookbehind: true,\n alias: 'builtin'\n },\n node: {\n pattern: withID(/(^|[^-.\\w\\x80-\\uFFFF\\\\])<ID>/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n operator: /[=:]|-[->]/,\n punctuation: /[\\[\\]{};,]/\n }\n Prism.languages.gv = Prism.languages.dot\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ebnf\nebnf.displayName = 'ebnf'\nebnf.aliases = []\nfunction ebnf(Prism) {\n Prism.languages.ebnf = {\n comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n special: {\n pattern: /\\?[^?\\r\\n]*\\?/,\n greedy: true,\n alias: 'class-name'\n },\n definition: {\n pattern: /^([\\t ]*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n lookbehind: true,\n alias: ['rule', 'keyword']\n },\n rule: /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n punctuation: /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n operator: /[-=|*/!]/\n }\n}\n","'use strict'\n\nmodule.exports = editorconfig\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\nfunction editorconfig(Prism) {\n Prism.languages.editorconfig = {\n // https://editorconfig-specification.readthedocs.io\n comment: /[;#].*/,\n section: {\n pattern: /(^[ \\t]*)\\[.+\\]/m,\n lookbehind: true,\n alias: 'selector',\n inside: {\n regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n // Escape special characters with '\\\\'\n operator: /[!?]|\\.\\.|\\*{1,2}/,\n punctuation: /[\\[\\]{},]/\n }\n },\n key: {\n pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n value: {\n pattern: /=.*/,\n alias: 'attr-value',\n inside: {\n punctuation: /^=/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = eiffel\neiffel.displayName = 'eiffel'\neiffel.aliases = []\nfunction eiffel(Prism) {\n Prism.languages.eiffel = {\n comment: /--.*/,\n string: [\n // Aligned-verbatim-strings\n {\n pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n greedy: true\n }, // Non-aligned-verbatim-strings\n {\n pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n greedy: true\n }, // Single-line string\n {\n pattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n greedy: true\n }\n ],\n // normal char | special char | char code\n char: /'(?:%.|[^%'\\r\\n])+'/,\n keyword:\n /\\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n boolean: /\\b(?:False|True)\\b/i,\n // Convention: class-names are always all upper-case characters\n 'class-name': /\\b[A-Z][\\dA-Z_]*\\b/,\n number: [\n // hexa | octal | bin\n /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i, // Decimal\n /(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n ],\n punctuation: /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n operator: /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ejs\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\nfunction ejs(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.ejs = {\n delimiter: {\n pattern: /^<%[-_=]?|[-_]?%>$/,\n alias: 'punctuation'\n },\n comment: /^#[\\s\\S]*/,\n 'language-javascript': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.javascript\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var ejsPattern = /<%(?!%)[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ejs',\n ejsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')\n })\n Prism.languages.eta = Prism.languages.ejs\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = elixir\nelixir.displayName = 'elixir'\nelixir.aliases = []\nfunction elixir(Prism) {\n Prism.languages.elixir = {\n doc: {\n pattern:\n /@(?:doc|moduledoc)\\s+(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2)/,\n inside: {\n attribute: /^@\\w+/,\n string: /['\"][\\s\\S]+/\n }\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n // ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>\n regex: {\n pattern:\n /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n greedy: true\n },\n string: [\n {\n // ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>\n pattern:\n /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n // Multi-line strings are allowed\n pattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n }\n ],\n atom: {\n // Look-behind prevents bad highlighting of the :: operator\n pattern: /(^|[^:]):\\w+/,\n lookbehind: true,\n alias: 'symbol'\n },\n module: {\n pattern: /\\b[A-Z]\\w*\\b/,\n alias: 'class-name'\n },\n // Look-ahead prevents bad highlighting of the :: operator\n 'attr-name': /\\b\\w+\\??:(?!:)/,\n argument: {\n // Look-behind prevents bad highlighting of the && operator\n pattern: /(^|[^&])&\\d+/,\n lookbehind: true,\n alias: 'variable'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'variable'\n },\n function: /\\b[_a-zA-Z]\\w*[?!]?(?:(?=\\s*(?:\\.\\s*)?\\()|(?=\\/\\d))/,\n number: /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n keyword:\n /\\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\\b/,\n boolean: /\\b(?:false|nil|true)\\b/,\n operator: [\n /\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n {\n // We don't want to match <<\n pattern: /([^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /([^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,%\\[\\]{}()]/\n }\n Prism.languages.elixir.string.forEach(function (o) {\n o.inside = {\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.elixir\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = elm\nelm.displayName = 'elm'\nelm.aliases = []\nfunction elm(Prism) {\n Prism.languages.elm = {\n comment: /--.*|\\{-[\\s\\S]*?-\\}/,\n char: {\n pattern:\n /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+|u\\{[0-9a-fA-F]+\\}))'/,\n greedy: true\n },\n string: [\n {\n // Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n greedy: true\n }\n ],\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|exposing|import)\\b/\n }\n },\n keyword:\n /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n // decimal integers and floating point numbers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n operator: /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n // In Elm, nearly everything is a variable, do not highlight these.\n hvariable: /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n constant: /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n punctuation: /[{}[\\]|(),.:]/\n }\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = erb\nerb.displayName = 'erb'\nerb.aliases = []\nfunction erb(Prism) {\n Prism.register(refractorRuby)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.erb = {\n delimiter: {\n pattern: /^(\\s*)<%=?|%>(?=\\s*$)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n ruby: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'language-ruby',\n inside: Prism.languages.ruby\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var erbPattern =\n /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s(?:[^\\r\\n]|[\\r\\n](?!=end))*[\\r\\n]=end)+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'erb',\n erbPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = erlang\nerlang.displayName = 'erlang'\nerlang.aliases = []\nfunction erlang(Prism) {\n Prism.languages.erlang = {\n comment: /%.+/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n 'quoted-function': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n alias: 'function'\n },\n 'quoted-atom': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n alias: 'atom'\n },\n boolean: /\\b(?:false|true)\\b/,\n keyword: /\\b(?:after|case|catch|end|fun|if|of|receive|try|when)\\b/,\n number: [\n /\\$\\\\?./,\n /\\b\\d+#[a-z0-9]+/i,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n ],\n function: /\\b[a-z][\\w@]*(?=\\()/,\n variable: {\n // Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n pattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n lookbehind: true\n },\n operator: [\n /[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\\b/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n atom: /\\b[a-z][\\w@]*/,\n punctuation: /[()[\\]{}:;,.#|]|<<|>>/\n }\n}\n","'use strict'\nvar refractorLua = require('./lua.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = etlua\netlua.displayName = 'etlua'\netlua.aliases = []\nfunction etlua(Prism) {\n Prism.register(refractorLua)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.etlua = {\n delimiter: {\n pattern: /^<%[-=]?|-?%>$/,\n alias: 'punctuation'\n },\n 'language-lua': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.lua\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var pattern = /<%[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'etlua',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = excelFormula\nexcelFormula.displayName = 'excelFormula'\nexcelFormula.aliases = []\nfunction excelFormula(Prism) {\n Prism.languages['excel-formula'] = {\n comment: {\n pattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n reference: {\n // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n // Sales!B2\n // 'Winter sales'!B2\n // [Sales.xlsx]Jan!B2:B5\n // D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n // '[Sales.xlsx]Jan sales'!B2:B5\n // 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n pattern:\n /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n greedy: true,\n alias: 'string',\n inside: {\n operator: /!$/,\n punctuation: /'/,\n sheet: {\n pattern: /[^[\\]]+$/,\n alias: 'function'\n },\n file: {\n pattern: /\\[[^[\\]]+\\]$/,\n inside: {\n punctuation: /[[\\]]/\n }\n },\n path: /[\\s\\S]+/\n }\n },\n 'function-name': {\n pattern: /\\b[A-Z]\\w*(?=\\()/i,\n alias: 'keyword'\n },\n range: {\n pattern:\n /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n alias: 'property',\n inside: {\n operator: /:/,\n cell: /\\$?[A-Z]+\\$?\\d+/i,\n column: /\\$?[A-Z]+/i,\n row: /\\$?\\d+/\n }\n },\n cell: {\n // Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n // To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n pattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n alias: 'property'\n },\n number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:FALSE|TRUE)\\b/i,\n operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n punctuation: /[[\\]();{}|]/\n }\n Prism.languages['xlsx'] = Prism.languages['xls'] =\n Prism.languages['excel-formula']\n}\n","'use strict'\n\nmodule.exports = factor\nfactor.displayName = 'factor'\nfactor.aliases = []\nfunction factor(Prism) {\n ;(function (Prism) {\n var comment_inside = {\n function:\n /\\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n }\n var string_inside = {\n number: /\\\\[^\\s']|%\\w/\n }\n var factor = {\n comment: [\n {\n // ! single-line exclamation point comments with whitespace after/around the !\n pattern: /(^|\\s)(?:! .*|!$)/,\n lookbehind: true,\n inside: comment_inside\n },\n /* from basis/multiline: */\n {\n // /* comment */, /* comment*/\n pattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n },\n {\n // ![[ comment ]] , ![===[ comment]===]\n pattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n }\n ],\n number: [\n {\n // basic base 10 integers 9, -9\n pattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n pattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n pattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n lookbehind: true\n },\n {\n // positive mixed numbers 23+1/5 +23+1/5\n pattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // negative mixed numbers -23-1/5\n pattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n pattern:\n /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // NAN literal syntax NAN: 80000deadbeef, NAN: a\n pattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n lookbehind: true\n },\n {\n /*\nbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\"The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely.\nThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n<https://docs.factorcode.org/content/article-syntax-floats.html>\n*/\n pattern:\n /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n lookbehind: true\n }\n ],\n // R/ regexp?\\/\\\\/\n regexp: {\n pattern:\n /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n lookbehind: true,\n alias: 'number',\n inside: {\n variable: /\\\\\\S/,\n keyword: /[+?*\\[\\]^$(){}.|]/,\n operator: {\n pattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n lookbehind: true\n }\n }\n },\n boolean: {\n pattern: /(^|\\s)[tf](?=\\s|$)/,\n lookbehind: true\n },\n // SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n 'custom-string': {\n pattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: /\\\\\\S|%\\w|\\//\n }\n },\n 'multiline-string': [\n {\n // STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n pattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: string_inside.number,\n // trailing semicolon on its own line\n 'semicolon-or-setlocal': {\n pattern: /([\\r\\n][ \\t]*);(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n }\n }\n },\n {\n // HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n pattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n },\n {\n // [[ string ]], [==[ string]==]\n pattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n }\n ],\n 'special-using': {\n pattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n lookbehind: true,\n alias: 'function',\n inside: {\n // this is essentially a regex for vocab names, which i don't want to specify\n // but the USING: gets picked up as a vocab name\n string: {\n pattern: /(\\s)[^:\\s]+/,\n lookbehind: true\n }\n }\n },\n /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\ntrying to do better is more work and regex-computation-time than it's worth though.\n- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n- we'd like if the following variable name conventions were recognised specifically:\nspecial row variables = ..a b..\ntype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\nword throws unconditional error = *\nany other word-like variable name = a ? q' etc\nhttps://docs.factorcode.org/content/article-effects.html\nthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\nthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n*/\n // current solution is not great\n 'stack-effect-delimiter': [\n {\n // opening parenthesis\n pattern: /(^|\\s)(?:call|eval|execute)?\\((?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // middle --\n pattern: /(\\s)--(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing parenthesis\n pattern: /(\\s)\\)(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n combinators: {\n pattern: null,\n lookbehind: true,\n alias: 'keyword'\n },\n 'kernel-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'sequences-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'math-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'constructor-word': {\n // <array> but not <=>\n pattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'other-builtin-syntax': {\n pattern: null,\n lookbehind: true,\n alias: 'operator'\n },\n /*\nfull list of supported word naming conventions: (the convention appears outside of the [brackets])\nset-[x]\nchange-[x]\nwith-[x]\nnew-[x]\n>[string]\n[base]>\n[string]>[number]\n+[symbol]+\n[boolean-word]?\n?[of]\n[slot-reader]>>\n>>[slot-setter]\n[slot-writer]<<\n([implementation-detail])\n[mutater]!\n[variant]*\n[prettyprint].\n$[help-markup]\n<constructors>, SYNTAX:, etc are supported by their own patterns.\n`with` and `new` from `kernel` are their own builtins.\nsee <https://docs.factorcode.org/content/article-conventions.html>\n*/\n 'conventionally-named-word': {\n pattern:\n /(^|\\s)(?!\")(?:(?:change|new|set|with)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'colon-syntax': {\n pattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'semicolon-or-setlocal': {\n pattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n },\n // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n 'curly-brace-literal-delimiter': [\n {\n // opening\n pattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\}(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n 'quotation-delimiter': [\n {\n // opening\n pattern: /(^|\\s)\\[(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\](?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n 'normal-word': {\n pattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n lookbehind: true\n },\n /*\nbasic first-class string \"a\"\nwith escaped double-quote \"a\\\"\"\nescaped backslash \"\\\\\"\nand general escapes since Factor has so many \"\\N\"\nsyntax that works in the reference implementation that isn't fully\nsupported because it's an implementation detail:\n\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\"string\"5 -> string, 5\n\"string\"[ ] -> string, quotation\n{ \"a\"} -> array<string>\nthe rest of those examples all properly recognise the string, but not\nthe other object (number, quotation, etc)\nthis is fine for a regex-only implementation.\n*/\n string: {\n pattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n greedy: true,\n inside: string_inside\n }\n }\n var escape = function (str) {\n return (str + '').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1')\n }\n var arrToWordsRegExp = function (arr) {\n return new RegExp('(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)')\n }\n var builtins = {\n 'kernel-builtin': [\n 'or',\n '2nipd',\n '4drop',\n 'tuck',\n 'wrapper',\n 'nip',\n 'wrapper?',\n 'callstack>array',\n 'die',\n 'dupd',\n 'callstack',\n 'callstack?',\n '3dup',\n 'hashcode',\n 'pick',\n '4nip',\n 'build',\n '>boolean',\n 'nipd',\n 'clone',\n '5nip',\n 'eq?',\n '?',\n '=',\n 'swapd',\n '2over',\n 'clear',\n '2dup',\n 'get-retainstack',\n 'not',\n 'tuple?',\n 'dup',\n '3nipd',\n 'call',\n '-rotd',\n 'object',\n 'drop',\n 'assert=',\n 'assert?',\n '-rot',\n 'execute',\n 'boa',\n 'get-callstack',\n 'curried?',\n '3drop',\n 'pickd',\n 'overd',\n 'over',\n 'roll',\n '3nip',\n 'swap',\n 'and',\n '2nip',\n 'rotd',\n 'throw',\n '(clone)',\n 'hashcode*',\n 'spin',\n 'reach',\n '4dup',\n 'equal?',\n 'get-datastack',\n 'assert',\n '2drop',\n '<wrapper>',\n 'boolean?',\n 'identity-hashcode',\n 'identity-tuple?',\n 'null',\n 'composed?',\n 'new',\n '5drop',\n 'rot',\n '-roll',\n 'xor',\n 'identity-tuple',\n 'boolean'\n ],\n 'other-builtin-syntax': [\n // syntax\n '=======',\n 'recursive',\n 'flushable',\n '>>',\n '<<<<<<',\n 'M\\\\',\n 'B',\n 'PRIVATE>',\n '\\\\',\n '======',\n 'final',\n 'inline',\n 'delimiter',\n 'deprecated',\n '<PRIVATE',\n '>>>>>>',\n '<<<<<<<',\n 'parse-complex',\n 'malformed-complex',\n 'read-only',\n '>>>>>>>',\n 'call-next-method',\n '<<',\n 'foldable', // literals\n '$',\n '$[',\n '${'\n ],\n 'sequences-builtin': [\n 'member-eq?',\n 'mismatch',\n 'append',\n 'assert-sequence=',\n 'longer',\n 'repetition',\n 'clone-like',\n '3sequence',\n 'assert-sequence?',\n 'last-index-from',\n 'reversed',\n 'index-from',\n 'cut*',\n 'pad-tail',\n 'join-as',\n 'remove-eq!',\n 'concat-as',\n 'but-last',\n 'snip',\n 'nths',\n 'nth',\n 'sequence',\n 'longest',\n 'slice?',\n '<slice>',\n 'remove-nth',\n 'tail-slice',\n 'empty?',\n 'tail*',\n 'member?',\n 'virtual-sequence?',\n 'set-length',\n 'drop-prefix',\n 'iota',\n 'unclip',\n 'bounds-error?',\n 'unclip-last-slice',\n 'non-negative-integer-expected',\n 'non-negative-integer-expected?',\n 'midpoint@',\n 'longer?',\n '?set-nth',\n '?first',\n 'rest-slice',\n 'prepend-as',\n 'prepend',\n 'fourth',\n 'sift',\n 'subseq-start',\n 'new-sequence',\n '?last',\n 'like',\n 'first4',\n '1sequence',\n 'reverse',\n 'slice',\n 'virtual@',\n 'repetition?',\n 'set-last',\n 'index',\n '4sequence',\n 'max-length',\n 'set-second',\n 'immutable-sequence',\n 'first2',\n 'first3',\n 'supremum',\n 'unclip-slice',\n 'suffix!',\n 'insert-nth',\n 'tail',\n '3append',\n 'short',\n 'suffix',\n 'concat',\n 'flip',\n 'immutable?',\n 'reverse!',\n '2sequence',\n 'sum',\n 'delete-all',\n 'indices',\n 'snip-slice',\n '<iota>',\n 'check-slice',\n 'sequence?',\n 'head',\n 'append-as',\n 'halves',\n 'sequence=',\n 'collapse-slice',\n '?second',\n 'slice-error?',\n 'product',\n 'bounds-check?',\n 'bounds-check',\n 'immutable',\n 'virtual-exemplar',\n 'harvest',\n 'remove',\n 'pad-head',\n 'last',\n 'set-fourth',\n 'cartesian-product',\n 'remove-eq',\n 'shorten',\n 'shorter',\n 'reversed?',\n 'shorter?',\n 'shortest',\n 'head-slice',\n 'pop*',\n 'tail-slice*',\n 'but-last-slice',\n 'iota?',\n 'append!',\n 'cut-slice',\n 'new-resizable',\n 'head-slice*',\n 'sequence-hashcode',\n 'pop',\n 'set-nth',\n '?nth',\n 'second',\n 'join',\n 'immutable-sequence?',\n '<reversed>',\n '3append-as',\n 'virtual-sequence',\n 'subseq?',\n 'remove-nth!',\n 'length',\n 'last-index',\n 'lengthen',\n 'assert-sequence',\n 'copy',\n 'move',\n 'third',\n 'first',\n 'tail?',\n 'set-first',\n 'prefix',\n 'bounds-error',\n '<repetition>',\n 'exchange',\n 'surround',\n 'cut',\n 'min-length',\n 'set-third',\n 'push-all',\n 'head?',\n 'subseq-start-from',\n 'delete-slice',\n 'rest',\n 'sum-lengths',\n 'head*',\n 'infimum',\n 'remove!',\n 'glue',\n 'slice-error',\n 'subseq',\n 'push',\n 'replace-slice',\n 'subseq-as',\n 'unclip-last'\n ],\n 'math-builtin': [\n 'number=',\n 'next-power-of-2',\n '?1+',\n 'fp-special?',\n 'imaginary-part',\n 'float>bits',\n 'number?',\n 'fp-infinity?',\n 'bignum?',\n 'fp-snan?',\n 'denominator',\n 'gcd',\n '*',\n '+',\n 'fp-bitwise=',\n '-',\n 'u>=',\n '/',\n '>=',\n 'bitand',\n 'power-of-2?',\n 'log2-expects-positive',\n 'neg?',\n '<',\n 'log2',\n '>',\n 'integer?',\n 'number',\n 'bits>double',\n '2/',\n 'zero?',\n 'bits>float',\n 'float?',\n 'shift',\n 'ratio?',\n 'rect>',\n 'even?',\n 'ratio',\n 'fp-sign',\n 'bitnot',\n '>fixnum',\n 'complex?',\n '/i',\n 'integer>fixnum',\n '/f',\n 'sgn',\n '>bignum',\n 'next-float',\n 'u<',\n 'u>',\n 'mod',\n 'recip',\n 'rational',\n '>float',\n '2^',\n 'integer',\n 'fixnum?',\n 'neg',\n 'fixnum',\n 'sq',\n 'bignum',\n '>rect',\n 'bit?',\n 'fp-qnan?',\n 'simple-gcd',\n 'complex',\n '<fp-nan>',\n 'real',\n '>fraction',\n 'double>bits',\n 'bitor',\n 'rem',\n 'fp-nan-payload',\n 'real-part',\n 'log2-expects-positive?',\n 'prev-float',\n 'align',\n 'unordered?',\n 'float',\n 'fp-nan?',\n 'abs',\n 'bitxor',\n 'integer>fixnum-strict',\n 'u<=',\n 'odd?',\n '<=',\n '/mod',\n '>integer',\n 'real?',\n 'rational?',\n 'numerator'\n ] // that's all for now\n }\n Object.keys(builtins).forEach(function (k) {\n factor[k].pattern = arrToWordsRegExp(builtins[k])\n })\n var combinators = [\n // kernel\n '2bi',\n 'while',\n '2tri',\n 'bi*',\n '4dip',\n 'both?',\n 'same?',\n 'tri@',\n 'curry',\n 'prepose',\n '3bi',\n '?if',\n 'tri*',\n '2keep',\n '3keep',\n 'curried',\n '2keepd',\n 'when',\n '2bi*',\n '2tri*',\n '4keep',\n 'bi@',\n 'keepdd',\n 'do',\n 'unless*',\n 'tri-curry',\n 'if*',\n 'loop',\n 'bi-curry*',\n 'when*',\n '2bi@',\n '2tri@',\n 'with',\n '2with',\n 'either?',\n 'bi',\n 'until',\n '3dip',\n '3curry',\n 'tri-curry*',\n 'tri-curry@',\n 'bi-curry',\n 'keepd',\n 'compose',\n '2dip',\n 'if',\n '3tri',\n 'unless',\n 'tuple',\n 'keep',\n '2curry',\n 'tri',\n 'most',\n 'while*',\n 'dip',\n 'composed',\n 'bi-curry@', // sequences\n 'find-last-from',\n 'trim-head-slice',\n 'map-as',\n 'each-from',\n 'none?',\n 'trim-tail',\n 'partition',\n 'if-empty',\n 'accumulate*',\n 'reject!',\n 'find-from',\n 'accumulate-as',\n 'collector-for-as',\n 'reject',\n 'map',\n 'map-sum',\n 'accumulate!',\n '2each-from',\n 'follow',\n 'supremum-by',\n 'map!',\n 'unless-empty',\n 'collector',\n 'padding',\n 'reduce-index',\n 'replicate-as',\n 'infimum-by',\n 'trim-tail-slice',\n 'count',\n 'find-index',\n 'filter',\n 'accumulate*!',\n 'reject-as',\n 'map-integers',\n 'map-find',\n 'reduce',\n 'selector',\n 'interleave',\n '2map',\n 'filter-as',\n 'binary-reduce',\n 'map-index-as',\n 'find',\n 'produce',\n 'filter!',\n 'replicate',\n 'cartesian-map',\n 'cartesian-each',\n 'find-index-from',\n 'map-find-last',\n '3map-as',\n '3map',\n 'find-last',\n 'selector-as',\n '2map-as',\n '2map-reduce',\n 'accumulate',\n 'each',\n 'each-index',\n 'accumulate*-as',\n 'when-empty',\n 'all?',\n 'collector-as',\n 'push-either',\n 'new-like',\n 'collector-for',\n '2selector',\n 'push-if',\n '2all?',\n 'map-reduce',\n '3each',\n 'any?',\n 'trim-slice',\n '2reduce',\n 'change-nth',\n 'produce-as',\n '2each',\n 'trim',\n 'trim-head',\n 'cartesian-find',\n 'map-index', // math\n 'if-zero',\n 'each-integer',\n 'unless-zero',\n '(find-integer)',\n 'when-zero',\n 'find-last-integer',\n '(all-integers?)',\n 'times',\n '(each-integer)',\n 'find-integer',\n 'all-integers?', // math.combinators\n 'unless-negative',\n 'if-positive',\n 'when-positive',\n 'when-negative',\n 'unless-positive',\n 'if-negative', // combinators\n 'case',\n '2cleave',\n 'cond>quot',\n 'case>quot',\n '3cleave',\n 'wrong-values',\n 'to-fixed-point',\n 'alist>quot',\n 'cond',\n 'cleave',\n 'call-effect',\n 'recursive-hashcode',\n 'spread',\n 'deep-spread>quot', // combinators.short-circuit\n '2||',\n '0||',\n 'n||',\n '0&&',\n '2&&',\n '3||',\n '1||',\n '1&&',\n 'n&&',\n '3&&', // combinators.smart\n 'smart-unless*',\n 'keep-inputs',\n 'reduce-outputs',\n 'smart-when*',\n 'cleave>array',\n 'smart-with',\n 'smart-apply',\n 'smart-if',\n 'inputs/outputs',\n 'output>sequence-n',\n 'map-outputs',\n 'map-reduce-outputs',\n 'dropping',\n 'output>array',\n 'smart-map-reduce',\n 'smart-2map-reduce',\n 'output>array-n',\n 'nullary',\n 'input<sequence',\n 'append-outputs',\n 'drop-inputs',\n 'inputs',\n 'smart-2reduce',\n 'drop-outputs',\n 'smart-reduce',\n 'preserving',\n 'smart-when',\n 'outputs',\n 'append-outputs-as',\n 'smart-unless',\n 'smart-if*',\n 'sum-outputs',\n 'input<sequence-unsafe',\n 'output>sequence' // tafn\n ]\n factor.combinators.pattern = arrToWordsRegExp(combinators)\n Prism.languages.factor = factor\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = $false\n$false.displayName = '$false'\n$false.aliases = []\nfunction $false(Prism) {\n ;(function (Prism) {\n /**\n * Based on the manual by Wouter van Oortmerssen.\n *\n * @see {@link https://github.com/PrismJS/prism/issues/2801#issue-829717504}\n */\n Prism.languages['false'] = {\n comment: {\n pattern: /\\{[^}]*\\}/\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n 'character-code': {\n pattern: /'(?:[^\\r]|\\r\\n?)/,\n alias: 'number'\n },\n 'assembler-code': {\n pattern: /\\d+`/,\n alias: 'important'\n },\n number: /\\d+/,\n operator: /[-!#$%&'*+,./:;=>?@\\\\^_`|~ßø]/,\n punctuation: /\\[|\\]/,\n variable: /[a-z]/,\n 'non-standard': {\n pattern: /[()<BDO®]/,\n alias: 'bold'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = firestoreSecurityRules\nfirestoreSecurityRules.displayName = 'firestoreSecurityRules'\nfirestoreSecurityRules.aliases = []\nfunction firestoreSecurityRules(Prism) {\n Prism.languages['firestore-security-rules'] = Prism.languages.extend(\n 'clike',\n {\n comment: /\\/\\/.*/,\n keyword:\n /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n operator: /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/\n }\n )\n delete Prism.languages['firestore-security-rules']['class-name']\n Prism.languages.insertBefore('firestore-security-rules', 'keyword', {\n path: {\n pattern:\n /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n inside: {\n operator: /=/,\n keyword: /\\*\\*/,\n punctuation: /[.$(){}]/\n }\n },\n punctuation: /\\//\n }\n },\n method: {\n // to make the pattern shorter, the actual method names are omitted\n pattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n lookbehind: true,\n alias: 'builtin',\n inside: {\n punctuation: /,/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = flow\nflow.displayName = 'flow'\nflow.aliases = []\nfunction flow(Prism) {\n ;(function (Prism) {\n Prism.languages.flow = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('flow', 'keyword', {\n type: [\n {\n pattern:\n /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\\b/,\n alias: 'tag'\n }\n ]\n })\n Prism.languages.flow['function-variable'].pattern =\n /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i\n delete Prism.languages.flow['parameter']\n Prism.languages.insertBefore('flow', 'operator', {\n 'flow-punctuation': {\n pattern: /\\{\\||\\|\\}/,\n alias: 'punctuation'\n }\n })\n if (!Array.isArray(Prism.languages.flow.keyword)) {\n Prism.languages.flow.keyword = [Prism.languages.flow.keyword]\n }\n Prism.languages.flow.keyword.unshift(\n {\n pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/,\n lookbehind: true\n }\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = fortran\nfortran.displayName = 'fortran'\nfortran.aliases = []\nfunction fortran(Prism) {\n Prism.languages.fortran = {\n 'quoted-number': {\n pattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n alias: 'number'\n },\n string: {\n pattern:\n /(?:\\b\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n inside: {\n comment: {\n pattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n lookbehind: true\n }\n }\n },\n comment: {\n pattern: /!.*/,\n greedy: true\n },\n boolean: /\\.(?:FALSE|TRUE)\\.(?:_\\w+)?/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n keyword: [\n // Types\n /\\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\\b/i, // END statements\n /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i, // Statements\n /\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i, // Others\n /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n ],\n operator: [\n /\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n {\n // Use lookbehind to prevent confusion with (/ /)\n pattern: /(^|(?!\\().)\\/(?!\\))/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\/|\\/\\)|[(),;:&]/\n }\n}\n","'use strict'\n\nmodule.exports = fsharp\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\nfunction fsharp(Prism) {\n Prism.languages.fsharp = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\(\\*(?!\\))[\\s\\S]*?\\*\\)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n lookbehind: true,\n inside: {\n operator: /->|\\*/,\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\\b/,\n number: [\n /\\b0x[\\da-fA-F]+(?:LF|lf|un)?\\b/,\n /\\b0b[01]+(?:uy|y)?\\b/,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n /\\b\\d+(?:[IlLsy]|UL|u[lsy]?)?\\b/\n ],\n operator:\n /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|<?\\|{1,3}>?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n })\n Prism.languages.insertBefore('fsharp', 'keyword', {\n preprocessor: {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /(^#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n })\n Prism.languages.insertBefore('fsharp', 'punctuation', {\n 'computation-expression': {\n pattern: /\\b[_a-z]\\w*(?=\\s*\\{)/i,\n alias: 'keyword'\n }\n })\n Prism.languages.insertBefore('fsharp', 'string', {\n annotation: {\n pattern: /\\[<.+?>\\]/,\n greedy: true,\n inside: {\n punctuation: /^\\[<|>\\]$/,\n 'class-name': {\n pattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n lookbehind: true\n },\n 'annotation-content': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.fsharp\n }\n }\n },\n char: {\n pattern:\n /'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n greedy: true\n }\n })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ftl\nftl.displayName = 'ftl'\nftl.aliases = []\nfunction ftl(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n // https://freemarker.apache.org/docs/dgui_template_exp.html\n // FTL expression with 4 levels of nesting supported\n var FTL_EXPR =\n /[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/\n .source\n for (var i = 0; i < 2; i++) {\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, function () {\n return FTL_EXPR\n })\n }\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, /[^\\s\\S]/.source)\n var ftl = {\n comment: /<#--[\\s\\S]*?-->/,\n string: [\n {\n // raw string\n pattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(\n /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: null\n }\n }\n }\n }\n ],\n keyword: /\\b(?:as)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'builtin-function': {\n pattern: /((?:^|[^?])\\?\\s*)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b\\w+(?=\\s*\\()/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator:\n /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n punctuation: /[,;.:()[\\]{}]/\n }\n ftl.string[1].inside.interpolation.inside.rest = ftl\n Prism.languages.ftl = {\n 'ftl-comment': {\n // the pattern is shortened to be more efficient\n pattern: /^<#--[\\s\\S]*/,\n alias: 'comment'\n },\n 'ftl-directive': {\n pattern: /^<[\\s\\S]+>$/,\n inside: {\n directive: {\n pattern: /(^<\\/?)[#@][a-z]\\w*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /^<\\/?|\\/?>$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n },\n 'ftl-interpolation': {\n pattern: /^\\$\\{[\\s\\S]*\\}$/,\n inside: {\n punctuation: /^\\$\\{|\\}$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n // eslint-disable-next-line regexp/no-useless-lazy\n var pattern = RegExp(\n /<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n ),\n 'gi'\n )\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ftl',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = gap\ngap.displayName = 'gap'\ngap.aliases = []\nfunction gap(Prism) {\n // https://www.gap-system.org/Manuals/doc/ref/chap4.html\n // https://www.gap-system.org/Manuals/doc/ref/chap27.html\n Prism.languages.gap = {\n shell: {\n pattern: /^gap>[\\s\\S]*?(?=^gap>|$(?![\\s\\S]))/m,\n greedy: true,\n inside: {\n gap: {\n pattern: /^(gap>).+(?:(?:\\r(?:\\n|(?!\\n))|\\n)>.*)*/,\n lookbehind: true,\n inside: null // see below\n },\n punctuation: /^gap>/\n }\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern:\n /(^|[^\\\\'\"])(?:'(?:[^\\r\\n\\\\']|\\\\.){1,10}'|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"(?!\")|\"\"\"[\\s\\S]*?\"\"\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n continuation: {\n pattern: /([\\r\\n])>/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }\n },\n keyword:\n /\\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: {\n pattern:\n /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n lookbehind: true\n },\n continuation: {\n pattern: /([\\r\\n])>/,\n lookbehind: true,\n alias: 'punctuation'\n },\n operator: /->|[-+*/^~=!]|<>|[<>]=?|:=|\\.\\./,\n punctuation: /[()[\\]{},;.:]/\n }\n Prism.languages.gap.shell.inside.gap.inside = Prism.languages.gap\n}\n","'use strict'\n\nmodule.exports = gcode\ngcode.displayName = 'gcode'\ngcode.aliases = []\nfunction gcode(Prism) {\n Prism.languages.gcode = {\n comment: /;.*|\\B\\(.*?\\)\\B/,\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n keyword: /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n property: /\\b[A-Z]/,\n checksum: {\n pattern: /(\\*)\\d+/,\n lookbehind: true,\n alias: 'number'\n },\n // T0:0:0\n punctuation: /[:*]/\n }\n}\n","'use strict'\n\nmodule.exports = gdscript\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\nfunction gdscript(Prism) {\n Prism.languages.gdscript = {\n comment: /#.*/,\n string: {\n pattern:\n /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n greedy: true\n },\n 'class-name': {\n // class_name Foo, extends Bar, class InnerClass\n // export(int) var baz, export(int, 0) var i\n // as Node\n // const FOO: int = 9, var bar: bool = true\n // func add(reference: Item, amount: int) -> Item:\n pattern:\n /(^(?:class|class_name|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n lookbehind: true\n },\n keyword:\n /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n variable: /\\$\\w+/,\n number: [\n /\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n /\\b(?:INF|NAN|PI|TAU)\\b/\n ],\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n punctuation: /[.:,;()[\\]{}]/\n }\n}\n","'use strict'\n\nmodule.exports = gedcom\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\nfunction gedcom(Prism) {\n Prism.languages.gedcom = {\n 'line-value': {\n // Preceded by level, optional pointer, and tag\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n lookbehind: true,\n inside: {\n pointer: {\n pattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n alias: 'variable'\n }\n }\n },\n tag: {\n // Preceded by level and optional pointer\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n lookbehind: true,\n alias: 'string'\n },\n level: {\n pattern: /(^[\\t ]*)\\d+/m,\n lookbehind: true,\n alias: 'number'\n },\n pointer: {\n pattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n alias: 'variable'\n }\n }\n}\n","'use strict'\n\nmodule.exports = gherkin\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\nfunction gherkin(Prism) {\n ;(function (Prism) {\n var tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source\n Prism.languages.gherkin = {\n pystring: {\n pattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n alias: 'string'\n },\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[ \\t]*)@\\S*/m,\n lookbehind: true\n },\n feature: {\n pattern:\n /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|CaracterÃstica|Egenskab|Egenskap|Eiginleiki|Feature|FÄ«Äa|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|FuncÅ£ionalitate|FuncÈ›ionalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|FunkcionalitÄte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità |Hwaet|Hwæt|JellemzÅ‘|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|SavybÄ—|TÃnh năng|Trajto|Vermoë|VlastnosÅ¥|WÅ‚aÅ›ciwość|ZnaÄilnost|Δυνατότητα|ΛειτουÏγία|МогућноÑÑ‚|Мөмкинлек|ОÑобина|СвойÑтво|Үзенчәлеклелек|Функционал|ФункционалноÑÑ‚|ФункциÑ|Функціонал|×ª×›×•× ×”|خاصية|خصوصیت|صلاØیت|کاروبار Ú©ÛŒ ضرورت|ÙˆÙیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨà©à¨¹à¨¾à¨°|ਮà©à¨¹à¨¾à¨‚ਦਰਾ|à°—à±à°£à°®à±|ಹೆಚà³à²šà²³|ความต้à¸à¸‡à¸à¸²à¸£à¸—างธุรà¸à¸´à¸ˆ|ความสามารถ|โครงหลัà¸|기능|フィーãƒãƒ£|功能|機能):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]+/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n scenario: {\n pattern:\n /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|GeçmiÅŸ|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|NáÄrt Scenára|NáÄrt Scénáře|NáÄrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|PiemÄ“ri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|PozadÃ|Pozadie|Pozadina|PrÃklady|PÅ™Ãklady|Primer|Primeri|Primjeri|PrzykÅ‚ady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus Å¡ablonas|Scenariji|ScenÄrijs|ScenÄrijs pÄ“c parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|SituÄcija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|ZaÅ‚ożenia|ΠαÏαδείγματα|ΠεÏιγÏαφή ΣεναÏίου|ΣενάÏια|ΣενάÏιο|ΥπόβαθÏο|Кереш|КонтекÑÑ‚|Концепт|МиÑаллар|МиÑоллар|ОÑнова|Передумова|Позадина|ПредиÑториÑ|ПредыÑториÑ|Приклади|Пример|Примери|Примеры|Рамка на Ñценарий|Скица|Структура Ñценарија|Структура ÑценариÑ|Структура Ñценарію|Сценарий|Сценарий ÑтруктураÑи|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמ×ות|רקע|×ª×‘× ×™×ª תרחיש|תרחיש|الخلÙية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکÛ|منظرنامÛ|نمونه ها|उदाहरण|परिदृशà¥à¤¯|परिदृशà¥à¤¯ रूपरेखा|पृषà¥à¤ à¤à¥‚मि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలà±|కథనం|నేపథà±à°¯à°‚|సనà±à°¨à°¿à°µà±‡à°¶à°‚|ಉದಾಹರಣೆಗಳà³|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನà³à²¨à³†à²²à³†|โครงสร้างขà¸à¸‡à¹€à¸«à¸•à¸¸à¸à¸²à¸£à¸“์|ชุดขà¸à¸‡à¸•à¸±à¸§à¸à¸¢à¹ˆà¸²à¸‡|ชุดขà¸à¸‡à¹€à¸«à¸•à¸¸à¸à¸²à¸£à¸“์|à¹à¸™à¸§à¸„ิด|สรุปเหตุà¸à¸²à¸£à¸“์|เหตุà¸à¸²à¸£à¸“์|ë°°ê²½|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例å|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|å ´æ™¯|å ´æ™¯å¤§ç¶±|背景):[^:\\r\\n]*/m,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]*/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n 'table-body': {\n // Look-behind is used to skip the table head, which has the same format as any table row\n pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n lookbehind: true,\n inside: {\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n },\n td: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'string'\n },\n punctuation: /\\|/\n }\n },\n 'table-head': {\n pattern: RegExp(tableRow),\n inside: {\n th: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'variable'\n },\n punctuation: /\\|/\n }\n },\n atrule: {\n pattern:\n /(^[ \\t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|ÄŒe|Ãa ðe|Ãa|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|DaÅ£i fiind|DaÈ›i fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ãurh|Eeldades|Ef|EÄŸer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|JeÅ›li|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|KeÄ|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|MajÄ…c|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|NÃ¥r|När|Nato|NhÆ°ng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|SÃ¥|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Åži|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và |vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za pÅ™edpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|ZakÅ‚adajÄ…c|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|ΔεδομÎνου|Και|Όταν|Τότε|Ртакож|Ðгар|Ðле|Ðли|Ðммо|Ð|Әгәр|Әйтик|Әмма|Бирок|Ва|Ð’Ó™|Дадено|Дано|ДопуÑтим|ЕÑли|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Ðәтиҗәдә|Ðехай|Ðо|Онда|ПрипуÑтимо, що|ПрипуÑтимо|ПуÑÑ‚ÑŒ|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|×בל|××–×™|××–|×‘×”×™× ×ª×Ÿ|וג×|×›×שר|آنگاه|اذاً|اگر|اما|اور|با Ùرض|بالÙرض|بÙرض|پھر|تب|ثم|جب|عندما|Ùرض کیا|لكن|لیکن|متى|هنگامی|Ùˆ|अगर|और|कदा|किनà¥à¤¤à¥|चूंकि|जब|तथा|तदा|तब|परनà¥à¤¤à¥|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|à°…à°ªà±à°ªà±à°¡à±|à°ˆ పరిసà±à°¥à°¿à°¤à°¿à°²à±‹|కాని|చెపà±à°ªà°¬à°¡à°¿à°¨à°¦à°¿|మరియà±|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತà³à²¤à³|ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³|à¸à¸³à¸«à¸™à¸”ให้|ดังนั้น|à¹à¸•à¹ˆ|เมื่à¸|à¹à¸¥à¸°|그러면<|ê·¸ë¦¬ê³ <|단<|만약<|만ì¼<|ë¨¼ì €<|ì¡°ê±´<|하지만<|ã‹ã¤<|ã—ã‹ã—<|ãŸã ã—<|ãªã‚‰ã°<|ã‚‚ã—<|並且<|但ã—<|但是<|å‡å¦‚<|å‡å®š<|å‡è¨<|å‡è®¾<|å‰æ<|åŒæ—¶<|åŒæ™‚<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \\t])/m,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n inside: {\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n }\n }\n },\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = git\ngit.displayName = 'git'\ngit.aliases = []\nfunction git(Prism) {\n Prism.languages.git = {\n /*\n * A simple one line comment like in a git status command\n * For instance:\n * $ git status\n * # On branch infinite-scroll\n * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n * # and have 1 and 2 different commits each, respectively.\n * nothing to commit (working directory clean)\n */\n comment: /^#.*/m,\n /*\n * Regexp to match the changed lines in a git diff output. Check the example below.\n */\n deleted: /^[-–].*/m,\n inserted: /^\\+.*/m,\n /*\n * a string (double and simple quote)\n */\n string: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n /*\n * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n * For instance:\n * $ git add file.txt\n */\n command: {\n pattern: /^.*\\$ git .*$/m,\n inside: {\n /*\n * A git command can contain a parameter starting by a single or a double dash followed by a string\n * For instance:\n * $ git diff --cached\n * $ git log -p\n */\n parameter: /\\s--?\\w+/\n }\n },\n /*\n * Coordinates displayed in a git diff command\n * For instance:\n * $ git diff\n * diff --git file.txt file.txt\n * index 6214953..1d54a52 100644\n * --- file.txt\n * +++ file.txt\n * @@ -1 +1,2 @@\n * -Here's my tetx file\n * +Here's my text file\n * +And this is the second line\n */\n coord: /^@@.*@@$/m,\n /*\n * Match a \"commit [SHA1]\" line in a git log output.\n * For instance:\n * $ git log\n * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n * Author: lgiraudel\n * Date: Mon Feb 17 11:18:34 2014 +0100\n *\n * Add of a new line\n */\n 'commit-sha1': /^commit \\w{40}$/m\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = glsl\nglsl.displayName = 'glsl'\nglsl.aliases = []\nfunction glsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.glsl = Prism.languages.extend('c', {\n keyword:\n /\\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = gml\ngml.displayName = 'gml'\ngml.aliases = []\nfunction gml(Prism) {\n Prism.languages.gamemakerlanguage = Prism.languages.gml =\n Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\\b/,\n number:\n /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n operator:\n /--|\\+\\+|[-+%/=]=?|!=|\\*\\*?=?|<[<=>]?|>[=>]?|&&?|\\^\\^?|\\|\\|?|~|\\b(?:and|at|not|or|with|xor)\\b/,\n constant:\n /\\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\\d|numpad\\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\\w+)\\b/,\n variable:\n /\\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\\d)|argument|global|local|other|self)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = gn\ngn.displayName = 'gn'\ngn.aliases = ['gni']\nfunction gn(Prism) {\n // https://gn.googlesource.com/gn/+/refs/heads/main/docs/reference.md#grammar\n Prism.languages.gn = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'string-literal': {\n pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[\\s\\S]*?\\}|[a-zA-Z_]\\w*|0x[a-fA-F0-9]{2})/,\n lookbehind: true,\n inside: {\n number: /^\\$0x[\\s\\S]{2}$/,\n variable: /^\\$\\w+$/,\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n string: /[\\s\\S]+/\n }\n },\n keyword: /\\b(?:else|if)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'builtin-function': {\n // a few functions get special highlighting to improve readability\n pattern:\n /\\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\\s*\\()/i,\n alias: 'keyword'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n constant:\n /\\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\\b/,\n number: /-?\\b\\d+\\b/,\n operator: /[-+!=<>]=?|&&|\\|\\|/,\n punctuation: /[(){}[\\],.]/\n }\n Prism.languages.gn['string-literal'].inside['interpolation'].inside[\n 'expression'\n ].inside = Prism.languages.gn\n Prism.languages.gni = Prism.languages.gn\n}\n","'use strict'\n\nmodule.exports = goModule\ngoModule.displayName = 'goModule'\ngoModule.aliases = []\nfunction goModule(Prism) {\n // https://go.dev/ref/mod#go-mod-file-module\n Prism.languages['go-mod'] = Prism.languages['go-module'] = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n version: {\n pattern: /(^|[\\s()[\\],])v\\d+\\.\\d+\\.\\d+(?:[+-][-+.\\w]*)?(?![^\\s()[\\],])/,\n lookbehind: true,\n alias: 'number'\n },\n 'go-version': {\n pattern: /((?:^|\\s)go\\s+)\\d+(?:\\.\\d+){1,2}/,\n lookbehind: true,\n alias: 'number'\n },\n keyword: {\n pattern: /^([ \\t]*)(?:exclude|go|module|replace|require|retract)\\b/m,\n lookbehind: true\n },\n operator: /=>/,\n punctuation: /[()[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = go\ngo.displayName = 'go'\ngo.aliases = []\nfunction go(Prism) {\n Prism.languages.go = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n boolean: /\\b(?:_|false|iota|nil|true)\\b/,\n number: [\n // binary and octal integers\n /\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, // hexadecimal integers and floats\n /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, // decimal integers and floats\n /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n ],\n operator:\n /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n builtin:\n /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n })\n Prism.languages.insertBefore('go', 'string', {\n char: {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n greedy: true\n }\n })\n delete Prism.languages.go['class-name']\n}\n","'use strict'\n\nmodule.exports = graphql\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\nfunction graphql(Prism) {\n Prism.languages.graphql = {\n comment: /#.*/,\n description: {\n pattern:\n /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n greedy: true,\n alias: 'string',\n inside: {\n 'language-markdown': {\n pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: Prism.languages.markdown\n }\n }\n },\n string: {\n pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'atom-input': {\n pattern: /\\b[A-Z]\\w*Input\\b/,\n alias: 'class-name'\n },\n scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n 'class-name': {\n pattern:\n /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n lookbehind: true\n },\n fragment: {\n pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-mutation': {\n pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-query': {\n pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n keyword:\n /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n operator: /[!=|&]|\\.{3}/,\n 'property-query': /\\w+(?=\\s*\\()/,\n object: /\\w+(?=\\s*\\{)/,\n punctuation: /[!(){}\\[\\]:=,]/,\n property: /\\w+/\n }\n Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n if (env.language !== 'graphql') {\n return\n }\n /**\n * get the graphql token stream that we want to customize\n *\n * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n * @type {Token[]}\n */\n var validTokens = env.tokens.filter(function (token) {\n return (\n typeof token !== 'string' &&\n token.type !== 'comment' &&\n token.type !== 'scalar'\n )\n })\n var currentIndex = 0\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {number} offset\n * @returns {Token | undefined}\n */\n function getToken(offset) {\n return validTokens[currentIndex + offset]\n }\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {readonly string[]} types\n * @param {number} [offset=0]\n * @returns {boolean}\n */\n function isTokenType(types, offset) {\n offset = offset || 0\n for (var i = 0; i < types.length; i++) {\n var token = getToken(i + offset)\n if (!token || token.type !== types[i]) {\n return false\n }\n }\n return true\n }\n /**\n * Returns the index of the closing bracket to an opening bracket.\n *\n * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n *\n * If no closing bracket could be found, `-1` will be returned.\n *\n * @param {RegExp} open\n * @param {RegExp} close\n * @returns {number}\n */\n function findClosingBracket(open, close) {\n var stackHeight = 1\n for (var i = currentIndex; i < validTokens.length; i++) {\n var token = validTokens[i]\n var content = token.content\n if (token.type === 'punctuation' && typeof content === 'string') {\n if (open.test(content)) {\n stackHeight++\n } else if (close.test(content)) {\n stackHeight--\n if (stackHeight === 0) {\n return i\n }\n }\n }\n }\n return -1\n }\n /**\n * Adds an alias to the given token.\n *\n * @param {Token} token\n * @param {string} alias\n * @returns {void}\n */\n function addAlias(token, alias) {\n var aliases = token.alias\n if (!aliases) {\n token.alias = aliases = []\n } else if (!Array.isArray(aliases)) {\n token.alias = aliases = [aliases]\n }\n aliases.push(alias)\n }\n for (; currentIndex < validTokens.length; ) {\n var startToken = validTokens[currentIndex++] // add special aliases for mutation tokens\n if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n // any array of the names of all input variables (if any)\n var inputVariables = []\n if (\n isTokenType(['definition-mutation', 'punctuation']) &&\n getToken(1).content === '('\n ) {\n // definition\n currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n if (definitionEnd === -1) {\n continue\n } // find all input variables\n for (; currentIndex < definitionEnd; currentIndex++) {\n var t = getToken(0)\n if (t.type === 'variable') {\n addAlias(t, 'variable-input')\n inputVariables.push(t.content)\n }\n }\n currentIndex = definitionEnd + 1\n }\n if (\n isTokenType(['punctuation', 'property-query']) &&\n getToken(0).content === '{'\n ) {\n currentIndex++ // skip opening bracket\n addAlias(getToken(0), 'property-mutation')\n if (inputVariables.length > 0) {\n var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n if (mutationEnd === -1) {\n continue\n } // give references to input variables a special alias\n for (var i = currentIndex; i < mutationEnd; i++) {\n var varToken = validTokens[i]\n if (\n varToken.type === 'variable' &&\n inputVariables.indexOf(varToken.content) >= 0\n ) {\n addAlias(varToken, 'variable-input')\n }\n }\n }\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = groovy\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\nfunction groovy(Prism) {\n Prism.languages.groovy = Prism.languages.extend('clike', {\n string: [\n {\n // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n pattern:\n /(\"\"\"|''')(?:[^\\\\]|\\\\[\\s\\S])*?\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n greedy: true\n },\n {\n // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n // simple division (see JS regex), so find a fix maybe?\n pattern: /([\"'/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n }\n ],\n keyword:\n /\\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n number:\n /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n lookbehind: true\n },\n punctuation: /\\.+|[{}[\\];(),:$]/\n })\n Prism.languages.insertBefore('groovy', 'string', {\n shebang: {\n pattern: /#!.+/,\n alias: 'comment'\n }\n })\n Prism.languages.insertBefore('groovy', 'punctuation', {\n 'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n })\n Prism.languages.insertBefore('groovy', 'function', {\n annotation: {\n pattern: /(^|[^.])@\\w+/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Handle string interpolation\n Prism.hooks.add('wrap', function (env) {\n if (env.language === 'groovy' && env.type === 'string') {\n var delimiter = env.content.value[0]\n if (delimiter != \"'\") {\n var pattern = /([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n if (delimiter === '$') {\n pattern = /([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n } // To prevent double HTML-encoding we have to decode env.content first\n env.content.value = env.content.value\n .replace(/</g, '<')\n .replace(/&/g, '&')\n env.content = Prism.highlight(env.content.value, {\n expression: {\n pattern: pattern,\n lookbehind: true,\n inside: Prism.languages.groovy\n }\n })\n env.classes.push(delimiter === '/' ? 'regex' : 'gstring')\n }\n }\n })\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = haml\nhaml.displayName = 'haml'\nhaml.aliases = []\nfunction haml(Prism) {\n Prism.register(refractorRuby)\n /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n ;(function (Prism) {\n Prism.languages.haml = {\n // Multiline stuff should appear before the rest\n 'multiline-comment': {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n lookbehind: true,\n alias: 'comment'\n },\n 'multiline-code': [\n {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n lookbehind: true,\n inside: Prism.languages.ruby\n }\n ],\n // See at the end of the file for known filters\n filter: {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'symbol'\n }\n }\n },\n markup: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n lookbehind: true\n },\n tag: {\n // Allows for one nested group of braces\n pattern:\n /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n lookbehind: true,\n inside: {\n attributes: [\n {\n // Lookbehind tries to prevent interpolations from breaking it all\n // Allows for one nested group of braces\n pattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n lookbehind: true\n },\n 'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[=(),]/\n }\n },\n {\n pattern: /\\[[^\\]]+\\]/,\n inside: Prism.languages.ruby\n }\n ],\n punctuation: /[<>]/\n }\n },\n code: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n // Interpolations in plain text\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n ruby: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.ruby\n }\n }\n },\n punctuation: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n lookbehind: true\n }\n }\n var filter_pattern =\n '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+' // Non exhaustive list of available filters and associated languages\n var filters = [\n 'css',\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'erb',\n 'javascript',\n 'less',\n 'markdown',\n 'ruby',\n 'scss',\n 'textile'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('{{filter_name}}', function () {\n return filter.filter\n })\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'symbol'\n },\n text: {\n pattern: /[\\s\\S]+/,\n alias: [filter.language, 'language-' + filter.language],\n inside: Prism.languages[filter.language]\n }\n }\n }\n }\n }\n Prism.languages.insertBefore('haml', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = handlebars\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = ['hbs']\nfunction handlebars(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.handlebars = {\n comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n delimiter: {\n pattern: /^\\{\\{\\{?|\\}\\}\\}?$/,\n alias: 'punctuation'\n },\n string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n boolean: /\\b(?:false|true)\\b/,\n block: {\n pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/,\n lookbehind: true,\n alias: 'keyword'\n },\n brackets: {\n pattern: /\\[[^\\]]+\\]/,\n inside: {\n punctuation: /\\[|\\]/,\n variable: /[\\s\\S]+/\n }\n },\n punctuation: /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n variable: /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'handlebars',\n handlebarsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(\n env,\n 'handlebars'\n )\n })\n Prism.languages.hbs = Prism.languages.handlebars\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = haskell\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\nfunction haskell(Prism) {\n Prism.languages.haskell = {\n comment: {\n pattern:\n /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|\\{-[\\s\\S]*?-\\})/m,\n lookbehind: true\n },\n char: {\n pattern:\n /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|hiding|import|qualified)\\b/,\n punctuation: /\\./\n }\n },\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n // decimal integers and floating point numbers | octal integers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n operator: [\n {\n // infix operator\n pattern: /`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n greedy: true\n },\n {\n // function composition\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }, // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n //\n // This regex means: /[-!#$%*+=?&@|~.:<>^\\\\\\/]+/ without /\\./.\n /[-!#$%*+=?&@|~:<>^\\\\\\/][-!#$%*+=?&@|~.:<>^\\\\\\/]*|\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+/\n ],\n // In Haskell, nearly everything is a variable, do not highlight these.\n hvariable: {\n pattern: /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*/,\n inside: {\n punctuation: /\\./\n }\n },\n constant: {\n pattern: /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.hs = Prism.languages.haskell\n}\n","'use strict'\n\nmodule.exports = haxe\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\nfunction haxe(Prism) {\n Prism.languages.haxe = Prism.languages.extend('clike', {\n string: {\n // Strings can be multi-line\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n 'class-name': [\n {\n pattern:\n /(\\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\\s+)[A-Z_]\\w*/,\n lookbehind: true\n }, // based on naming convention\n /\\b[A-Z]\\w*/\n ],\n // The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n keyword:\n /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\\.)\\b/,\n function: {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:<[^<>]*>\\s*)?\\()/i,\n greedy: true\n },\n operator: /\\.{3}|\\+\\+|--|&&|\\|\\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/\n })\n Prism.languages.insertBefore('haxe', 'string', {\n 'string-interpolation': {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^{}]+\\})/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.haxe\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('haxe', 'class-name', {\n regex: {\n pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[a-z]*/,\n greedy: true,\n inside: {\n 'regex-flags': /\\b[a-z]+$/,\n 'regex-source': {\n pattern: /^(~\\/)[\\s\\S]+(?=\\/$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^~\\/|\\/$/\n }\n }\n })\n Prism.languages.insertBefore('haxe', 'keyword', {\n preprocessor: {\n pattern: /#(?:else|elseif|end|if)\\b.*/,\n alias: 'property'\n },\n metadata: {\n pattern: /@:?[\\w.]+/,\n alias: 'symbol'\n },\n reification: {\n pattern: /\\$(?:\\w+|(?=\\{))/,\n alias: 'important'\n }\n })\n}\n","'use strict'\n\nmodule.exports = hcl\nhcl.displayName = 'hcl'\nhcl.aliases = []\nfunction hcl(Prism) {\n Prism.languages.hcl = {\n comment: /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n heredoc: {\n pattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n greedy: true,\n alias: 'string'\n },\n keyword: [\n {\n pattern:\n /(?:data|resource)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+\\{)/i,\n inside: {\n type: {\n pattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n {\n pattern:\n /(?:backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?=\\{)/i,\n inside: {\n type: {\n pattern:\n /(backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n /[\\w-]+(?=\\s+\\{)/\n ],\n property: [/[-\\w\\.]+(?=\\s*=(?!=))/, /\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/],\n string: {\n pattern:\n /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n lookbehind: true,\n inside: {\n type: {\n pattern:\n /(\\b(?:count|data|local|module|path|self|terraform|var)\\b\\.)[\\w\\*]+/i,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: /\\b(?:count|data|local|module|path|self|terraform|var)\\b/i,\n function: /\\w+(?=\\()/,\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/\n }\n }\n }\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:false|true)\\b/i,\n punctuation: /[=\\[\\]{}]/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = hlsl\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\nfunction hlsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.hlsl = Prism.languages.extend('c', {\n // Regarding keywords and class names:\n // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n 'class-name': [\n Prism.languages.c['class-name'],\n /\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n ],\n keyword: [\n // HLSL keyword\n /\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/, // scalar, vector, and matrix types\n /\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n ],\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n number:\n /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = hoon\nhoon.displayName = 'hoon'\nhoon.aliases = []\nfunction hoon(Prism) {\n Prism.languages.hoon = {\n comment: {\n pattern: /::.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n constant: /%(?:\\.[ny]|[\\w-]+)/,\n 'class-name': /@(?:[a-z0-9-]*[a-z0-9])?|\\*/i,\n function: /(?:\\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,\n keyword:\n /\\.[\\^\\+\\*=\\?]|![><:\\.=\\?!]|=[>|:,\\.\\-\\^<+;/~\\*\\?]|\\?[>|:\\.\\-\\^<\\+&~=@!]|\\|[\\$_%:\\.\\-\\^~\\*=@\\?]|\\+[|\\$\\+\\*]|:[_\\-\\^\\+~\\*]|%[_:\\.\\-\\^\\+~\\*=]|\\^[|:\\.\\-\\+&~\\*=\\?]|\\$[|_%:<>\\-\\^&~@=\\?]|;[:<\\+;\\/~\\*=]|~[>|\\$_%<\\+\\/&=\\?!]|--|==/\n }\n}\n","'use strict'\n\nmodule.exports = hpkp\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\nfunction hpkp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n */\n Prism.languages.hpkp = {\n directive: {\n pattern:\n /\\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\\s;=]|$)/i,\n alias: 'property'\n },\n operator: /=/,\n punctuation: /;/\n }\n}\n","'use strict'\n\nmodule.exports = hsts\nhsts.displayName = 'hsts'\nhsts.aliases = []\nfunction hsts(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n */\n Prism.languages.hsts = {\n directive: {\n pattern: /\\b(?:includeSubDomains|max-age|preload)(?=[\\s;=]|$)/i,\n alias: 'property'\n },\n operator: /=/,\n punctuation: /;/\n }\n}\n","'use strict'\n\nmodule.exports = http\nhttp.displayName = 'http'\nhttp.aliases = []\nfunction http(Prism) {\n ;(function (Prism) {\n /**\n * @param {string} name\n * @returns {RegExp}\n */\n function headerValueOf(name) {\n return RegExp('(^(?:' + name + '):[ \\t]*(?![ \\t]))[^]+', 'i')\n }\n Prism.languages.http = {\n 'request-line': {\n pattern:\n /^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\\s(?:https?:\\/\\/|\\/)\\S*\\sHTTP\\/[\\d.]+/m,\n inside: {\n // HTTP Method\n method: {\n pattern: /^[A-Z]+\\b/,\n alias: 'property'\n },\n // Request Target e.g. http://example.com, /path/to/file\n 'request-target': {\n pattern: /^(\\s)(?:https?:\\/\\/|\\/)\\S*(?=\\s)/,\n lookbehind: true,\n alias: 'url',\n inside: Prism.languages.uri\n },\n // HTTP Version\n 'http-version': {\n pattern: /^(\\s)HTTP\\/[\\d.]+/,\n lookbehind: true,\n alias: 'property'\n }\n }\n },\n 'response-status': {\n pattern: /^HTTP\\/[\\d.]+ \\d+ .+/m,\n inside: {\n // HTTP Version\n 'http-version': {\n pattern: /^HTTP\\/[\\d.]+/,\n alias: 'property'\n },\n // Status Code\n 'status-code': {\n pattern: /^(\\s)\\d+(?=\\s)/,\n lookbehind: true,\n alias: 'number'\n },\n // Reason Phrase\n 'reason-phrase': {\n pattern: /^(\\s).+/,\n lookbehind: true,\n alias: 'string'\n }\n }\n },\n header: {\n pattern: /^[\\w-]+:.+(?:(?:\\r\\n?|\\n)[ \\t].+)*/m,\n inside: {\n 'header-value': [\n {\n pattern: headerValueOf(/Content-Security-Policy/.source),\n lookbehind: true,\n alias: ['csp', 'languages-csp'],\n inside: Prism.languages.csp\n },\n {\n pattern: headerValueOf(/Public-Key-Pins(?:-Report-Only)?/.source),\n lookbehind: true,\n alias: ['hpkp', 'languages-hpkp'],\n inside: Prism.languages.hpkp\n },\n {\n pattern: headerValueOf(/Strict-Transport-Security/.source),\n lookbehind: true,\n alias: ['hsts', 'languages-hsts'],\n inside: Prism.languages.hsts\n },\n {\n pattern: headerValueOf(/[^:]+/.source),\n lookbehind: true\n }\n ],\n 'header-name': {\n pattern: /^[^:]+/,\n alias: 'keyword'\n },\n punctuation: /^:/\n }\n }\n } // Create a mapping of Content-Type headers to language definitions\n var langs = Prism.languages\n var httpLanguages = {\n 'application/javascript': langs.javascript,\n 'application/json': langs.json || langs.javascript,\n 'application/xml': langs.xml,\n 'text/xml': langs.xml,\n 'text/html': langs.html,\n 'text/css': langs.css,\n 'text/plain': langs.plain\n } // Declare which types can also be suffixes\n var suffixTypes = {\n 'application/json': true,\n 'application/xml': true\n }\n /**\n * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n *\n * @param {string} contentType\n * @returns {string}\n */\n function getSuffixPattern(contentType) {\n var suffix = contentType.replace(/^[a-z]+\\//, '')\n var suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])'\n return '(?:' + contentType + '|' + suffixPattern + ')'\n } // Insert each content type parser that has its associated language\n // currently loaded.\n var options\n for (var contentType in httpLanguages) {\n if (httpLanguages[contentType]) {\n options = options || {}\n var pattern = suffixTypes[contentType]\n ? getSuffixPattern(contentType)\n : contentType\n options[contentType.replace(/\\//g, '-')] = {\n pattern: RegExp(\n '(' +\n /content-type:\\s*/.source +\n pattern +\n /(?:(?:\\r\\n?|\\n)[\\w-].*)*(?:\\r(?:\\n|(?!\\n))|\\n)/.source +\n ')' + // This is a little interesting:\n // The HTTP format spec required 1 empty line before the body to make everything unambiguous.\n // However, when writing code by hand (e.g. to display on a website) people can forget about this,\n // so we want to be liberal here. We will allow the empty line to be omitted if the first line of\n // the body does not start with a [\\w-] character (as headers do).\n /[^ \\t\\w-][\\s\\S]*/.source,\n 'i'\n ),\n lookbehind: true,\n inside: httpLanguages[contentType]\n }\n }\n }\n if (options) {\n Prism.languages.insertBefore('http', 'header', options)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ichigojam\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\nfunction ichigojam(Prism) {\n // according to the offical reference (EN)\n // https://ichigojam.net/IchigoJam-en.html\n Prism.languages.ichigojam = {\n comment: /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n greedy: true\n },\n number: /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n function:\n /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n label: /(?:\\B@\\S+)/,\n operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n punctuation: /[\\[,;:()\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = icon\nicon.displayName = 'icon'\nicon.aliases = []\nfunction icon(Prism) {\n Prism.languages.icon = {\n comment: /#.*/,\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n number: /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n 'builtin-keyword': {\n pattern:\n /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n alias: 'variable'\n },\n directive: {\n pattern: /\\$\\w+/,\n alias: 'builtin'\n },\n keyword:\n /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n operator:\n /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n punctuation: /[\\[\\](){},;]/\n }\n}\n","'use strict'\n\nmodule.exports = icuMessageFormat\nicuMessageFormat.displayName = 'icuMessageFormat'\nicuMessageFormat.aliases = []\nfunction icuMessageFormat(Prism) {\n // https://unicode-org.github.io/icu/userguide/format_parse/messages/\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/MessageFormat.html\n ;(function (Prism) {\n /**\n * @param {string} source\n * @param {number} level\n * @returns {string}\n */\n function nested(source, level) {\n if (level <= 0) {\n return /[]/.source\n } else {\n return source.replace(/<SELF>/g, function () {\n return nested(source, level - 1)\n })\n }\n }\n var stringPattern = /'[{}:=,](?:[^']|'')*'(?!')/\n var escape = {\n pattern: /''/,\n greedy: true,\n alias: 'operator'\n }\n var string = {\n pattern: stringPattern,\n greedy: true,\n inside: {\n escape: escape\n }\n }\n var argumentSource = nested(\n /\\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\\}/.source.replace(\n /<STR>/g,\n function () {\n return stringPattern.source\n }\n ),\n 8\n )\n var nestedMessage = {\n pattern: RegExp(argumentSource),\n inside: {\n message: {\n pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: null // see below\n },\n 'message-delimiter': {\n pattern: /./,\n alias: 'punctuation'\n }\n }\n }\n Prism.languages['icu-message-format'] = {\n argument: {\n pattern: RegExp(argumentSource),\n greedy: true,\n inside: {\n content: {\n pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: {\n 'argument-name': {\n pattern: /^(\\s*)[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'choice-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1ChoiceFormat.html#details\n pattern: /^(\\s*,\\s*choice\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\|/,\n range: {\n pattern: /^(\\s*)[+-]?(?:\\d+(?:\\.\\d*)?|\\u221e)\\s*[<#\\u2264]/,\n lookbehind: true,\n inside: {\n operator: /[<#\\u2264]/,\n number: /\\S+/\n }\n },\n rest: null // see below\n }\n },\n 'plural-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/PluralFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n pattern:\n /^(\\s*,\\s*(?:plural|selectordinal)\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n offset: /^offset:\\s*\\d+/,\n 'nested-message': nestedMessage,\n selector: {\n pattern: /=\\d+|[^{}:=,\\s]+/,\n inside: {\n keyword: /^(?:few|many|one|other|two|zero)$/\n }\n }\n }\n },\n 'select-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/SelectFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n pattern: /^(\\s*,\\s*select\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n 'nested-message': nestedMessage,\n selector: {\n pattern: /[^{}:=,\\s]+/,\n inside: {\n keyword: /^other$/\n }\n }\n }\n },\n keyword: /\\b(?:choice|plural|select|selectordinal)\\b/,\n 'arg-type': {\n pattern: /\\b(?:date|duration|number|ordinal|spellout|time)\\b/,\n alias: 'keyword'\n },\n 'arg-skeleton': {\n pattern: /(,\\s*)::[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'arg-style': {\n pattern:\n /(,\\s*)(?:currency|full|integer|long|medium|percent|short)(?=\\s*$)/,\n lookbehind: true\n },\n 'arg-style-text': {\n pattern: RegExp(\n /(^\\s*,\\s*(?=\\S))/.source +\n nested(/(?:[^{}']|'[^']*'|\\{(?:<SELF>)?\\})+/.source, 8) +\n '$'\n ),\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /,/\n }\n },\n 'argument-delimiter': {\n pattern: /./,\n alias: 'operator'\n }\n }\n },\n escape: escape,\n string: string\n }\n nestedMessage.inside.message.inside = Prism.languages['icu-message-format']\n Prism.languages['icu-message-format'].argument.inside.content.inside[\n 'choice-style'\n ].inside.rest = Prism.languages['icu-message-format']\n })(Prism)\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = idris\nidris.displayName = 'idris'\nidris.aliases = ['idr']\nfunction idris(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.idris = Prism.languages.extend('haskell', {\n comment: {\n pattern: /(?:(?:--|\\|\\|\\|).*$|\\{-[\\s\\S]*?-\\})/m\n },\n keyword:\n /\\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\\b/,\n builtin: undefined\n })\n Prism.languages.insertBefore('idris', 'keyword', {\n 'import-statement': {\n pattern: /(^\\s*import\\s+)(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*/m,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.idr = Prism.languages.idris\n}\n","'use strict'\n\nmodule.exports = iecst\niecst.displayName = 'iecst'\niecst.aliases = []\nfunction iecst(Prism) {\n Prism.languages.iecst = {\n comment: [\n {\n pattern:\n /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: [\n /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\\b/i,\n /\\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\\b/\n ],\n 'class-name':\n /\\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\\b/,\n address: {\n pattern: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n alias: 'symbol'\n },\n number:\n /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:D|DT|T|TOD)#[\\d_shmd:]*|\\b[A-Z]*#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/,\n operator:\n /S?R?:?=>?|&&?|\\*\\*?|<[=>]?|>=?|[-:^/+#]|\\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n punctuation: /[()[\\].,;]/\n }\n}\n","'use strict'\n\nmodule.exports = ignore\nignore.displayName = 'ignore'\nignore.aliases = ['gitignore', 'hgignore', 'npmignore']\nfunction ignore(Prism) {\n ;(function (Prism) {\n Prism.languages.ignore = {\n // https://git-scm.com/docs/gitignore\n comment: /^#.*/m,\n entry: {\n pattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n alias: 'string',\n inside: {\n operator: /^!|\\*\\*?|\\?/,\n regex: {\n pattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n lookbehind: true\n },\n punctuation: /\\//\n }\n }\n }\n Prism.languages.gitignore = Prism.languages.ignore\n Prism.languages.hgignore = Prism.languages.ignore\n Prism.languages.npmignore = Prism.languages.ignore\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = inform7\ninform7.displayName = 'inform7'\ninform7.aliases = []\nfunction inform7(Prism) {\n Prism.languages.inform7 = {\n string: {\n pattern: /\"[^\"]*\"/,\n inside: {\n substitution: {\n pattern: /\\[[^\\[\\]]+\\]/,\n inside: {\n delimiter: {\n pattern: /\\[|\\]/,\n alias: 'punctuation'\n } // See rest below\n }\n }\n }\n },\n comment: {\n pattern: /\\[[^\\[\\]]+\\]/,\n greedy: true\n },\n title: {\n pattern: /^[ \\t]*(?:book|chapter|part(?! of)|section|table|volume)\\b.+/im,\n alias: 'important'\n },\n number: {\n pattern:\n /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\\b(?!-)/i,\n lookbehind: true\n },\n verb: {\n pattern:\n /(^|[^-])\\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\\b(?!-)/i,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern:\n /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n lookbehind: true\n },\n property: {\n pattern:\n /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n lookbehind: true,\n alias: 'symbol'\n },\n position: {\n pattern:\n /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n pattern:\n /(^|[^-])\\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n lookbehind: true,\n alias: 'variable'\n },\n punctuation: /[.,:;(){}]/\n }\n Prism.languages.inform7['string'].inside['substitution'].inside.rest =\n Prism.languages.inform7 // We don't want the remaining text in the substitution to be highlighted as the string.\n Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n pattern: /\\S(?:\\s*\\S)*/,\n alias: 'comment'\n }\n}\n","'use strict'\n\nmodule.exports = ini\nini.displayName = 'ini'\nini.aliases = []\nfunction ini(Prism) {\n Prism.languages.ini = {\n /**\n * The component mimics the behavior of the Win32 API parser.\n *\n * @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}\n */\n comment: {\n pattern: /(^[ \\f\\t\\v]*)[#;][^\\n\\r]*/m,\n lookbehind: true\n },\n section: {\n pattern: /(^[ \\f\\t\\v]*)\\[[^\\n\\r\\]]*\\]?/m,\n lookbehind: true,\n inside: {\n 'section-name': {\n pattern: /(^\\[[ \\f\\t\\v]*)[^ \\f\\t\\v\\]]+(?:[ \\f\\t\\v]+[^ \\f\\t\\v\\]]+)*/,\n lookbehind: true,\n alias: 'selector'\n },\n punctuation: /\\[|\\]/\n }\n },\n key: {\n pattern:\n /(^[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v=]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v=]+)*(?=[ \\f\\t\\v]*=)/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n value: {\n pattern: /(=[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v]+)*/,\n lookbehind: true,\n alias: 'attr-value',\n inside: {\n 'inner-value': {\n pattern: /^(\"|').+(?=\\1$)/,\n lookbehind: true\n }\n }\n },\n punctuation: /=/\n }\n}\n","'use strict'\n\nmodule.exports = io\nio.displayName = 'io'\nio.aliases = []\nfunction io(Prism) {\n Prism.languages.io = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*|#.*)/,\n lookbehind: true,\n greedy: true\n },\n 'triple-quoted-string': {\n pattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n builtin:\n /\\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\\b/,\n boolean: /\\b(?:false|nil|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n operator:\n /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:and|not|or|return)\\b|@@?|\\?\\??|\\.\\./,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = j\nj.displayName = 'j'\nj.aliases = []\nfunction j(Prism) {\n Prism.languages.j = {\n comment: {\n pattern: /\\bNB\\..*/,\n greedy: true\n },\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\\w+|goto_\\w+|if|label_\\w+|return|select|throw|try|while|whilst)\\.)/,\n verb: {\n // Negative look-ahead prevents bad highlighting\n // of ^: ;. =. =: !. !:\n pattern:\n /(?!\\^:|;\\.|[=!][.:])(?:\\{(?:\\.|::?)?|p(?:\\.\\.?|:)|[=!\\]]|[<>+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n alias: 'keyword'\n },\n number:\n /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:ad|ar|[ejpx])_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n adverb: {\n pattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n alias: 'builtin'\n },\n operator: /[=a][.:]|_\\./,\n conjunction: {\n pattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n}\n","'use strict'\n\nmodule.exports = java\njava.displayName = 'java'\njava.aliases = []\nfunction java(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/ // full package (optional) + parent classes (optional)\n var classNamePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // based on the java naming conventions\n var className = {\n pattern: RegExp(classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /\\./\n }\n }\n Prism.languages.java = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n className,\n {\n // variables and parameters\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n function: [\n Prism.languages.clike.function,\n {\n pattern: /(::\\s*)[a-z_]\\w*/,\n lookbehind: true\n }\n ],\n number:\n /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n operator: {\n pattern:\n /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('java', 'string', {\n 'triple-quoted-string': {\n // http://openjdk.java.net/jeps/355#Description\n pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n char: {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('java', 'class-name', {\n annotation: {\n pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n lookbehind: true,\n alias: 'punctuation'\n },\n generics: {\n pattern:\n /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n },\n namespace: {\n pattern: RegExp(\n /(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = javadoc\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\nfunction javadoc(Prism) {\n Prism.register(refractorJava)\n Prism.register(refractorJavadoclike)\n ;(function (Prism) {\n var codeLinePattern = /(^(?:[\\t ]*(?:\\*\\s*)*))[^*\\s].*$/m\n var memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source\n var reference =\n /(?:\\b[a-zA-Z]\\w+\\s*\\.\\s*)*\\b[A-Z]\\w*(?:\\s*<mem>)?|<mem>/.source.replace(\n /<mem>/g,\n function () {\n return memberReference\n }\n )\n Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})\n Prism.languages.insertBefore('javadoc', 'keyword', {\n reference: {\n pattern: RegExp(\n /(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)/\n .source +\n '(?:' +\n reference +\n ')'\n ),\n lookbehind: true,\n inside: {\n function: {\n pattern: /(#\\s*)\\w+(?=\\s*\\()/,\n lookbehind: true\n },\n field: {\n pattern: /(#\\s*)\\w+/,\n lookbehind: true\n },\n namespace: {\n pattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n inside: {\n punctuation: /\\./\n }\n },\n 'class-name': /\\b[A-Z]\\w*/,\n keyword: Prism.languages.java.keyword,\n punctuation: /[#()[\\],.]/\n }\n },\n 'class-name': {\n // @param <T> the first generic type parameter\n pattern: /(@param\\s+)<[A-Z]\\w*>/,\n lookbehind: true,\n inside: {\n punctuation: /[.<>]/\n }\n },\n 'code-section': [\n {\n pattern:\n /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n lookbehind: true,\n inside: {\n code: {\n // there can't be any HTML inside of {@code} tags\n pattern: codeLinePattern,\n lookbehind: true,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n },\n {\n pattern:\n /(<(code|pre|tt)>(?!<code>)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n lookbehind: true,\n inside: {\n line: {\n pattern: codeLinePattern,\n lookbehind: true,\n inside: {\n // highlight HTML tags and entities\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity,\n code: {\n // everything else is Java code\n pattern: /.+/,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n }\n }\n }\n ],\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity\n })\n Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javadoclike\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\nfunction javadoclike(Prism) {\n ;(function (Prism) {\n var javaDocLike = (Prism.languages.javadoclike = {\n parameter: {\n pattern:\n /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m,\n lookbehind: true\n },\n keyword: {\n // keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n // @word, {@word}\n pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n lookbehind: true\n },\n punctuation: /[{}]/\n })\n /**\n * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n *\n * @param {string} lang the language add doc comment support to.\n * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n */\n function docCommentSupport(lang, callback) {\n var tokenName = 'doc-comment'\n var grammar = Prism.languages[lang]\n if (!grammar) {\n return\n }\n var token = grammar[tokenName]\n if (!token) {\n // add doc comment: /** */\n var definition = {}\n definition[tokenName] = {\n pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n alias: 'comment'\n }\n grammar = Prism.languages.insertBefore(lang, 'comment', definition)\n token = grammar[tokenName]\n }\n if (token instanceof RegExp) {\n // convert regex to object\n token = grammar[tokenName] = {\n pattern: token\n }\n }\n if (Array.isArray(token)) {\n for (var i = 0, l = token.length; i < l; i++) {\n if (token[i] instanceof RegExp) {\n token[i] = {\n pattern: token[i]\n }\n }\n callback(token[i])\n }\n } else {\n callback(token)\n }\n }\n /**\n * Adds doc-comment support to the given languages for the given documentation language.\n *\n * @param {string[]|string} languages\n * @param {Object} docLanguage\n */\n function addSupport(languages, docLanguage) {\n if (typeof languages === 'string') {\n languages = [languages]\n }\n languages.forEach(function (lang) {\n docCommentSupport(lang, function (pattern) {\n if (!pattern.inside) {\n pattern.inside = {}\n }\n pattern.inside.rest = docLanguage\n })\n })\n }\n Object.defineProperty(javaDocLike, 'addSupport', {\n value: addSupport\n })\n javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javascript\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\nfunction javascript(Prism) {\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [\n Prism.languages.clike['class-name'],\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }\n ],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number: {\n pattern: RegExp(\n /(^|[^\\w$])/.source +\n '(?:' + // constant\n (/NaN|Infinity/.source +\n '|' + // binary integer\n /0[bB][01]+(?:_[01]+)*n?/.source +\n '|' + // octal integer\n /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n '|' + // hexadecimal integer\n /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n '|' + // decimal bigint\n /\\d+(?:_\\d+)*n/.source +\n '|' + // decimal number (integer or float) but no bigint\n /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n .source) +\n ')' +\n /(?![\\w$])/.source\n ),\n lookbehind: true\n },\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n })\n Prism.languages.javascript['class-name'][0].pattern =\n /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n pattern:\n /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [\n {\n pattern:\n /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n })\n Prism.languages.insertBefore('javascript', 'string', {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern:\n /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'string-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n }\n })\n Prism.languages.insertBefore('javascript', 'operator', {\n 'literal-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n lookbehind: true,\n alias: 'property'\n }\n })\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript') // add attribute support for all DOM events.\n // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n Prism.languages.markup.tag.addAttribute(\n /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n .source,\n 'javascript'\n )\n }\n Prism.languages.js = Prism.languages.javascript\n}\n","'use strict'\n\nmodule.exports = javastacktrace\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\nfunction javastacktrace(Prism) {\n // Specification:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n Prism.languages.javastacktrace = {\n // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: com.example.myproject.MyProjectServletException\n // Caused by: MidLevelException: LowLevelException\n // Suppressed: Resource$CloseFailException: Resource ID = 0\n summary: {\n pattern:\n /^([\\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?::.*)?$/m,\n lookbehind: true,\n inside: {\n keyword: {\n pattern:\n /^([\\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n lookbehind: true\n },\n // the current thread if the summary starts with 'Exception in thread'\n string: {\n pattern: /^(\\s*)\"[^\"]*\"/,\n lookbehind: true\n },\n exceptions: {\n pattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n lookbehind: true,\n inside: {\n 'class-name': /[\\w$]+$/,\n namespace: /\\b[a-z]\\w*\\b/,\n punctuation: /\\./\n }\n },\n message: {\n pattern: /(:\\s*)\\S.*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /:/\n }\n },\n // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n // at java.base/java.lang.Class.forName0(Native Method)\n // at Util.<init>(Unknown Source)\n // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n // at com.foo.loader//com.foo.bar.App.run(App.java:12)\n // at acme@2.1/org.acme.Lib.test(Lib.java:80)\n // at MyClass.mash(MyClass.java:9)\n //\n // More information:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n //\n // A valid Java module name is defined as:\n // \"A module name consists of one or more Java identifiers (§3.8) separated by \".\" tokens.\"\n // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n //\n // A Java module version is defined by this class:\n // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n // This is the implementation of the `parse` method in JDK13:\n // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n // However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n 'stack-frame': {\n pattern: /^([\\t ]*)at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:<init>)?\\([^()]*\\)/m,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^(\\s*)at(?= )/,\n lookbehind: true\n },\n source: [\n // (Main.java:15)\n // (Main.scala:15)\n {\n pattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n lookbehind: true,\n inside: {\n file: /^\\w+\\.\\w+/,\n punctuation: /:/,\n 'line-number': {\n pattern: /\\b\\d+\\b/,\n alias: 'number'\n }\n }\n }, // (Unknown Source)\n // (Native Method)\n // (...something...)\n {\n pattern: /(\\()[^()]*(?=\\))/,\n lookbehind: true,\n inside: {\n keyword: /^(?:Native Method|Unknown Source)$/\n }\n }\n ],\n 'class-name': /[\\w$]+(?=\\.(?:<init>|[\\w$]+)\\()/,\n function: /(?:<init>|[\\w$]+)(?=\\()/,\n 'class-loader': {\n pattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /\\./\n }\n },\n module: {\n pattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n lookbehind: true,\n inside: {\n version: {\n pattern: /(@)[\\s\\S]+/,\n lookbehind: true,\n alias: 'number'\n },\n punctuation: /[@.]/\n }\n },\n namespace: {\n pattern: /(?:\\b[a-z]\\w*\\.)+/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()/.]/\n }\n },\n // ... 32 more\n // ... 32 common frames omitted\n more: {\n pattern: /^([\\t ]*)\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /\\.{3}/,\n number: /\\d+/,\n keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = jexl\njexl.displayName = 'jexl'\njexl.aliases = []\nfunction jexl(Prism) {\n Prism.languages.jexl = {\n string: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n transform: {\n pattern:\n /(\\|\\s*)[a-zA-Zа-ÑÐ-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-ÑÐ-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*/,\n alias: 'function',\n lookbehind: true\n },\n function:\n /[a-zA-Zа-ÑÐ-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-ÑÐ-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*\\s*(?=\\()/,\n number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+\\b/,\n operator: /[<>!]=?|-|\\+|&&|==|\\|\\|?|\\/\\/?|[?:*^%]/,\n boolean: /\\b(?:false|true)\\b/,\n keyword: /\\bin\\b/,\n punctuation: /[{}[\\](),.]/\n }\n}\n","'use strict'\n\nmodule.exports = jolie\njolie.displayName = 'jolie'\njolie.aliases = []\nfunction jolie(Prism) {\n Prism.languages.jolie = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': {\n pattern:\n /((?:\\b(?:as|courier|embed|in|inputPort|outputPort|service)\\b|@)[ \\t]*)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*[@(])/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[?\\/%^@|]/,\n punctuation: /[()[\\]{},;.:]/,\n builtin:\n /\\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\\b/\n })\n Prism.languages.insertBefore('jolie', 'keyword', {\n aggregates: {\n pattern:\n /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n lookbehind: true,\n inside: {\n keyword: /\\bwith\\b/,\n 'class-name': /\\w+/,\n punctuation: /,/\n }\n },\n redirects: {\n pattern:\n /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n lookbehind: true,\n inside: {\n punctuation: /,/,\n 'class-name': /\\w+/,\n operator: /=>/\n }\n },\n property: {\n pattern:\n /\\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\\b(?=[ \\t]*:)/\n }\n })\n}\n","'use strict'\n\nmodule.exports = jq\njq.displayName = 'jq'\njq.aliases = []\nfunction jq(Prism) {\n ;(function (Prism) {\n var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var string = RegExp(\n /(^|[^\\\\])\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(\n /__/g,\n function () {\n return interpolation\n }\n )\n )\n var stringInterpolation = {\n interpolation: {\n pattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: null // see below\n },\n punctuation: /^\\\\\\(|\\)$/\n }\n }\n }\n var jq = (Prism.languages.jq = {\n comment: /#.*/,\n property: {\n pattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n lookbehind: true,\n greedy: true,\n inside: stringInterpolation\n },\n string: {\n pattern: string,\n lookbehind: true,\n greedy: true,\n inside: stringInterpolation\n },\n function: {\n pattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n lookbehind: true\n },\n variable: /\\B\\$\\w+/,\n 'property-literal': {\n pattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n alias: 'property'\n },\n keyword:\n /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n operator: [\n {\n pattern: /\\|=?/,\n alias: 'pipe'\n },\n /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|not|or)\\b/\n ],\n 'c-style-function': {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n alias: 'function'\n },\n punctuation: /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n dot: {\n pattern: /\\./,\n alias: 'important'\n }\n })\n stringInterpolation.interpolation.inside.content.inside = jq\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsExtras\njsExtras.displayName = 'jsExtras'\njsExtras.aliases = []\nfunction jsExtras(Prism) {\n ;(function (Prism) {\n Prism.languages.insertBefore('javascript', 'function-variable', {\n 'method-variable': {\n pattern: RegExp(\n '(\\\\.\\\\s*)' +\n Prism.languages.javascript['function-variable'].pattern.source\n ),\n lookbehind: true,\n alias: ['function-variable', 'method', 'function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'function', {\n method: {\n pattern: RegExp(\n '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n ),\n lookbehind: true,\n alias: ['function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'constant', {\n 'known-class-name': [\n {\n // standard built-ins\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n pattern:\n /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n alias: 'class-name'\n },\n {\n // errors\n pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n alias: 'class-name'\n }\n ]\n })\n /**\n * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n *\n * @param {string} source\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function withId(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n }),\n flags\n )\n }\n Prism.languages.insertBefore('javascript', 'keyword', {\n imports: {\n // https://tc39.es/ecma262/#sec-imports\n pattern: withId(\n /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n exports: {\n // https://tc39.es/ecma262/#sec-exports\n pattern: withId(\n /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n })\n Prism.languages.javascript['keyword'].unshift(\n {\n pattern: /\\b(?:as|default|export|from|import)\\b/,\n alias: 'module'\n },\n {\n pattern:\n /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n alias: 'control-flow'\n },\n {\n pattern: /\\bnull\\b/,\n alias: ['null', 'nil']\n },\n {\n pattern: /\\bundefined\\b/,\n alias: 'nil'\n }\n )\n Prism.languages.insertBefore('javascript', 'operator', {\n spread: {\n pattern: /\\.{3}/,\n alias: 'operator'\n },\n arrow: {\n pattern: /=>/,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('javascript', 'punctuation', {\n 'property-access': {\n pattern: withId(/(\\.\\s*)#?<ID>/.source),\n lookbehind: true\n },\n 'maybe-class-name': {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n lookbehind: true\n },\n dom: {\n // this contains only a few commonly used DOM variables\n pattern:\n /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\n }\n }) // add 'maybe-class-name' to tokens which might be a class name\n var maybeClassNameTokens = [\n 'function',\n 'function-variable',\n 'method',\n 'method-variable',\n 'property-access'\n ]\n for (var i = 0; i < maybeClassNameTokens.length; i++) {\n var token = maybeClassNameTokens[i]\n var value = Prism.languages.javascript[token] // convert regex to object\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n }\n } // keep in mind that we don't support arrays\n var inside = value.inside || {}\n value.inside = inside\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsTemplates\njsTemplates.displayName = 'jsTemplates'\njsTemplates.aliases = []\nfunction jsTemplates(Prism) {\n ;(function (Prism) {\n var templateString = Prism.languages.javascript['template-string'] // see the pattern in prism-javascript.js\n var templateLiteralPattern = templateString.pattern.source\n var interpolationObject = templateString.inside['interpolation']\n var interpolationPunctuationObject =\n interpolationObject.inside['interpolation-punctuation']\n var interpolationPattern = interpolationObject.pattern.source\n /**\n * Creates a new pattern to match a template string with a special tag.\n *\n * This will return `undefined` if there is no grammar with the given language id.\n *\n * @param {string} language The language id of the embedded language. E.g. `markdown`.\n * @param {string} tag The regex pattern to match the tag.\n * @returns {object | undefined}\n * @example\n * createTemplate('css', /\\bcss/.source);\n */\n function createTemplate(language, tag) {\n if (!Prism.languages[language]) {\n return undefined\n }\n return {\n pattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n lookbehind: true,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n 'embedded-code': {\n pattern: /[\\s\\S]+/,\n alias: language\n }\n }\n }\n }\n Prism.languages.javascript['template-string'] = [\n // styled-jsx:\n // css`a { color: #25F; }`\n // styled-components:\n // styled.h1`color: red;`\n createTemplate(\n 'css',\n /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/\n .source\n ), // html`<p></p>`\n // div.innerHTML = `<p></p>`\n createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n createTemplate('svg', /\\bsvg/.source), // md`# h1`, markdown`## h2`\n createTemplate('markdown', /\\b(?:markdown|md)/.source), // gql`...`, graphql`...`, graphql.experimental`...`\n createTemplate(\n 'graphql',\n /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n ), // sql`...`\n createTemplate('sql', /\\bsql/.source), // vanilla template string\n templateString\n ].filter(Boolean)\n /**\n * Returns a specific placeholder literal for the given language.\n *\n * @param {number} counter\n * @param {string} language\n * @returns {string}\n */\n function getPlaceholder(counter, language) {\n return '___' + language.toUpperCase() + '_' + counter + '___'\n }\n /**\n * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n *\n * @param {string} code\n * @param {any} grammar\n * @param {string} language\n * @returns {(string|Token)[]}\n */\n function tokenizeWithHooks(code, grammar, language) {\n var env = {\n code: code,\n grammar: grammar,\n language: language\n }\n Prism.hooks.run('before-tokenize', env)\n env.tokens = Prism.tokenize(env.code, env.grammar)\n Prism.hooks.run('after-tokenize', env)\n return env.tokens\n }\n /**\n * Returns the token of the given JavaScript interpolation expression.\n *\n * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n * @returns {Token}\n */\n function tokenizeInterpolationExpression(expression) {\n var tempGrammar = {}\n tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject\n /** @type {Array} */\n var tokens = Prism.tokenize(expression, tempGrammar)\n if (tokens.length === 3) {\n /**\n * The token array will look like this\n * [\n * [\"interpolation-punctuation\", \"${\"]\n * \"...\" // JavaScript expression of the interpolation\n * [\"interpolation-punctuation\", \"}\"]\n * ]\n */\n var args = [1, 1]\n args.push.apply(\n args,\n tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')\n )\n tokens.splice.apply(tokens, args)\n }\n return new Prism.Token(\n 'interpolation',\n tokens,\n interpolationObject.alias,\n expression\n )\n }\n /**\n * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n *\n * This function has 3 phases:\n *\n * 1. Replace all JavaScript interpolation expression with a placeholder.\n * The placeholder will have the syntax of a identify of the target language.\n * 2. Tokenize the code with placeholders.\n * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n * The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n * tokenized as two tokens by the grammar of the embedded language.\n *\n * @param {string} code\n * @param {object} grammar\n * @param {string} language\n * @returns {Token}\n */\n function tokenizeEmbedded(code, grammar, language) {\n // 1. First filter out all interpolations\n // because they might be escaped, we need a lookbehind, so we use Prism\n /** @type {(Token|string)[]} */\n var _tokens = Prism.tokenize(code, {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n lookbehind: true\n }\n }) // replace all interpolations with a placeholder which is not in the code already\n var placeholderCounter = 0\n /** @type {Object<string, string>} */\n var placeholderMap = {}\n var embeddedCode = _tokens\n .map(function (token) {\n if (typeof token === 'string') {\n return token\n } else {\n var interpolationExpression = token.content\n var placeholder\n while (\n code.indexOf(\n (placeholder = getPlaceholder(placeholderCounter++, language))\n ) !== -1\n ) {\n /* noop */\n }\n placeholderMap[placeholder] = interpolationExpression\n return placeholder\n }\n })\n .join('') // 2. Tokenize the embedded code\n var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language) // 3. Re-insert the interpolation\n var placeholders = Object.keys(placeholderMap)\n placeholderCounter = 0\n /**\n *\n * @param {(Token|string)[]} tokens\n * @returns {void}\n */\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n if (placeholderCounter >= placeholders.length) {\n return\n }\n var token = tokens[i]\n if (typeof token === 'string' || typeof token.content === 'string') {\n var placeholder = placeholders[placeholderCounter]\n var s =\n typeof token === 'string'\n ? token\n : /** @type {string} */\n token.content\n var index = s.indexOf(placeholder)\n if (index !== -1) {\n ++placeholderCounter\n var before = s.substring(0, index)\n var middle = tokenizeInterpolationExpression(\n placeholderMap[placeholder]\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push(before)\n }\n replacement.push(middle)\n if (after) {\n var afterTokens = [after]\n walkTokens(afterTokens)\n replacement.push.apply(replacement, afterTokens)\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n i += replacement.length - 1\n } else {\n token.content = replacement\n }\n }\n } else {\n var content = token.content\n if (Array.isArray(content)) {\n walkTokens(content)\n } else {\n walkTokens([content])\n }\n }\n }\n }\n walkTokens(embeddedTokens)\n return new Prism.Token(\n language,\n embeddedTokens,\n 'language-' + language,\n code\n )\n }\n /**\n * The languages for which JS templating will handle tagged template literals.\n *\n * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n */\n var supportedLanguages = {\n javascript: true,\n js: true,\n typescript: true,\n ts: true,\n jsx: true,\n tsx: true\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (!(env.language in supportedLanguages)) {\n return\n }\n /**\n * Finds and tokenizes all template strings with an embedded languages.\n *\n * @param {(Token | string)[]} tokens\n * @returns {void}\n */\n function findTemplateStrings(tokens) {\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (typeof token === 'string') {\n continue\n }\n var content = token.content\n if (!Array.isArray(content)) {\n if (typeof content !== 'string') {\n findTemplateStrings([content])\n }\n continue\n }\n if (token.type === 'template-string') {\n /**\n * A JavaScript template-string token will look like this:\n *\n * [\"template-string\", [\n * [\"template-punctuation\", \"`\"],\n * (\n * An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n * or\n * [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n * It also has an alias which is the language of the embedded code.\n * ),\n * [\"template-punctuation\", \"`\"]\n * ]]\n */\n var embedded = content[1]\n if (\n content.length === 3 &&\n typeof embedded !== 'string' &&\n embedded.type === 'embedded-code'\n ) {\n // get string content\n var code = stringContent(embedded)\n var alias = embedded.alias\n var language = Array.isArray(alias) ? alias[0] : alias\n var grammar = Prism.languages[language]\n if (!grammar) {\n // the embedded language isn't registered.\n continue\n }\n content[1] = tokenizeEmbedded(code, grammar, language)\n }\n } else {\n findTemplateStrings(content)\n }\n }\n }\n findTemplateStrings(env.tokens)\n })\n /**\n * Returns the string content of a token or token stream.\n *\n * @param {string | Token | (string | Token)[]} value\n * @returns {string}\n */\n function stringContent(value) {\n if (typeof value === 'string') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(stringContent).join('')\n } else {\n return stringContent(value.content)\n }\n }\n })(Prism)\n}\n","'use strict'\nvar refractorJavadoclike = require('./javadoclike.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = jsdoc\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\nfunction jsdoc(Prism) {\n Prism.register(refractorJavadoclike)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var javascript = Prism.languages.javascript\n var type = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source\n var parameterPrefix =\n '(@(?:arg|argument|param|property)\\\\s+(?:' + type + '\\\\s+)?)'\n Prism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n // @param {string} foo - foo bar\n pattern: RegExp(\n parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('jsdoc', 'keyword', {\n 'optional-parameter': {\n // @param {string} [baz.foo=\"bar\"] foo bar\n pattern: RegExp(\n parameterPrefix +\n /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n code: {\n pattern: /(=)[\\s\\S]*(?=\\]$)/,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n },\n punctuation: /[=[\\]]/\n }\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(\n /<TYPE>/g,\n function () {\n return type\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n pattern: RegExp('(@[a-z]+\\\\s+)' + type),\n lookbehind: true,\n inside: {\n string: javascript.string,\n number: javascript.number,\n boolean: javascript.boolean,\n keyword: Prism.languages.typescript.keyword,\n operator: /=>|\\.\\.\\.|[&|?:*]/,\n punctuation: /[.,;=<>{}()[\\]]/\n }\n }\n ],\n example: {\n pattern:\n /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n lookbehind: true,\n inside: {\n code: {\n pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n }\n }\n }\n })\n Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = json\njson.displayName = 'json'\njson.aliases = ['webmanifest']\nfunction json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n }\n Prism.languages.webmanifest = Prism.languages.json\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = json5\njson5.displayName = 'json5'\njson5.aliases = []\nfunction json5(Prism) {\n Prism.register(refractorJson)\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n Prism.languages.json5 = Prism.languages.extend('json', {\n property: [\n {\n pattern: RegExp(string.source + '(?=\\\\s*:)'),\n greedy: true\n },\n {\n pattern:\n /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n alias: 'unquoted'\n }\n ],\n string: {\n pattern: string,\n greedy: true\n },\n number:\n /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = jsonp\njsonp.displayName = 'jsonp'\njsonp.aliases = []\nfunction jsonp(Prism) {\n Prism.register(refractorJson)\n Prism.languages.jsonp = Prism.languages.extend('json', {\n punctuation: /[{}[\\]();,.]/\n })\n Prism.languages.insertBefore('jsonp', 'punctuation', {\n function: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n })\n}\n","'use strict'\n\nmodule.exports = jsstacktrace\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\nfunction jsstacktrace(Prism) {\n Prism.languages.jsstacktrace = {\n 'error-message': {\n pattern: /^\\S.*/m,\n alias: 'string'\n },\n 'stack-frame': {\n pattern: /(^[ \\t]+)at[ \\t].*/m,\n lookbehind: true,\n inside: {\n 'not-my-code': {\n pattern:\n /^at[ \\t]+(?!\\s)(?:node\\.js|<unknown>|.*(?:node_modules|\\(<anonymous>\\)|\\(<unknown>|<anonymous>$|\\(internal\\/|\\(node\\.js)).*/m,\n alias: 'comment'\n },\n filename: {\n pattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n lookbehind: true,\n alias: 'url'\n },\n function: {\n pattern:\n /(\\bat\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()]/,\n keyword: /\\b(?:at|new)\\b/,\n alias: {\n pattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n alias: 'variable'\n },\n 'line-number': {\n pattern: /:\\d+(?::\\d+)?\\b/,\n alias: 'number',\n inside: {\n punctuation: /:/\n }\n }\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = jsx\njsx.displayName = 'jsx'\njsx.aliases = []\nfunction jsx(Prism) {\n ;(function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript)\n var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function re(source, flags) {\n source = source\n .replace(/<S>/g, function () {\n return space\n })\n .replace(/<BRACES>/g, function () {\n return braces\n })\n .replace(/<SPREAD>/g, function () {\n return spread\n })\n return RegExp(source, flags)\n }\n spread = re(spread).source\n Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n Prism.languages.jsx.tag.pattern = re(\n /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n .source\n )\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n Prism.languages.jsx.tag.inside['attr-value'].pattern =\n /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n Prism.languages.insertBefore(\n 'inside',\n 'attr-name',\n {\n spread: {\n pattern: re(/<SPREAD>/.source),\n inside: Prism.languages.jsx\n }\n },\n Prism.languages.jsx.tag\n )\n Prism.languages.insertBefore(\n 'inside',\n 'special-attr',\n {\n script: {\n // Allow for two levels of nesting\n pattern: re(/=<BRACES>/.source),\n alias: 'language-javascript',\n inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n }\n }\n },\n Prism.languages.jsx.tag\n ) // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (!token) {\n return ''\n }\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{'\n ) {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = julia\njulia.displayName = 'julia'\njulia.aliases = []\nfunction julia(Prism) {\n Prism.languages.julia = {\n comment: {\n // support one level of nested comments\n // https://github.com/JuliaLang/julia/pull/6128\n pattern:\n /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n lookbehind: true\n },\n regex: {\n // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n pattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n greedy: true\n },\n string: {\n // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n pattern:\n /\"\"\"[\\s\\S]+?\"\"\"|(?:\\b\\w+)?\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n greedy: true\n },\n char: {\n // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n pattern: /(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number:\n /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n operator:\n /&&|\\|\\||[-+*^%÷⊻&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,\n punctuation: /::?|[{}[\\]();,.?]/,\n // https://docs.julialang.org/en/v1/base/numbers/#Base.im\n constant: /\\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n }\n}\n","'use strict'\n\nmodule.exports = keepalived\nkeepalived.displayName = 'keepalived'\nkeepalived.aliases = []\nfunction keepalived(Prism) {\n Prism.languages.keepalived = {\n comment: {\n pattern: /[#!].*/,\n greedy: true\n },\n string: {\n pattern:\n /(^|[^\\\\])(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/,\n lookbehind: true,\n greedy: true\n },\n // support IPv4, IPv6, subnet mask\n ip: {\n pattern: RegExp(\n /\\b(?:(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){5}:(?:[\\da-f]{1,4}:)?[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){4}:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){3}:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){2}:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}<ipv4>|(?:[\\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\\da-f]{1,4}:){0,5}<ipv4>|[\\da-f]{1,4}::(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4}|::(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:)(?:\\/\\d{1,3})?|<ipv4>(?:\\/\\d{1,2})?)\\b/.source.replace(\n /<ipv4>/g,\n function () {\n return /(?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d))/\n .source\n }\n ),\n 'i'\n ),\n alias: 'number'\n },\n // support *nix / Windows, directory / file\n path: {\n pattern:\n /(\\s)\\/(?:[^\\/\\s]+\\/)*[^\\/\\s]*|\\b[a-zA-Z]:\\\\(?:[^\\\\\\s]+\\\\)*[^\\\\\\s]*/,\n lookbehind: true,\n alias: 'string'\n },\n variable: /\\$\\{?\\w+\\}?/,\n email: {\n pattern: /[\\w-]+@[\\w-]+(?:\\.[\\w-]{2,3}){1,2}/,\n alias: 'string'\n },\n 'conditional-configuration': {\n pattern: /@\\^?[\\w-]+/,\n alias: 'variable'\n },\n operator: /=/,\n property:\n /\\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\\b/,\n constant:\n /\\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\\b/,\n number: {\n pattern: /(^|[^\\w.-])-?\\d+(?:\\.\\d+)?/,\n lookbehind: true\n },\n boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n punctuation: /[\\{\\}]/\n }\n}\n","'use strict'\n\nmodule.exports = keyman\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\nfunction keyman(Prism) {\n Prism.languages.keyman = {\n comment: {\n pattern: /\\bc .*/i,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n 'virtual-key': {\n pattern:\n /\\[\\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\\s+)*(?:[TKU]_[\\w?]+|[A-E]\\d\\d?|\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*\\]/i,\n greedy: true,\n alias: 'function' // alias for styles\n },\n // https://help.keyman.com/developer/language/guide/headers\n 'header-keyword': {\n pattern: /&\\w+/,\n alias: 'bold' // alias for styles\n },\n 'header-statement': {\n pattern:\n /\\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\\b/i,\n alias: 'bold' // alias for styles\n },\n 'rule-keyword': {\n pattern:\n /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\\b/i,\n alias: 'keyword'\n },\n 'structural-keyword': {\n pattern: /\\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\\b/i,\n alias: 'keyword'\n },\n 'compile-target': {\n pattern: /\\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,\n alias: 'property'\n },\n // U+####, x###, d### characters and numbers\n number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n operator: /[+>\\\\$]|\\.\\./,\n punctuation: /[()=,]/\n }\n}\n","'use strict'\n\nmodule.exports = kotlin\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\nfunction kotlin(Prism) {\n ;(function (Prism) {\n Prism.languages.kotlin = Prism.languages.extend('clike', {\n keyword: {\n // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n pattern:\n /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n lookbehind: true\n },\n function: [\n {\n pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/,\n greedy: true\n },\n {\n pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n lookbehind: true,\n greedy: true\n }\n ],\n number:\n /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n operator:\n /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n })\n delete Prism.languages.kotlin['class-name']\n var interpolationInside = {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.kotlin\n }\n }\n Prism.languages.insertBefore('kotlin', 'string', {\n // https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n 'string-literal': [\n {\n pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n alias: 'multiline',\n inside: {\n interpolation: {\n pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n inside: interpolationInside\n },\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n alias: 'singleline',\n inside: {\n interpolation: {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n lookbehind: true,\n inside: interpolationInside\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n char: {\n // https://kotlinlang.org/spec/expressions.html#character-literals\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/,\n greedy: true\n }\n })\n delete Prism.languages.kotlin['string']\n Prism.languages.insertBefore('kotlin', 'keyword', {\n annotation: {\n pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('kotlin', 'function', {\n label: {\n pattern: /\\b\\w+@|@\\w+\\b/,\n alias: 'symbol'\n }\n })\n Prism.languages.kt = Prism.languages.kotlin\n Prism.languages.kts = Prism.languages.kotlin\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = kumir\nkumir.displayName = 'kumir'\nkumir.aliases = ['kum']\nfunction kumir(Prism) {\n /* eslint-disable regexp/no-dupe-characters-character-class */\n ;(function (Prism) {\n /**\n * Regular expression for characters that are not allowed in identifiers.\n *\n * @type {string}\n */\n var nonId = /\\s\\x00-\\x1f\\x22-\\x2f\\x3a-\\x3f\\x5b-\\x5e\\x60\\x7b-\\x7e/.source\n /**\n * Surround a regular expression for IDs with patterns for non-ID sequences.\n *\n * @param {string} pattern A regular expression for identifiers.\n * @param {string} [flags] The regular expression flags.\n * @returns {RegExp} A wrapped regular expression for identifiers.\n */\n function wrapId(pattern, flags) {\n return RegExp(pattern.replace(/<nonId>/g, nonId), flags)\n }\n Prism.languages.kumir = {\n comment: {\n pattern: /\\|.*/\n },\n prolog: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\\n\\r\"]*\"|'[^\\n\\r']*'/,\n greedy: true\n },\n boolean: {\n pattern: wrapId(/(^|[<nonId>])(?:да|нет)(?=[<nonId>]|$)/.source),\n lookbehind: true\n },\n 'operator-word': {\n pattern: wrapId(/(^|[<nonId>])(?:и|или|не)(?=[<nonId>]|$)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n 'system-variable': {\n pattern: wrapId(/(^|[<nonId>])знач(?=[<nonId>]|$)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n type: [\n {\n pattern: wrapId(\n /(^|[<nonId>])(?:вещ|лит|лог|Ñим|цел)(?:\\x20*таб)?(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true,\n alias: 'builtin'\n },\n {\n pattern: wrapId(\n /(^|[<nonId>])(?:компл|Ñканкод|файл|цвет)(?=[<nonId>]|$)/.source\n ),\n lookbehind: true,\n alias: 'important'\n }\n ],\n /**\n * Should be performed after searching for type names because of \"таб\".\n * \"таб\" is a reserved word, but never used without a preceding type name.\n * \"ÐÐЗÐÐЧИТЬ\", \"Фввод\", and \"Фвывод\" are not reserved words.\n */\n keyword: {\n pattern: wrapId(\n /(^|[<nonId>])(?:алг|арг(?:\\x20*рез)?|ввод|ВКЛЮЧИТЬ|вÑ[её]|выбор|вывод|выход|дано|длÑ|до|дÑ|еÑли|иначе|иÑп|иÑпользовать|кон(?:(?:\\x20+|_)иÑп)?|кц(?:(?:\\x20+|_)при)?|надо|нач|нÑ|нц|от|пауза|пока|при|раза?|рез|Ñтоп|таб|то|утв|шаг)(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true\n },\n /** Should be performed after searching for reserved words. */\n name: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: wrapId(\n /(^|[<nonId>])[^\\d<nonId>][^<nonId>]*(?:\\x20+[^<nonId>]+)*(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true\n },\n /** Should be performed after searching for names. */\n number: {\n pattern: wrapId(\n /(^|[<nonId>])(?:\\B\\$[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?=[<nonId>]|$)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n /** Should be performed after searching for words. */\n punctuation: /:=|[(),:;\\[\\]]/,\n /**\n * Should be performed after searching for\n * - numeric constants (because of \"+\" and \"-\");\n * - punctuation marks (because of \":=\" and \"=\").\n */\n 'operator-char': {\n pattern: /\\*\\*?|<[=>]?|>=?|[-+/=]/,\n alias: 'operator'\n }\n }\n Prism.languages.kum = Prism.languages.kumir\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = kusto\nkusto.displayName = 'kusto'\nkusto.aliases = []\nfunction kusto(Prism) {\n Prism.languages.kusto = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n string: {\n pattern:\n /```[\\s\\S]*?```|[hH]?(?:\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\.)*'|@(?:\"[^\\r\\n\"]*\"|'[^\\r\\n']*'))/,\n greedy: true\n },\n verb: {\n pattern: /(\\|\\s*)[a-z][\\w-]*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n command: {\n pattern: /\\.[a-z][a-z\\d-]*\\b/,\n alias: 'keyword'\n },\n 'class-name':\n /\\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\\b/,\n keyword:\n /\\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\\s+regex|nulls\\s+(?:first|last))(?![\\w-])/,\n boolean: /\\b(?:false|null|true)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/,\n datetime: [\n {\n // RFC 822 + RFC 850\n pattern:\n /\\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\\s*,\\s*)?\\d{1,2}(?:\\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\\s+|-)\\d{2}\\s+\\d{2}:\\d{2}(?::\\d{2})?(?:\\s*(?:\\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\\d{4}))?\\b/,\n alias: 'number'\n },\n {\n // ISO 8601\n pattern:\n /[+-]?\\b(?:\\d{4}-\\d{2}-\\d{2}(?:[ T]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)?|\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)Z?/,\n alias: 'number'\n }\n ],\n number:\n /\\b(?:0x[0-9A-Fa-f]+|\\d+(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\\b)?|[+-]?\\binf\\b/,\n operator: /=>|[!=]~|[!=<>]=?|[-+*/%|]|\\.\\./,\n punctuation: /[()\\[\\]{},;.:]/\n }\n}\n","'use strict'\n\nmodule.exports = latex\nlatex.displayName = 'latex'\nlatex.aliases = ['tex', 'context']\nfunction latex(Prism) {\n ;(function (Prism) {\n var funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i\n var insideEqu = {\n 'equation-command': {\n pattern: funcPattern,\n alias: 'regex'\n }\n }\n Prism.languages.latex = {\n comment: /%.*/,\n // the verbatim environment prints whitespace to the document\n cdata: {\n pattern:\n /(\\\\begin\\{((?:lstlisting|verbatim)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true\n },\n /*\n * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n * (all are multiline)\n */\n equation: [\n {\n pattern:\n /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n inside: insideEqu,\n alias: 'string'\n },\n {\n pattern:\n /(\\\\begin\\{((?:align|eqnarray|equation|gather|math|multline)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true,\n inside: insideEqu,\n alias: 'string'\n }\n ],\n /*\n * arguments which are keywords or references are highlighted\n * as keywords\n */\n keyword: {\n pattern:\n /(\\\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n url: {\n pattern: /(\\\\url\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n /*\n * section or chapter headlines are highlighted as bold so that\n * they stand out more\n */\n headline: {\n pattern:\n /(\\\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true,\n alias: 'class-name'\n },\n function: {\n pattern: funcPattern,\n alias: 'selector'\n },\n punctuation: /[[\\]{}&]/\n }\n Prism.languages.tex = Prism.languages.latex\n Prism.languages.context = Prism.languages.latex\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nvar refractorPhp = require('./php.js')\nmodule.exports = latte\nlatte.displayName = 'latte'\nlatte.aliases = []\nfunction latte(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.register(refractorPhp)\n ;(function (Prism) {\n Prism.languages.latte = {\n comment: /^\\{\\*[\\s\\S]*/,\n 'latte-tag': {\n // https://latte.nette.org/en/tags\n pattern: /(^\\{(?:\\/(?=[a-z]))?)(?:[=_]|[a-z]\\w*\\b(?!\\())/i,\n lookbehind: true,\n alias: 'important'\n },\n delimiter: {\n pattern: /^\\{\\/?|\\}$/,\n alias: 'punctuation'\n },\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n var markupLatte = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore(\n 'inside',\n 'attr-value',\n {\n 'n-attr': {\n pattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n inside: {\n 'attr-name': {\n pattern: /^[^\\s=]+/,\n alias: 'important'\n },\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ],\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.php\n }\n }\n }\n }\n }\n },\n markupLatte.tag\n )\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'latte') {\n return\n }\n var lattePattern =\n /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'latte',\n lattePattern\n )\n env.grammar = markupLatte\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = less\nless.displayName = 'less'\nless.aliases = []\nfunction less(Prism) {\n /* FIXME :\n:extend() is not handled specifically : its highlighting is buggy.\nMixin usage must be inside a ruleset to be highlighted.\nAt-rules (e.g. import) containing interpolations are buggy.\nDetached rulesets are highlighted as at-rules.\nA comment before a mixin usage prevents the latter to be properly highlighted.\n*/\n Prism.languages.less = Prism.languages.extend('css', {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^|[^\\\\])\\/\\/.*/,\n lookbehind: true\n }\n ],\n atrule: {\n pattern:\n /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n punctuation: /[:()]/\n }\n },\n // selectors and mixins are considered the same\n selector: {\n pattern:\n /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n // mixin parameters\n variable: /@+[\\w-]+/\n }\n },\n property: /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/,\n operator: /[+\\-*\\/]/\n })\n Prism.languages.insertBefore('less', 'property', {\n variable: [\n // Variable declaration (the colon must be consumed!)\n {\n pattern: /@[\\w-]+\\s*:/,\n inside: {\n punctuation: /:/\n }\n }, // Variable usage\n /@@?[\\w-]+/\n ],\n 'mixin-usage': {\n pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n lookbehind: true,\n alias: 'function'\n }\n })\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = lilypond\nlilypond.displayName = 'lilypond'\nlilypond.aliases = []\nfunction lilypond(Prism) {\n Prism.register(refractorScheme)\n ;(function (Prism) {\n var schemeExpression =\n /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n .source // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n // For some reason, this can't be 4\n var recursivenessLog2 = 5\n for (var i = 0; i < recursivenessLog2; i++) {\n schemeExpression = schemeExpression.replace(/<expr>/g, function () {\n return schemeExpression\n })\n }\n schemeExpression = schemeExpression.replace(/<expr>/g, /[^\\s\\S]/.source)\n var lilypond = (Prism.languages.lilypond = {\n comment: /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n 'embedded-scheme': {\n pattern: RegExp(\n /(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|<expr>))/.source.replace(\n /<expr>/g,\n function () {\n return schemeExpression\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n scheme: {\n pattern: /^(#)[\\s\\S]+$/,\n lookbehind: true,\n alias: 'language-scheme',\n inside: {\n 'embedded-lilypond': {\n pattern: /#\\{[\\s\\S]*?#\\}/,\n greedy: true,\n inside: {\n punctuation: /^#\\{|#\\}$/,\n lilypond: {\n pattern: /[\\s\\S]+/,\n alias: 'language-lilypond',\n inside: null // see below\n }\n }\n },\n rest: Prism.languages.scheme\n }\n },\n punctuation: /#/\n }\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\\\new\\s+)[\\w-]+/,\n lookbehind: true\n },\n keyword: {\n pattern: /\\\\[a-z][-\\w]*/i,\n inside: {\n punctuation: /^\\\\/\n }\n },\n operator: /[=|]|<<|>>/,\n punctuation: {\n pattern:\n /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\/\\d+)?\\b/\n })\n lilypond['embedded-scheme'].inside['scheme'].inside[\n 'embedded-lilypond'\n ].inside['lilypond'].inside = lilypond\n Prism.languages.ly = lilypond\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = liquid\nliquid.displayName = 'liquid'\nliquid.aliases = []\nfunction liquid(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.languages.liquid = {\n comment: {\n pattern: /(^\\{%\\s*comment\\s*%\\})[\\s\\S]+(?=\\{%\\s*endcomment\\s*%\\}$)/,\n lookbehind: true\n },\n delimiter: {\n pattern: /^\\{(?:\\{\\{|[%\\{])-?|-?(?:\\}\\}|[%\\}])\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n keyword:\n /\\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\\b/,\n object:\n /\\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\\b/,\n function: [\n {\n pattern: /(\\|\\s*)\\w+/,\n lookbehind: true,\n alias: 'filter'\n },\n {\n // array functions\n pattern: /(\\.\\s*)(?:first|last|size)/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:false|nil|true)\\b/,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n // https://github.com/Shopify/liquid/blob/698f5e0d967423e013f6169d9111bd969bd78337/lib/liquid/lexer.rb#L21\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /[!=]=|<>|[<>]=?|[|?:=-]|\\b(?:and|contains(?=\\s)|or)\\b/,\n punctuation: /[.,\\[\\]()]/,\n empty: {\n pattern: /\\bempty\\b/,\n alias: 'keyword'\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var liquidPattern =\n /\\{%\\s*comment\\s*%\\}[\\s\\S]*?\\{%\\s*endcomment\\s*%\\}|\\{(?:%[\\s\\S]*?%|\\{\\{[\\s\\S]*?\\}\\}|\\{[\\s\\S]*?\\})\\}/g\n var insideRaw = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'liquid',\n liquidPattern,\n function (match) {\n var tagMatch = /^\\{%-?\\s*(\\w+)/.exec(match)\n if (tagMatch) {\n var tag = tagMatch[1]\n if (tag === 'raw' && !insideRaw) {\n insideRaw = true\n return true\n } else if (tag === 'endraw') {\n insideRaw = false\n return true\n }\n }\n return !insideRaw\n }\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'liquid')\n })\n}\n","'use strict'\n\nmodule.exports = lisp\nlisp.displayName = 'lisp'\nlisp.aliases = []\nfunction lisp(Prism) {\n ;(function (Prism) {\n /**\n * Functions to construct regular expressions\n * e.g. (interactive ... or (interactive)\n *\n * @param {string} name\n * @returns {RegExp}\n */\n function simple_form(name) {\n return RegExp(/(\\()/.source + '(?:' + name + ')' + /(?=[\\s\\)])/.source)\n }\n /**\n * booleans and numbers\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function primitive(pattern) {\n return RegExp(\n /([\\s([])/.source + '(?:' + pattern + ')' + /(?=[\\s)])/.source\n )\n } // Patterns in regular expressions\n // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n // & and : are excluded as they are usually used for special purposes\n var symbol = /(?!\\d)[-+*/~!@$%^=<>{}\\w]+/.source // symbol starting with & used in function arguments\n var marker = '&' + symbol // Open parenthesis for look-behind\n var par = '(\\\\()'\n var endpar = '(?=\\\\))' // End the pattern with look-ahead space\n var space = '(?=\\\\s)'\n var nestedPar =\n /(?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\))*\\))*\\))*/\n .source\n var language = {\n // Three or four semicolons are considered a heading.\n // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n heading: {\n pattern: /;;;.*/,\n alias: ['comment', 'title']\n },\n comment: /;.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true,\n inside: {\n argument: /[-A-Z]+(?=[.,\\s])/,\n symbol: RegExp('`' + symbol + \"'\")\n }\n },\n 'quoted-symbol': {\n pattern: RegExp(\"#?'\" + symbol),\n alias: ['variable', 'symbol']\n },\n 'lisp-property': {\n pattern: RegExp(':' + symbol),\n alias: 'property'\n },\n splice: {\n pattern: RegExp(',@?' + symbol),\n alias: ['symbol', 'variable']\n },\n keyword: [\n {\n pattern: RegExp(\n par +\n '(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)' +\n space\n ),\n lookbehind: true\n },\n {\n pattern: RegExp(\n par +\n '(?:append|by|collect|concat|do|finally|for|in|return)' +\n space\n ),\n lookbehind: true\n }\n ],\n declare: {\n pattern: simple_form(/declare/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n interactive: {\n pattern: simple_form(/interactive/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n boolean: {\n pattern: primitive(/nil|t/.source),\n lookbehind: true\n },\n number: {\n pattern: primitive(/[-+]?\\d+(?:\\.\\d*)?/.source),\n lookbehind: true\n },\n defvar: {\n pattern: RegExp(par + 'def(?:const|custom|group|var)\\\\s+' + symbol),\n lookbehind: true,\n inside: {\n keyword: /^def[a-z]+/,\n variable: RegExp(symbol)\n }\n },\n defun: {\n pattern: RegExp(\n par +\n /(?:cl-)?(?:defmacro|defun\\*?)\\s+/.source +\n symbol +\n /\\s+\\(/.source +\n nestedPar +\n /\\)/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^(?:cl-)?def\\S+/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n function: {\n pattern: RegExp('(^\\\\s)' + symbol),\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n lambda: {\n pattern: RegExp(\n par +\n 'lambda\\\\s+\\\\(\\\\s*(?:&?' +\n symbol +\n '(?:\\\\s+&?' +\n symbol +\n ')*\\\\s*)?\\\\)'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^lambda/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n punctuation: /[()]/\n }\n },\n car: {\n pattern: RegExp(par + symbol),\n lookbehind: true\n },\n punctuation: [\n // open paren, brackets, and close paren\n /(?:['`,]?\\(|[)\\[\\]])/, // cons\n {\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }\n ]\n }\n var arg = {\n 'lisp-marker': RegExp(marker),\n varform: {\n pattern: RegExp(\n /\\(/.source + symbol + /\\s+(?=\\S)/.source + nestedPar + /\\)/.source\n ),\n inside: language\n },\n argument: {\n pattern: RegExp(/(^|[\\s(])/.source + symbol),\n lookbehind: true,\n alias: 'variable'\n },\n rest: language\n }\n var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n var arglist = {\n pattern: RegExp(par + nestedPar + endpar),\n lookbehind: true,\n inside: {\n 'rest-vars': {\n pattern: RegExp('&(?:body|rest)\\\\s+' + forms),\n inside: arg\n },\n 'other-marker-vars': {\n pattern: RegExp('&(?:aux|optional)\\\\s+' + forms),\n inside: arg\n },\n keys: {\n pattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n inside: arg\n },\n argument: {\n pattern: RegExp(symbol),\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n }\n language['lambda'].inside.arguments = arglist\n language['defun'].inside.arguments = Prism.util.clone(arglist)\n language['defun'].inside.arguments.inside.sublist = arglist\n Prism.languages.lisp = language\n Prism.languages.elisp = language\n Prism.languages.emacs = language\n Prism.languages['emacs-lisp'] = language\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = livescript\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\nfunction livescript(Prism) {\n Prism.languages.livescript = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n ],\n 'interpolated-string': {\n /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n * forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n pattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n lookbehind: true\n },\n interpolation: {\n pattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^#\\{|\\}$/,\n alias: 'variable'\n } // See rest below\n }\n },\n string: /[\\s\\S]+/\n }\n },\n string: [\n {\n pattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n {\n pattern: /<\\[[\\s\\S]*?\\]>/,\n greedy: true\n },\n /\\\\[^\\s,;\\])}]+/\n ],\n regex: [\n {\n pattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n greedy: true,\n inside: {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n }\n },\n {\n pattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n greedy: true\n }\n ],\n keyword: {\n pattern:\n /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n lookbehind: true\n },\n 'keyword-operator': {\n pattern:\n /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n lookbehind: true,\n alias: 'operator'\n },\n boolean: {\n pattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n lookbehind: true\n },\n argument: {\n // Don't match .&. nor &&\n pattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n lookbehind: true,\n alias: 'variable'\n },\n number: /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n identifier: /[a-z_](?:-?[a-z]|[\\d_])*/i,\n operator: [\n // Spaced .\n {\n pattern: /( )\\.(?= )/,\n lookbehind: true\n }, // Full list, in order:\n // .= .~ .. ...\n // .&. .^. .<<. .>>. .>>>.\n // := :: ::=\n // &&\n // || |>\n // < << <<< <<<<\n // <- <-- <-! <--!\n // <~ <~~ <~! <~~!\n // <| <= <?\n // > >> >= >?\n // - -- -> -->\n // + ++\n // @ @@\n // % %%\n // * **\n // ! != !~=\n // !~> !~~>\n // !-> !-->\n // ~ ~> ~~> ~=\n // = ==\n // ^ ^^\n // / ?\n /\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/\n ],\n punctuation: /[(){}\\[\\]|.,:;`]/\n }\n Prism.languages.livescript['interpolated-string'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.livescript\n}\n","'use strict'\n\nmodule.exports = llvm\nllvm.displayName = 'llvm'\nllvm.aliases = []\nfunction llvm(Prism) {\n ;(function (Prism) {\n Prism.languages.llvm = {\n comment: /;.*/,\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n boolean: /\\b(?:false|true)\\b/,\n variable: /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n label: /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n type: {\n pattern:\n /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n alias: 'class-name'\n },\n keyword: /\\b[a-z_][a-z_0-9]*\\b/,\n number:\n /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n punctuation: /[{}[\\];(),.!*=<>]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = log\nlog.displayName = 'log'\nlog.aliases = []\nfunction log(Prism) {\n // This is a language definition for generic log files.\n // Since there is no one log format, this language definition has to support all formats to some degree.\n //\n // Based on https://github.com/MTDL9/vim-log-highlighting\n Prism.languages.log = {\n string: {\n // Single-quoted strings must not be confused with plain text. E.g. Can't isn't Susan's Chris' toy\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?![st] | \\w)(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n exception: {\n pattern:\n /(^|[^\\w.])[a-z][\\w.]*(?:Error|Exception):.*(?:(?:\\r\\n?|\\n)[ \\t]*(?:at[ \\t].+|\\.{3}.*|Caused by:.*))+(?:(?:\\r\\n?|\\n)[ \\t]*\\.\\.\\. .*)?/,\n lookbehind: true,\n greedy: true,\n alias: ['javastacktrace', 'language-javastacktrace'],\n inside: Prism.languages['javastacktrace'] || {\n keyword: /\\bat\\b/,\n function: /[a-z_][\\w$]*(?=\\()/,\n punctuation: /[.:()]/\n }\n },\n level: [\n {\n pattern:\n /\\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\\b/,\n alias: ['error', 'important']\n },\n {\n pattern: /\\b(?:WARN|WARNING|WRN)\\b/,\n alias: ['warning', 'important']\n },\n {\n pattern: /\\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\\b/,\n alias: ['info', 'keyword']\n },\n {\n pattern: /\\b(?:DBG|DEBUG|FINE)\\b/,\n alias: ['debug', 'keyword']\n },\n {\n pattern: /\\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\\b/,\n alias: ['trace', 'comment']\n }\n ],\n property: {\n pattern:\n /((?:^|[\\]|])[ \\t]*)[a-z_](?:[\\w-]|\\b\\/\\b)*(?:[. ]\\(?\\w(?:[\\w-]|\\b\\/\\b)*\\)?)*:(?=\\s)/im,\n lookbehind: true\n },\n separator: {\n pattern: /(^|[^-+])-{3,}|={3,}|\\*{3,}|- - /m,\n lookbehind: true,\n alias: 'comment'\n },\n url: /\\b(?:file|ftp|https?):\\/\\/[^\\s|,;'\"]*[^\\s|,;'\">.]/,\n email: {\n pattern: /(^|\\s)[-\\w+.]+@[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)+(?=\\s)/,\n lookbehind: true,\n alias: 'url'\n },\n 'ip-address': {\n pattern: /\\b(?:\\d{1,3}(?:\\.\\d{1,3}){3})\\b/,\n alias: 'constant'\n },\n 'mac-address': {\n pattern: /\\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\\b/i,\n alias: 'constant'\n },\n domain: {\n pattern:\n /(^|\\s)[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)*\\.[a-z][a-z0-9-]+(?=\\s)/,\n lookbehind: true,\n alias: 'constant'\n },\n uuid: {\n pattern:\n /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n alias: 'constant'\n },\n hash: {\n pattern: /\\b(?:[a-f0-9]{32}){1,2}\\b/i,\n alias: 'constant'\n },\n 'file-path': {\n pattern:\n /\\b[a-z]:[\\\\/][^\\s|,;:(){}\\[\\]\"']+|(^|[\\s:\\[\\](>|])\\.{0,2}\\/\\w[^\\s|,;:(){}\\[\\]\"']*/i,\n lookbehind: true,\n greedy: true,\n alias: 'string'\n },\n date: {\n pattern: RegExp(\n /\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))/.source +\n '|' +\n /\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b/\n .source +\n '|' +\n /\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b/\n .source,\n 'i'\n ),\n alias: 'number'\n },\n time: {\n pattern:\n /\\b\\d{1,2}:\\d{1,2}:\\d{1,2}(?:[.,:]\\d+)?(?:\\s?[+-]\\d{2}:?\\d{2}|Z)?\\b/,\n alias: 'number'\n },\n boolean: /\\b(?:false|null|true)\\b/i,\n number: {\n pattern:\n /(^|[^.\\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\\d[\\da-f]*(?:\\.\\d+)*(?:e[+-]?\\d+)?[a-z]{0,3}\\b)\\b(?!\\.\\w)/i,\n lookbehind: true\n },\n operator: /[;:?<=>~/@!$%&+\\-|^(){}*#]/,\n punctuation: /[\\[\\].,]/\n }\n}\n","'use strict'\n\nmodule.exports = lolcode\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\nfunction lolcode(Prism) {\n Prism.languages.lolcode = {\n comment: [/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/, /\\bBTW.+/],\n string: {\n pattern: /\"(?::.|[^\":])*\"/,\n inside: {\n variable: /:\\{[^}]+\\}/,\n symbol: [/:\\([a-f\\d]+\\)/i, /:\\[[^\\]]+\\]/, /:[)>o\":]/]\n },\n greedy: true\n },\n number: /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n symbol: {\n pattern: /(^|\\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\\s|,|$)/,\n lookbehind: true,\n inside: {\n keyword: /A(?=\\s)/\n }\n },\n label: {\n pattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n lookbehind: true,\n alias: 'string'\n },\n function: {\n pattern: /((?:^|\\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\\w*/,\n lookbehind: true\n },\n keyword: [\n {\n pattern:\n /(^|\\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\\?|YA RLY|YR)(?=\\s|,|$)/,\n lookbehind: true\n },\n /'Z(?=\\s|,|$)/\n ],\n boolean: {\n pattern: /(^|\\s)(?:FAIL|WIN)(?=\\s|,|$)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|\\s)IT(?=\\s|,|$)/,\n lookbehind: true\n },\n operator: {\n pattern:\n /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\\s|,|$)/,\n lookbehind: true\n },\n punctuation: /\\.{3}|…|,|!/\n }\n}\n","'use strict'\n\nmodule.exports = lua\nlua.displayName = 'lua'\nlua.aliases = []\nfunction lua(Prism) {\n Prism.languages.lua = {\n comment: /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n // \\z may be used to skip the following space\n string: {\n pattern:\n /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n greedy: true\n },\n number:\n /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n keyword:\n /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n function: /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n operator: [\n /[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n {\n // Match \"..\" but don't break \"...\"\n pattern: /(^|[^.])\\.\\.(?!\\.)/,\n lookbehind: true\n }\n ],\n punctuation: /[\\[\\](){},;]|\\.+|:+/\n }\n}\n","'use strict'\n\nmodule.exports = magma\nmagma.displayName = 'magma'\nmagma.aliases = []\nfunction magma(Prism) {\n Prism.languages.magma = {\n output: {\n pattern:\n /^(>.*(?:\\r(?:\\n|(?!\\n))|\\n))(?!>)(?:.+|(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)(?:(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)*/m,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n // http://magma.maths.usyd.edu.au/magma/handbook/text/82\n keyword:\n /\\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n generator: {\n pattern: /\\b[a-z_]\\w*(?=\\s*<)/i,\n alias: 'class-name'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: {\n pattern:\n /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n lookbehind: true\n },\n operator: /->|[-+*/^~!|#=]|:=|\\.\\./,\n punctuation: /[()[\\]{}<>,;.:]/\n }\n}\n","'use strict'\n\nmodule.exports = makefile\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\nfunction makefile(Prism) {\n Prism.languages.makefile = {\n comment: {\n pattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'builtin-target': {\n pattern: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n alias: 'builtin'\n },\n target: {\n pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n alias: 'symbol',\n inside: {\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n }\n },\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n // Directives\n keyword:\n /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,\n function: {\n pattern:\n /(\\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \\t])/,\n lookbehind: true\n },\n operator: /(?:::|[?:+!])?=|[|@]/,\n punctuation: /[:;(){}]/\n }\n}\n","'use strict'\n\nmodule.exports = markdown\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\nfunction markdown(Prism) {\n ;(function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner\n })\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n }\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n .source\n var tableRow =\n /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n /__/g,\n function () {\n return tableCell\n }\n )\n var tableLine =\n /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n .source\n Prism.languages.markdown = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'front-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp(\n '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n 'm'\n ),\n inside: {\n 'table-data-rows': {\n pattern: RegExp(\n '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n ),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [\n {\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern:\n /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n },\n {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }\n ],\n title: [\n {\n // title 1\n // =======\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n },\n {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }\n ],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern:\n /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string:\n /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(\n /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(\n /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n // eslint-disable-next-line regexp/strict\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /~~?/\n }\n },\n 'code-snippet': {\n // `code`\n // ``code``\n pattern:\n /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n lookbehind: true,\n greedy: true,\n alias: ['code', 'keyword']\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(\n /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n },\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n })\n ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (\n inside\n ) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] =\n Prism.languages.markdown[inside]\n }\n })\n })\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return\n }\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return\n }\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (token.type !== 'code') {\n walkTokens(token.content)\n continue\n }\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n var codeLang = token.content[1]\n var codeBlock = token.content[3]\n if (\n codeLang &&\n codeBlock &&\n codeLang.type === 'code-language' &&\n codeBlock.type === 'code-block' &&\n typeof codeLang.content === 'string'\n ) {\n // this might be a language that Prism does not support\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content\n .replace(/\\b#/g, 'sharp')\n .replace(/\\b\\+\\+/g, 'pp') // only use the first word\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n var alias = 'language-' + lang // add alias\n if (!codeBlock.alias) {\n codeBlock.alias = [alias]\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias]\n } else {\n codeBlock.alias.push(alias)\n }\n }\n }\n }\n walkTokens(env.tokens)\n })\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return\n }\n var codeLang = ''\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i]\n var match = /language-(.+)/.exec(cls)\n if (match) {\n codeLang = match[1]\n break\n }\n }\n var grammar = Prism.languages[codeLang]\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id =\n 'md-' +\n new Date().valueOf() +\n '-' +\n Math.floor(Math.random() * 1e16)\n env.attributes['id'] = id\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id)\n if (ele) {\n ele.innerHTML = Prism.highlight(\n ele.textContent,\n Prism.languages[codeLang],\n codeLang\n )\n }\n })\n }\n } else {\n env.content = Prism.highlight(\n textContent(env.content.value),\n grammar,\n codeLang\n )\n }\n })\n var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n /**\n * A list of known entity names.\n *\n * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n *\n * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n */\n var KNOWN_ENTITY_NAMES = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"'\n } // IE 11 doesn't support `String.fromCodePoint`\n var fromCodePoint = String.fromCodePoint || String.fromCharCode\n /**\n * Returns the text content of a given HTML source code string.\n *\n * @param {string} html\n * @returns {string}\n */\n function textContent(html) {\n // remove all tags\n var text = html.replace(tagPattern, '') // decode known entities\n text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n code = code.toLowerCase()\n if (code[0] === '#') {\n var value\n if (code[1] === 'x') {\n value = parseInt(code.slice(2), 16)\n } else {\n value = Number(code.slice(1))\n }\n return fromCodePoint(value)\n } else {\n var known = KNOWN_ENTITY_NAMES[code]\n if (known) {\n return known\n } // unable to decode\n return m\n }\n })\n return text\n }\n Prism.languages.md = Prism.languages.markdown\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = markupTemplating\nmarkupTemplating.displayName = 'markupTemplating'\nmarkupTemplating.aliases = []\nfunction markupTemplating(Prism) {\n ;(function (Prism) {\n /**\n * Returns the placeholder for the given language id and index.\n *\n * @param {string} language\n * @param {string|number} index\n * @returns {string}\n */\n function getPlaceholder(language, index) {\n return '___' + language.toUpperCase() + index + '___'\n }\n Object.defineProperties((Prism.languages['markup-templating'] = {}), {\n buildPlaceholders: {\n /**\n * Tokenize all inline templating expressions matching `placeholderPattern`.\n *\n * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n * `true` will be replaced.\n *\n * @param {object} env The environment of the `before-tokenize` hook.\n * @param {string} language The language id.\n * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n * @param {(match: string) => boolean} [replaceFilter]\n */\n value: function (env, language, placeholderPattern, replaceFilter) {\n if (env.language !== language) {\n return\n }\n var tokenStack = (env.tokenStack = [])\n env.code = env.code.replace(placeholderPattern, function (match) {\n if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n return match\n }\n var i = tokenStack.length\n var placeholder // Check for existing strings\n while (\n env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n -1\n ) {\n ++i\n } // Create a sparse array\n tokenStack[i] = match\n return placeholder\n }) // Switch the grammar to markup\n env.grammar = Prism.languages.markup\n }\n },\n tokenizePlaceholders: {\n /**\n * Replace placeholders with proper tokens after tokenizing.\n *\n * @param {object} env The environment of the `after-tokenize` hook.\n * @param {string} language The language id.\n */\n value: function (env, language) {\n if (env.language !== language || !env.tokenStack) {\n return\n } // Switch the grammar back\n env.grammar = Prism.languages[language]\n var j = 0\n var keys = Object.keys(env.tokenStack)\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n // all placeholders are replaced already\n if (j >= keys.length) {\n break\n }\n var token = tokens[i]\n if (\n typeof token === 'string' ||\n (token.content && typeof token.content === 'string')\n ) {\n var k = keys[j]\n var t = env.tokenStack[k]\n var s = typeof token === 'string' ? token : token.content\n var placeholder = getPlaceholder(language, k)\n var index = s.indexOf(placeholder)\n if (index > -1) {\n ++j\n var before = s.substring(0, index)\n var middle = new Prism.Token(\n language,\n Prism.tokenize(t, env.grammar),\n 'language-' + language,\n t\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push.apply(replacement, walkTokens([before]))\n }\n replacement.push(middle)\n if (after) {\n replacement.push.apply(replacement, walkTokens([after]))\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n } else {\n token.content = replacement\n }\n }\n } else if (\n token.content\n /* && typeof token.content !== 'string' */\n ) {\n walkTokens(token.content)\n }\n }\n return tokens\n }\n walkTokens(env.tokens)\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = markup\nmarkup.displayName = 'markup'\nmarkup.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss']\nfunction markup(Prism) {\n Prism.languages.markup = {\n comment: {\n pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n greedy: true\n },\n prolog: {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern:\n /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n tag: {\n pattern:\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [\n {\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n },\n /&#x?[\\da-f]{1,8};/i\n ]\n }\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n Prism.languages.markup['entity']\n Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n Prism.languages.markup // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&/, '&')\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {}\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n }\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n }\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n }\n var def = {}\n def[tagName] = {\n pattern: RegExp(\n /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n /__/g,\n function () {\n return tagName\n }\n ),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: inside\n }\n Prism.languages.insertBefore('markup', 'cdata', def)\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n /**\n * Adds an pattern to highlight languages embedded in HTML attributes.\n *\n * An example of an inlined language is CSS with `style` attributes.\n *\n * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addAttribute('style', 'css');\n */\n value: function (attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(\n /(^|[\"'\\s])/.source +\n '(?:' +\n attrName +\n ')' +\n /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n 'i'\n ),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n value: {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [lang, 'language-' + lang],\n inside: Prism.languages[lang]\n },\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n }\n }\n })\n }\n })\n Prism.languages.html = Prism.languages.markup\n Prism.languages.mathml = Prism.languages.markup\n Prism.languages.svg = Prism.languages.markup\n Prism.languages.xml = Prism.languages.extend('markup', {})\n Prism.languages.ssml = Prism.languages.xml\n Prism.languages.atom = Prism.languages.xml\n Prism.languages.rss = Prism.languages.xml\n}\n","'use strict'\n\nmodule.exports = matlab\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\nfunction matlab(Prism) {\n Prism.languages.matlab = {\n comment: [/%\\{[\\s\\S]*?\\}%/, /%.+/],\n string: {\n pattern: /\\B'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n // FIXME We could handle imaginary numbers as a whole\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n keyword:\n /\\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n }\n}\n","'use strict'\n\nmodule.exports = maxscript\nmaxscript.displayName = 'maxscript'\nmaxscript.aliases = []\nfunction maxscript(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\\b/i\n Prism.languages.maxscript = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?(?:\\*\\/|$)|--.*/,\n greedy: true\n },\n string: {\n pattern: /(^|[^\"\\\\@])(?:\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|@\"[^\"]*\")/,\n lookbehind: true,\n greedy: true\n },\n path: {\n pattern: /\\$(?:[\\w/\\\\.*?]|'[^']*')*/,\n greedy: true,\n alias: 'string'\n },\n 'function-call': {\n pattern: RegExp(\n '((?:' + // start of line\n (/^/.source +\n '|' + // operators and other language constructs\n /[;=<>+\\-*/^({\\[]/.source +\n '|' + // keywords as part of statements\n /\\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\\b/\n .source) +\n ')[ \\t]*)' +\n '(?!' +\n keywords.source +\n ')' +\n /[a-z_]\\w*\\b/.source +\n '(?=[ \\t]*(?:' + // variable\n ('(?!' +\n keywords.source +\n ')' +\n /[a-z_]/.source +\n '|' + // number\n /\\d|-\\.?\\d/.source +\n '|' + // other expressions or literals\n /[({'\"$@#?]/.source) +\n '))',\n 'im'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'function-definition': {\n pattern: /(\\b(?:fn|function)\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'function'\n },\n argument: {\n pattern: /\\b[a-z_]\\w*(?=:)/i,\n alias: 'attr-name'\n },\n keyword: keywords,\n boolean: /\\b(?:false|true)\\b/,\n time: {\n pattern:\n /(^|[^\\w.])(?:(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?[msft])+|\\d+:\\d+(?:\\.\\d*)?)(?![\\w.:])/,\n lookbehind: true,\n alias: 'number'\n },\n number: [\n {\n pattern:\n /(^|[^\\w.])(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?|0x[a-fA-F0-9]+)(?![\\w.:])/,\n lookbehind: true\n },\n /\\b(?:e|pi)\\b/\n ],\n constant: /\\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\\b/,\n color: {\n pattern: /\\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\\b/i,\n alias: 'constant'\n },\n operator: /[-+*/<>=!]=?|[&^?]|#(?!\\()/,\n punctuation: /[()\\[\\]{}.:,;]|#(?=\\()|\\\\$/m\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = mel\nmel.displayName = 'mel'\nmel.aliases = []\nfunction mel(Prism) {\n Prism.languages.mel = {\n comment: /\\/\\/.*/,\n code: {\n pattern: /`(?:\\\\.|[^\\\\`\\r\\n])*`/,\n greedy: true,\n alias: 'italic',\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n } // See rest below\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n variable: /\\$\\w+/,\n number: /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n flag: {\n pattern: /-[^\\d\\W]\\w*/,\n alias: 'operator'\n },\n keyword:\n /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n function:\n /\\b\\w+(?=\\()|\\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,\n operator: [\n /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,:;?\\[\\](){}]/\n }\n Prism.languages.mel['code'].inside.rest = Prism.languages.mel\n}\n","'use strict'\n\nmodule.exports = mermaid\nmermaid.displayName = 'mermaid'\nmermaid.aliases = []\nfunction mermaid(Prism) {\n Prism.languages.mermaid = {\n comment: {\n pattern: /%%.*/,\n greedy: true\n },\n style: {\n pattern:\n /^([ \\t]*(?:classDef|linkStyle|style)[ \\t]+[\\w$-]+[ \\t]+)\\w.*[^\\s;]/m,\n lookbehind: true,\n inside: {\n property: /\\b\\w[\\w-]*(?=[ \\t]*:)/,\n operator: /:/,\n punctuation: /,/\n }\n },\n 'inter-arrow-label': {\n pattern:\n /([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \\t]*(?:\"[^\"\\r\\n]*\"|[^\\s\".=-](?:[^\\r\\n.=-]*[^\\s.=-])?)[ \\t]*(?:\\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,\n lookbehind: true,\n greedy: true,\n inside: {\n arrow: {\n pattern: /(?:\\.+->?|--+[->]|==+[=>])$/,\n alias: 'operator'\n },\n label: {\n pattern: /^([\\s\\S]{2}[ \\t]*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n alias: 'property'\n },\n 'arrow-head': {\n pattern: /^\\S+/,\n alias: ['arrow', 'operator']\n }\n }\n },\n arrow: [\n // This might look complex but it really isn't.\n // There are many possible arrows (see tests) and it's impossible to fit all of them into one pattern. The\n // problem is that we only have one lookbehind per pattern. However, we cannot disallow too many arrow\n // characters in the one lookbehind because that would create too many false negatives. So we have to split the\n // arrows into different patterns.\n {\n // ER diagram\n pattern: /(^|[^{}|o.-])[|}][|o](?:--|\\.\\.)[|o][|{](?![{}|o.-])/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // flow chart\n // (?:==+|--+|-\\.*-)\n pattern:\n /(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\\.*-)[>ox]?|(?:==+|--+|-\\.*-)[>ox]|===+|---+|-\\.+-)(?![<>ox.=-])/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // sequence diagram\n pattern:\n /(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // class diagram\n pattern:\n /(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\\|?(?:--|\\.\\.)|(?:--|\\.\\.)\\|?>|--|\\.\\.)(?![<>|*o.-])/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n label: {\n pattern: /(^|[^|<])\\|(?:[^\\r\\n\"|]|\"[^\"\\r\\n]*\")+\\|/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n text: {\n pattern: /(?:[(\\[{]+|\\b>)(?:[^\\r\\n\"()\\[\\]{}]|\"[^\"\\r\\n]*\")+(?:[)\\]}]+|>)/,\n alias: 'string'\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n annotation: {\n pattern:\n /<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\\[\\[(?:choice|fork|join)\\]\\]/i,\n alias: 'important'\n },\n keyword: [\n // This language has both case-sensitive and case-insensitive keywords\n {\n pattern:\n /(^[ \\t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\\w$-])/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern:\n /(^[ \\t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \\t]+note)?|loop|opt|par|participant|rect|state|note[ \\t]+(?:over|(?:left|right)[ \\t]+of))(?![\\w$-])/im,\n lookbehind: true,\n greedy: true\n }\n ],\n entity: /#[a-z0-9]+;/,\n operator: {\n pattern: /(\\w[ \\t]*)&(?=[ \\t]*\\w)|:::|:/,\n lookbehind: true\n },\n punctuation: /[(){};]/\n }\n}\n","'use strict'\n\nmodule.exports = mizar\nmizar.displayName = 'mizar'\nmizar.aliases = []\nfunction mizar(Prism) {\n Prism.languages.mizar = {\n comment: /::.+/,\n keyword:\n /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\\b/,\n parameter: {\n pattern: /\\$(?:10|\\d)/,\n alias: 'variable'\n },\n variable: /\\b\\w+(?=:)/,\n number: /(?:\\b|-)\\d+\\b/,\n operator: /\\.\\.\\.|->|&|\\.?=/,\n punctuation: /\\(#|#\\)|[,:;\\[\\](){}]/\n }\n}\n","'use strict'\n\nmodule.exports = mongodb\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\nfunction mongodb(Prism) {\n ;(function (Prism) {\n var operators = [\n // query and projection\n '$eq',\n '$gt',\n '$gte',\n '$in',\n '$lt',\n '$lte',\n '$ne',\n '$nin',\n '$and',\n '$not',\n '$nor',\n '$or',\n '$exists',\n '$type',\n '$expr',\n '$jsonSchema',\n '$mod',\n '$regex',\n '$text',\n '$where',\n '$geoIntersects',\n '$geoWithin',\n '$near',\n '$nearSphere',\n '$all',\n '$elemMatch',\n '$size',\n '$bitsAllClear',\n '$bitsAllSet',\n '$bitsAnyClear',\n '$bitsAnySet',\n '$comment',\n '$elemMatch',\n '$meta',\n '$slice', // update\n '$currentDate',\n '$inc',\n '$min',\n '$max',\n '$mul',\n '$rename',\n '$set',\n '$setOnInsert',\n '$unset',\n '$addToSet',\n '$pop',\n '$pull',\n '$push',\n '$pullAll',\n '$each',\n '$position',\n '$slice',\n '$sort',\n '$bit', // aggregation pipeline stages\n '$addFields',\n '$bucket',\n '$bucketAuto',\n '$collStats',\n '$count',\n '$currentOp',\n '$facet',\n '$geoNear',\n '$graphLookup',\n '$group',\n '$indexStats',\n '$limit',\n '$listLocalSessions',\n '$listSessions',\n '$lookup',\n '$match',\n '$merge',\n '$out',\n '$planCacheStats',\n '$project',\n '$redact',\n '$replaceRoot',\n '$replaceWith',\n '$sample',\n '$set',\n '$skip',\n '$sort',\n '$sortByCount',\n '$unionWith',\n '$unset',\n '$unwind',\n '$setWindowFields', // aggregation pipeline operators\n '$abs',\n '$accumulator',\n '$acos',\n '$acosh',\n '$add',\n '$addToSet',\n '$allElementsTrue',\n '$and',\n '$anyElementTrue',\n '$arrayElemAt',\n '$arrayToObject',\n '$asin',\n '$asinh',\n '$atan',\n '$atan2',\n '$atanh',\n '$avg',\n '$binarySize',\n '$bsonSize',\n '$ceil',\n '$cmp',\n '$concat',\n '$concatArrays',\n '$cond',\n '$convert',\n '$cos',\n '$dateFromParts',\n '$dateToParts',\n '$dateFromString',\n '$dateToString',\n '$dayOfMonth',\n '$dayOfWeek',\n '$dayOfYear',\n '$degreesToRadians',\n '$divide',\n '$eq',\n '$exp',\n '$filter',\n '$first',\n '$floor',\n '$function',\n '$gt',\n '$gte',\n '$hour',\n '$ifNull',\n '$in',\n '$indexOfArray',\n '$indexOfBytes',\n '$indexOfCP',\n '$isArray',\n '$isNumber',\n '$isoDayOfWeek',\n '$isoWeek',\n '$isoWeekYear',\n '$last',\n '$last',\n '$let',\n '$literal',\n '$ln',\n '$log',\n '$log10',\n '$lt',\n '$lte',\n '$ltrim',\n '$map',\n '$max',\n '$mergeObjects',\n '$meta',\n '$min',\n '$millisecond',\n '$minute',\n '$mod',\n '$month',\n '$multiply',\n '$ne',\n '$not',\n '$objectToArray',\n '$or',\n '$pow',\n '$push',\n '$radiansToDegrees',\n '$range',\n '$reduce',\n '$regexFind',\n '$regexFindAll',\n '$regexMatch',\n '$replaceOne',\n '$replaceAll',\n '$reverseArray',\n '$round',\n '$rtrim',\n '$second',\n '$setDifference',\n '$setEquals',\n '$setIntersection',\n '$setIsSubset',\n '$setUnion',\n '$size',\n '$sin',\n '$slice',\n '$split',\n '$sqrt',\n '$stdDevPop',\n '$stdDevSamp',\n '$strcasecmp',\n '$strLenBytes',\n '$strLenCP',\n '$substr',\n '$substrBytes',\n '$substrCP',\n '$subtract',\n '$sum',\n '$switch',\n '$tan',\n '$toBool',\n '$toDate',\n '$toDecimal',\n '$toDouble',\n '$toInt',\n '$toLong',\n '$toObjectId',\n '$toString',\n '$toLower',\n '$toUpper',\n '$trim',\n '$trunc',\n '$type',\n '$week',\n '$year',\n '$zip',\n '$count',\n '$dateAdd',\n '$dateDiff',\n '$dateSubtract',\n '$dateTrunc',\n '$getField',\n '$rand',\n '$sampleRate',\n '$setField',\n '$unsetField', // aggregation pipeline query modifiers\n '$comment',\n '$explain',\n '$hint',\n '$max',\n '$maxTimeMS',\n '$min',\n '$orderby',\n '$query',\n '$returnKey',\n '$showDiskLoc',\n '$natural'\n ]\n var builtinFunctions = [\n 'ObjectId',\n 'Code',\n 'BinData',\n 'DBRef',\n 'Timestamp',\n 'NumberLong',\n 'NumberDecimal',\n 'MaxKey',\n 'MinKey',\n 'RegExp',\n 'ISODate',\n 'UUID'\n ]\n operators = operators.map(function (operator) {\n return operator.replace('$', '\\\\$')\n })\n var operatorsSource = '(?:' + operators.join('|') + ')\\\\b'\n Prism.languages.mongodb = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('mongodb', 'string', {\n property: {\n pattern:\n /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n greedy: true,\n inside: {\n keyword: RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n }\n }\n })\n Prism.languages.mongodb.string.inside = {\n url: {\n // url pattern\n pattern:\n /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n greedy: true\n },\n entity: {\n // ipv4\n pattern:\n /\\b(?:(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\b/,\n greedy: true\n }\n }\n Prism.languages.insertBefore('mongodb', 'constant', {\n builtin: {\n pattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n alias: 'keyword'\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = monkey\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\nfunction monkey(Prism) {\n Prism.languages.monkey = {\n comment: {\n pattern: /^#Rem\\s[\\s\\S]*?^#End|'.+/im,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n preprocessor: {\n pattern: /(^[ \\t]*)#.+/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n function: /\\b\\w+(?=\\()/,\n 'type-char': {\n pattern: /\\b[?%#$]/,\n alias: 'class-name'\n },\n number: {\n pattern:\n /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\\b/i,\n operator:\n /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[.,:;()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = moonscript\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\nfunction moonscript(Prism) {\n Prism.languages.moonscript = {\n comment: /--.*/,\n string: [\n {\n pattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n greedy: true\n },\n {\n pattern: /\"[^\"]*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /#\\{[^{}]*\\}/,\n inside: {\n moonscript: {\n pattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true,\n inside: null // see beow\n },\n 'interpolation-punctuation': {\n pattern: /#\\{|\\}/,\n alias: 'punctuation'\n }\n }\n }\n }\n }\n ],\n 'class-name': [\n {\n pattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n lookbehind: true\n }, // class-like names start with a capital letter\n /\\b[A-Z]\\w*/\n ],\n keyword:\n /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n variable: /@@?\\w*/,\n property: {\n pattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n lookbehind: true\n },\n function: {\n pattern:\n /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:create|resume|running|status|wrap|yield)|debug\\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n boolean: /\\b(?:false|true)\\b/,\n number:\n /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n operator:\n /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n punctuation: /[.,()[\\]{}\\\\]/\n }\n Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside =\n Prism.languages.moonscript\n Prism.languages.moon = Prism.languages.moonscript\n}\n","'use strict'\n\nmodule.exports = n1ql\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\nfunction n1ql(Prism) {\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html\n Prism.languages.n1ql = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)|--.*/,\n greedy: true\n },\n string: {\n pattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n greedy: true\n },\n parameter: /\\$[\\w.]+/,\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html#n1ql-reserved-words\n keyword:\n /\\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\\b/i,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:FALSE|TRUE)\\b/i,\n number: /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n punctuation: /[;[\\](),.{}:]/\n }\n}\n","'use strict'\n\nmodule.exports = n4js\nn4js.displayName = 'n4js'\nn4js.aliases = ['n4jsd']\nfunction n4js(Prism) {\n Prism.languages.n4js = Prism.languages.extend('javascript', {\n // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n keyword:\n /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n })\n Prism.languages.insertBefore('n4js', 'constant', {\n // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n annotation: {\n pattern: /@+\\w+/,\n alias: 'operator'\n }\n })\n Prism.languages.n4jsd = Prism.languages.n4js\n}\n","'use strict'\n\nmodule.exports = nand2tetrisHdl\nnand2tetrisHdl.displayName = 'nand2tetrisHdl'\nnand2tetrisHdl.aliases = []\nfunction nand2tetrisHdl(Prism) {\n Prism.languages['nand2tetris-hdl'] = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n keyword: /\\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b[A-Za-z][A-Za-z0-9]*(?=\\()/,\n number: /\\b\\d+\\b/,\n operator: /=|\\.\\./,\n punctuation: /[{}[\\];(),:]/\n }\n}\n","'use strict'\n\nmodule.exports = naniscript\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = []\nfunction naniscript(Prism) {\n ;(function (Prism) {\n var expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/\n var params = {\n 'quoted-string': {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n alias: 'operator'\n },\n 'command-param-id': {\n pattern: /(\\s)\\w+:/,\n lookbehind: true,\n alias: 'property'\n },\n 'command-param-value': [\n {\n pattern: expressionDef,\n alias: 'selector'\n },\n {\n pattern: /([\\t ])\\S+/,\n lookbehind: true,\n greedy: true,\n alias: 'operator'\n },\n {\n pattern: /\\S(?:.*\\S)?/,\n alias: 'operator'\n }\n ]\n }\n Prism.languages.naniscript = {\n // ; ...\n comment: {\n pattern: /^([\\t ]*);.*/m,\n lookbehind: true\n },\n // > ...\n // Define is a control line starting with '>' followed by a word, a space and a text.\n define: {\n pattern: /^>.+/m,\n alias: 'tag',\n inside: {\n value: {\n pattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n lookbehind: true,\n alias: 'operator'\n },\n key: {\n pattern: /(^>)\\w+/,\n lookbehind: true\n }\n }\n },\n // # ...\n label: {\n pattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n lookbehind: true,\n alias: 'regex'\n },\n command: {\n pattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n 'command-name': /^@\\w+/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'command-params': {\n pattern: /\\s*\\S[\\s\\S]*/,\n inside: params\n }\n }\n },\n // Generic is any line that doesn't start with operators: ;>#@\n 'generic-text': {\n pattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n lookbehind: true,\n alias: 'punctuation',\n inside: {\n // \\{ ... \\} ... \\[ ... \\] ... \\\"\n 'escaped-char': /\\\\[{}\\[\\]\"]/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'inline-command': {\n pattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n greedy: true,\n alias: 'function',\n inside: {\n 'command-params': {\n pattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n inside: params\n },\n 'command-param-name': {\n pattern: /^(\\[[\\t ]*)\\w+/,\n lookbehind: true,\n alias: 'name'\n },\n 'start-stop-char': /[\\[\\]]/\n }\n }\n }\n }\n }\n Prism.languages.nani = Prism.languages['naniscript']\n /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\n /**\n * This hook is used to validate generic-text tokens for balanced brackets.\n * Mark token as bad-line when contains not balanced brackets: {},[]\n */\n Prism.hooks.add('after-tokenize', function (env) {\n /** @type {(Token | string)[]} */\n var tokens = env.tokens\n tokens.forEach(function (token) {\n if (typeof token !== 'string' && token.type === 'generic-text') {\n var content = getTextContent(token)\n if (!isBracketsBalanced(content)) {\n token.type = 'bad-line'\n token.content = content\n }\n }\n })\n })\n /**\n * @param {string} input\n * @returns {boolean}\n */\n function isBracketsBalanced(input) {\n var brackets = '[]{}'\n var stack = []\n for (var i = 0; i < input.length; i++) {\n var bracket = input[i]\n var bracketsIndex = brackets.indexOf(bracket)\n if (bracketsIndex !== -1) {\n if (bracketsIndex % 2 === 0) {\n stack.push(bracketsIndex + 1)\n } else if (stack.pop() !== bracketsIndex) {\n return false\n }\n }\n }\n return stack.length === 0\n }\n /**\n * @param {string | Token | (string | Token)[]} token\n * @returns {string}\n */\n function getTextContent(token) {\n if (typeof token === 'string') {\n return token\n } else if (Array.isArray(token)) {\n return token.map(getTextContent).join('')\n } else {\n return getTextContent(token.content)\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = nasm\nnasm.displayName = 'nasm'\nnasm.aliases = []\nfunction nasm(Prism) {\n Prism.languages.nasm = {\n comment: /;.*$/m,\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n label: {\n pattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n /\\[?BITS (?:16|32|64)\\]?/,\n {\n pattern: /(^\\s*)section\\s*[a-z.]+:?/im,\n lookbehind: true\n },\n /(?:extern|global)[^;\\r\\n]*/i,\n /(?:CPU|DEFAULT|FLOAT).*$/m\n ],\n register: {\n pattern:\n /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\\b/i,\n alias: 'variable'\n },\n number:\n /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-\\/%<>=&|$!]/\n }\n}\n","'use strict'\n\nmodule.exports = neon\nneon.displayName = 'neon'\nneon.aliases = []\nfunction neon(Prism) {\n Prism.languages.neon = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n datetime: {\n pattern:\n /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n lookbehind: true,\n alias: 'number'\n },\n key: {\n pattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n lookbehind: true,\n alias: 'atrule'\n },\n number: {\n pattern:\n /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[[{(=:,\\s])(?:false|no|true|yes)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true\n },\n null: {\n pattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true,\n alias: 'keyword'\n },\n string: {\n pattern:\n /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n lookbehind: true,\n greedy: true\n },\n literal: {\n pattern:\n /(^|[[{(=:,\\s])(?:[^#\"',:=[\\]{}()\\s`-]|[:-][^\"',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /[,:=[\\]{}()-]/\n }\n}\n","'use strict'\n\nmodule.exports = nevod\nnevod.displayName = 'nevod'\nnevod.aliases = []\nfunction nevod(Prism) {\n Prism.languages.nevod = {\n comment: /\\/\\/.*|(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$))/,\n string: {\n pattern: /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))!?\\*?/,\n greedy: true,\n inside: {\n 'string-attrs': /!$|!\\*$|\\*$/\n }\n },\n namespace: {\n pattern: /(@namespace\\s+)[a-zA-Z0-9\\-.]+(?=\\s*\\{)/,\n lookbehind: true\n },\n pattern: {\n pattern:\n /(@pattern\\s+)?#?[a-zA-Z0-9\\-.]+(?:\\s*\\(\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]+\\s*(?:,\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]*)*\\))?(?=\\s*=)/,\n lookbehind: true,\n inside: {\n 'pattern-name': {\n pattern: /^#?[a-zA-Z0-9\\-.]+/,\n alias: 'class-name'\n },\n fields: {\n pattern: /\\(.*\\)/,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n punctuation: /[,()]/,\n operator: {\n pattern: /~/,\n alias: 'field-hidden-mark'\n }\n }\n }\n }\n },\n search: {\n pattern: /(@search\\s+|#)[a-zA-Z0-9\\-.]+(?:\\.\\*)?(?=\\s*;)/,\n alias: 'function',\n lookbehind: true\n },\n keyword:\n /@(?:having|inside|namespace|outside|pattern|require|search|where)\\b/,\n 'standard-pattern': {\n pattern:\n /\\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\\b(?:\\([a-zA-Z0-9\\-.,\\s+]*\\))?/,\n inside: {\n 'standard-pattern-name': {\n pattern: /^[a-zA-Z0-9\\-.]+/,\n alias: 'builtin'\n },\n quantifier: {\n pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n alias: 'number'\n },\n 'standard-pattern-attr': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'builtin'\n },\n punctuation: /[,()]/\n }\n },\n quantifier: {\n pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n alias: 'number'\n },\n operator: [\n {\n pattern: /=/,\n alias: 'pattern-def'\n },\n {\n pattern: /&/,\n alias: 'conjunction'\n },\n {\n pattern: /~/,\n alias: 'exception'\n },\n {\n pattern: /\\?/,\n alias: 'optionality'\n },\n {\n pattern: /[[\\]]/,\n alias: 'repetition'\n },\n {\n pattern: /[{}]/,\n alias: 'variation'\n },\n {\n pattern: /[+_]/,\n alias: 'sequence'\n },\n {\n pattern: /\\.{2,3}/,\n alias: 'span'\n }\n ],\n 'field-capture': [\n {\n pattern:\n /([a-zA-Z0-9\\-.]+\\s*\\()\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+(?:\\s*,\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+)*(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n colon: /:/\n }\n },\n {\n pattern: /[a-zA-Z0-9\\-.]+\\s*:/,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n colon: /:/\n }\n }\n ],\n punctuation: /[:;,()]/,\n name: /[a-zA-Z0-9\\-.]+/\n }\n}\n","'use strict'\n\nmodule.exports = nginx\nnginx.displayName = 'nginx'\nnginx.aliases = []\nfunction nginx(Prism) {\n ;(function (Prism) {\n var variable =\n /\\$(?:\\w[a-z\\d]*(?:_[^\\x00-\\x1F\\s\"'\\\\()$]*)?|\\{[^}\\s\"'\\\\]+\\})/i\n Prism.languages.nginx = {\n comment: {\n pattern: /(^|[\\s{};])#.*/,\n lookbehind: true,\n greedy: true\n },\n directive: {\n pattern:\n /(^|\\s)\\w(?:[^;{}\"'\\\\\\s]|\\\\.|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\s+(?:#.*(?!.)|(?![#\\s])))*?(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: {\n string: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\\\\\)*)(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')/,\n lookbehind: true,\n greedy: true,\n inside: {\n escape: {\n pattern: /\\\\[\"'\\\\nrt]/,\n alias: 'entity'\n },\n variable: variable\n }\n },\n comment: {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n greedy: true\n },\n keyword: {\n pattern: /^\\S+/,\n greedy: true\n },\n // other patterns\n boolean: {\n pattern: /(\\s)(?:off|on)(?!\\S)/,\n lookbehind: true\n },\n number: {\n pattern: /(\\s)\\d+[a-z]*(?!\\S)/i,\n lookbehind: true\n },\n variable: variable\n }\n },\n punctuation: /[{};]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = nim\nnim.displayName = 'nim'\nnim.aliases = []\nfunction nim(Prism) {\n Prism.languages.nim = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n pattern:\n /(?:\\b(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")/,\n greedy: true\n },\n char: {\n // Character literals are handled specifically to prevent issues with numeric type suffixes\n pattern: /'(?:\\\\(?:\\d+|x[\\da-fA-F]{0,2}|.)|[^'])'/,\n greedy: true\n },\n function: {\n pattern:\n /(?:(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n greedy: true,\n inside: {\n operator: /\\*$/\n }\n },\n // We don't want to highlight operators (and anything really) inside backticks\n identifier: {\n pattern: /`[^`\\r\\n]+`/,\n greedy: true,\n inside: {\n punctuation: /`/\n }\n },\n // The negative look ahead prevents wrong highlighting of the .. operator\n number:\n /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n keyword:\n /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n operator: {\n // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n // but allow the slice operator .. to take precedence over them\n // One can define his own operators in Nim so all combination of operators might be an operator.\n pattern:\n /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\\b)/m,\n lookbehind: true\n },\n punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n }\n}\n","'use strict'\n\nmodule.exports = nix\nnix.displayName = 'nix'\nnix.aliases = []\nfunction nix(Prism) {\n Prism.languages.nix = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n greedy: true,\n inside: {\n interpolation: {\n // The lookbehind ensures the ${} is not preceded by \\ or ''\n pattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n lookbehind: true,\n inside: null // see below\n }\n }\n },\n url: [\n /\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n {\n pattern:\n /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n lookbehind: true\n }\n ],\n antiquotation: {\n pattern: /\\$(?=\\{)/,\n alias: 'important'\n },\n number: /\\b\\d+\\b/,\n keyword: /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n function:\n /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n punctuation: /[{}()[\\].,:;]/\n }\n Prism.languages.nix.string.inside.interpolation.inside = Prism.languages.nix\n}\n","'use strict'\n\nmodule.exports = nsis\nnsis.displayName = 'nsis'\nnsis.aliases = []\nfunction nsis(Prism) {\n /**\n * Original by Jan T. Sott (http://github.com/idleberg)\n *\n * Includes all commands and plug-ins shipped with NSIS 3.08\n */\n Prism.languages.nsis = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: {\n pattern:\n /(^[\\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\\b/m,\n lookbehind: true\n },\n property:\n /\\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\\b/,\n constant: /\\$\\{[!\\w\\.:\\^-]+\\}|\\$\\([!\\w\\.:\\^-]+\\)/,\n variable: /\\$\\w[\\w\\.]*/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator: /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n punctuation: /[{}[\\];(),.:]/,\n important: {\n pattern:\n /(^[\\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n lookbehind: true\n }\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = objectivec\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\nfunction objectivec(Prism) {\n Prism.register(refractorC)\n Prism.languages.objectivec = Prism.languages.extend('c', {\n string: {\n pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n })\n delete Prism.languages.objectivec['class-name']\n Prism.languages.objc = Prism.languages.objectivec\n}\n","'use strict'\n\nmodule.exports = ocaml\nocaml.displayName = 'ocaml'\nocaml.aliases = []\nfunction ocaml(Prism) {\n // https://ocaml.org/manual/lex.html\n Prism.languages.ocaml = {\n comment: {\n pattern: /\\(\\*[\\s\\S]*?\\*\\)/,\n greedy: true\n },\n char: {\n pattern: /'(?:[^\\\\\\r\\n']|\\\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,\n greedy: true\n },\n string: [\n {\n pattern: /\"(?:\\\\(?:[\\s\\S]|\\r\\n)|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n {\n pattern: /\\{([a-z_]*)\\|[\\s\\S]*?\\|\\1\\}/,\n greedy: true\n }\n ],\n number: [\n // binary and octal\n /\\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\\b/i, // hexadecimal\n /\\b0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]*)?(?:p[+-]?\\d[\\d_]*)?(?!\\w)/i, // decimal\n /\\b\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?(?!\\w)/i\n ],\n directive: {\n pattern: /\\B#\\w+/,\n alias: 'property'\n },\n label: {\n pattern: /\\B~\\w+/,\n alias: 'property'\n },\n 'type-variable': {\n pattern: /\\B'\\w+/,\n alias: 'function'\n },\n variant: {\n pattern: /`\\w+/,\n alias: 'symbol'\n },\n // For the list of keywords and operators,\n // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n keyword:\n /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'operator-like-punctuation': {\n pattern: /\\[[<>|]|[>|]\\]|\\{<|>\\}/,\n alias: 'punctuation'\n },\n // Custom operators are allowed\n operator:\n /\\.[.~]|:[=>]|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n punctuation: /;;|::|[(){}\\[\\].,:;#]|\\b_\\b/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = opencl\nopencl.displayName = 'opencl'\nopencl.aliases = []\nfunction opencl(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n /* OpenCL kernel language */\n Prism.languages.opencl = Prism.languages.extend('c', {\n // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n keyword:\n /\\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n boolean: /\\b(?:false|true)\\b/,\n 'constant-opencl-kernel': {\n pattern:\n /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\\b/,\n alias: 'constant'\n }\n })\n Prism.languages.insertBefore('opencl', 'class-name', {\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n 'builtin-type': {\n pattern:\n /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n alias: 'keyword'\n }\n })\n var attributes = {\n // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n 'type-opencl-host': {\n pattern:\n /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n alias: 'keyword'\n },\n 'boolean-opencl-host': {\n pattern: /\\bCL_(?:FALSE|TRUE)\\b/,\n alias: 'boolean'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n 'constant-opencl-host': {\n pattern:\n /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n alias: 'constant'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n 'function-opencl-host': {\n pattern:\n /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n alias: 'function'\n }\n }\n /* OpenCL host API */\n Prism.languages.insertBefore('c', 'keyword', attributes) // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n if (Prism.languages.cpp) {\n // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n attributes['type-opencl-host-cpp'] = {\n pattern:\n /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\\b/,\n alias: 'keyword'\n }\n Prism.languages.insertBefore('cpp', 'keyword', attributes)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = openqasm\nopenqasm.displayName = 'openqasm'\nopenqasm.aliases = ['qasm']\nfunction openqasm(Prism) {\n // https://qiskit.github.io/openqasm/grammar/index.html\n Prism.languages.openqasm = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"[^\"\\r\\n\\t]*\"|'[^'\\r\\n\\t]*'/,\n greedy: true\n },\n keyword:\n /\\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\\b|#pragma\\b/,\n 'class-name':\n /\\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\\b/,\n function: /\\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\\b(?=\\s*\\()/,\n constant: /\\b(?:euler|pi|tau)\\b|Ï€|ðœ|ℇ/,\n number: {\n pattern:\n /(^|[^.\\w$])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?(?:dt|ns|us|µs|ms|s)?/i,\n lookbehind: true\n },\n operator: /->|>>=?|<<=?|&&|\\|\\||\\+\\+|--|[!=<>&|~^+\\-*/%]=?|@/,\n punctuation: /[(){}\\[\\];,:.]/\n }\n Prism.languages.qasm = Prism.languages.openqasm\n}\n","'use strict'\n\nmodule.exports = oz\noz.displayName = 'oz'\noz.aliases = []\nfunction oz(Prism) {\n Prism.languages.oz = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n atom: {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n alias: 'builtin'\n },\n keyword:\n /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n function: [\n /\\b[a-z][A-Za-z\\d]*(?=\\()/,\n {\n pattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n lookbehind: true\n }\n ],\n number:\n /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n variable: /`(?:[^`\\\\]|\\\\.)+`/,\n 'attr-name': /\\b\\w+(?=[ \\t]*:(?![:=]))/,\n operator:\n /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n punctuation: /[\\[\\](){}.:;?]/\n }\n}\n","'use strict'\n\nmodule.exports = parigp\nparigp.displayName = 'parigp'\nparigp.aliases = []\nfunction parigp(Prism) {\n Prism.languages.parigp = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n greedy: true\n },\n // PARI/GP does not care about white spaces at all\n // so let's process the keywords to build an appropriate regexp\n // (e.g. \"b *r *e *a *k\", etc.)\n keyword: (function () {\n var keywords = [\n 'breakpoint',\n 'break',\n 'dbg_down',\n 'dbg_err',\n 'dbg_up',\n 'dbg_x',\n 'forcomposite',\n 'fordiv',\n 'forell',\n 'forpart',\n 'forprime',\n 'forstep',\n 'forsubgroup',\n 'forvec',\n 'for',\n 'iferr',\n 'if',\n 'local',\n 'my',\n 'next',\n 'return',\n 'until',\n 'while'\n ]\n keywords = keywords\n .map(function (keyword) {\n return keyword.split('').join(' *')\n })\n .join('|')\n return RegExp('\\\\b(?:' + keywords + ')\\\\b')\n })(),\n function: /\\b\\w(?:[\\w ]*\\w)?(?= *\\()/,\n number: {\n // The lookbehind and the negative lookahead prevent from breaking the .. operator\n pattern:\n /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n lookbehind: true\n },\n operator:\n /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n punctuation: /[\\[\\]{}().,:;|]/\n }\n}\n","'use strict'\n\nmodule.exports = parser\nparser.displayName = 'parser'\nparser.aliases = []\nfunction parser(Prism) {\n ;(function (Prism) {\n var parser = (Prism.languages.parser = Prism.languages.extend('markup', {\n keyword: {\n pattern:\n /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\.|:+/\n }\n },\n function: {\n pattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /(^@)(?:GET_|SET_)/,\n lookbehind: true\n },\n punctuation: /\\.|:+/\n }\n },\n escape: {\n pattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n alias: 'builtin'\n },\n punctuation: /[\\[\\](){};]/\n }))\n parser = Prism.languages.insertBefore('parser', 'keyword', {\n 'parser-comment': {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n alias: 'comment'\n },\n expression: {\n // Allow for 3 levels of depth\n pattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n greedy: true,\n lookbehind: true,\n inside: {\n string: {\n pattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n lookbehind: true\n },\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n escape: parser.escape,\n operator:\n /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n punctuation: parser.punctuation\n }\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n expression: parser.expression,\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n escape: parser.escape,\n 'parser-punctuation': {\n pattern: parser.punctuation,\n alias: 'punctuation'\n }\n },\n parser['tag'].inside['attr-value']\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pascal\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\nfunction pascal(Prism) {\n // Based on Free Pascal\n /* TODO\nSupport inline asm ?\n*/\n Prism.languages.pascal = {\n directive: {\n pattern: /\\{\\$[\\s\\S]*?\\}/,\n greedy: true,\n alias: ['marco', 'property']\n },\n comment: {\n pattern: /\\(\\*[\\s\\S]*?\\*\\)|\\{[\\s\\S]*?\\}|\\/\\/.*/,\n greedy: true\n },\n string: {\n pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n greedy: true\n },\n asm: {\n pattern: /(\\basm\\b)[\\s\\S]+?(?=\\bend\\s*[;[])/i,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n keyword: [\n {\n // Turbo Pascal\n pattern:\n /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n lookbehind: true\n },\n {\n // Free Pascal\n pattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n lookbehind: true\n },\n {\n // Object Pascal\n pattern:\n /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n lookbehind: true\n },\n {\n // Modifiers\n pattern:\n /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n lookbehind: true\n }\n ],\n number: [\n // Hexadecimal, octal and binary\n /(?:[&%]\\d+|\\$[a-f\\d]+)/i, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n ],\n operator: [\n /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/,\n {\n pattern:\n /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n }\n Prism.languages.pascal.asm.inside = Prism.languages.extend('pascal', {\n asm: undefined,\n keyword: undefined,\n operator: undefined\n })\n Prism.languages.objectpascal = Prism.languages.pascal\n}\n","'use strict'\n\nmodule.exports = pascaligo\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\nfunction pascaligo(Prism) {\n ;(function (Prism) {\n // Pascaligo is a layer 2 smart contract language for the tezos blockchain\n var braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source\n var type = /(?:\\b\\w+(?:<braces>)?|<braces>)/.source.replace(\n /<braces>/g,\n function () {\n return braces\n }\n )\n var pascaligo = (Prism.languages.pascaligo = {\n comment: /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n greedy: true\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(\\btype\\s+\\w+\\s+is\\s+)<type>/.source.replace(\n /<type>/g,\n function () {\n return type\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n pattern: RegExp(\n /<type>(?=\\s+is\\b)/.source.replace(/<type>/g, function () {\n return type\n }),\n 'i'\n ),\n inside: null // see below\n },\n {\n pattern: RegExp(\n /(:\\s*)<type>/.source.replace(/<type>/g, function () {\n return type\n })\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n keyword: {\n pattern:\n /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^&])\\b(?:False|True)\\b/i,\n lookbehind: true\n },\n builtin: {\n pattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n lookbehind: true\n },\n function: /\\b\\w+(?=\\s*\\()/,\n number: [\n // Hexadecimal, octal and binary\n /%[01]+|&[0-7]+|\\$[a-f\\d]+/i, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n ],\n operator:\n /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n })\n var classNameInside = [\n 'comment',\n 'keyword',\n 'builtin',\n 'operator',\n 'punctuation'\n ].reduce(function (accum, key) {\n accum[key] = pascaligo[key]\n return accum\n }, {})\n pascaligo['class-name'].forEach(function (p) {\n p.inside = classNameInside\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pcaxis\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\nfunction pcaxis(Prism) {\n Prism.languages.pcaxis = {\n string: /\"[^\"]*\"/,\n keyword: {\n pattern:\n /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^[-A-Z\\d]+/,\n language: {\n pattern: /^(\\s*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n property: /[-\\w]+/\n }\n },\n 'sub-key': {\n pattern: /^(\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /\"[^\"]*\"/,\n alias: 'property'\n },\n punctuation: /^\\(|\\)$|,/\n }\n }\n }\n },\n operator: /=/,\n tlist: {\n pattern:\n /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n greedy: true,\n inside: {\n function: /^TLIST/,\n property: {\n pattern: /^(\\s*\\(\\s*)\\w+/,\n lookbehind: true\n },\n string: /\"[^\"]*\"/,\n punctuation: /[(),]/,\n operator: /-/\n }\n },\n punctuation: /[;,]/,\n number: {\n pattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n lookbehind: true\n },\n boolean: /NO|YES/\n }\n Prism.languages.px = Prism.languages.pcaxis\n}\n","'use strict'\n\nmodule.exports = peoplecode\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\nfunction peoplecode(Prism) {\n Prism.languages.peoplecode = {\n comment: RegExp(\n [\n // C-style multiline comments\n /\\/\\*[\\s\\S]*?\\*\\//.source, // REM comments\n /\\bREM[^;]*;/.source, // Nested <* *> comments\n /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source, // /+ +/ comments\n /\\/\\+[\\s\\S]*?\\+\\//.source\n ].join('|')\n ),\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n variable: /%\\w+/,\n 'function-definition': {\n pattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n lookbehind: true,\n alias: 'function'\n },\n 'class-name': {\n pattern:\n /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n lookbehind: true,\n inside: {\n punctuation: /:/\n }\n },\n keyword:\n /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n 'operator-keyword': {\n pattern: /\\b(?:and|not|or)\\b/i,\n alias: 'operator'\n },\n function: /[_a-z]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n punctuation: /[:.;,()[\\]]/\n }\n Prism.languages.pcode = Prism.languages.peoplecode\n}\n","'use strict'\n\nmodule.exports = perl\nperl.displayName = 'perl'\nperl.aliases = []\nfunction perl(Prism) {\n ;(function (Prism) {\n var brackets =\n /(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)/\n .source\n Prism.languages.perl = {\n comment: [\n {\n // POD\n pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // TODO Could be nice to handle Heredoc too.\n string: [\n {\n pattern: RegExp(\n /\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // q/.../\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // q a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // q(...)\n // q{...}\n // q[...]\n // q<...>\n brackets\n ].join('|') +\n ')'\n ),\n greedy: true\n }, // \"...\", `...`\n {\n pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n }, // '...'\n // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n {\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n }\n ],\n regex: [\n {\n pattern: RegExp(\n /\\b(?:m|qr)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // m/.../\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // m a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // m(...)\n // m{...}\n // m[...]\n // m<...>\n brackets\n ].join('|') +\n ')' +\n /[msixpodualngc]*/.source\n ),\n greedy: true\n }, // The lookbehinds prevent -s from breaking\n {\n pattern: RegExp(\n /(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // s/.../.../\n // eslint-disable-next-line regexp/strict\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/\n .source, // s a...a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3/\n .source, // s(...)(...)\n // s{...}{...}\n // s[...][...]\n // s<...><...>\n // s(...)[...]\n brackets + /\\s*/.source + brackets\n ].join('|') +\n ')' +\n /[msixpodualngcer]*/.source\n ),\n lookbehind: true,\n greedy: true\n }, // /.../\n // The look-ahead tries to prevent two divisions on\n // the same line from being highlighted as regex.\n // This does not support multi-line regex.\n {\n pattern:\n /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\\b))/,\n greedy: true\n }\n ],\n // FIXME Not sure about the handling of ::, ', and #\n variable: [\n // ${^POSTMATCH}\n /[&*$@%]\\{\\^[A-Z]+\\}/, // $^V\n /[&*$@%]\\^[A-Z_]/, // ${...}\n /[&*$@%]#?(?=\\{)/, // $foo\n /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+(?![\\w$]))+(?:::)*/, // $1\n /[&*$@%]\\d+/, // $_, @_, %!\n // The negative lookahead prevents from breaking the %= operator\n /(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n ],\n filehandle: {\n // <>, <FOO>, _\n pattern: /<(?![<=])\\S*?>|\\b_\\b/,\n alias: 'symbol'\n },\n 'v-string': {\n // v1.2, 1.2.3\n pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n alias: 'string'\n },\n function: {\n pattern: /(\\bsub[ \\t]+)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n number:\n /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n operator:\n /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\\b/,\n punctuation: /[{}[\\];(),:]/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nmodule.exports = phpExtras\nphpExtras.displayName = 'phpExtras'\nphpExtras.aliases = []\nfunction phpExtras(Prism) {\n Prism.register(refractorPhp)\n Prism.languages.insertBefore('php', 'variable', {\n this: {\n pattern: /\\$this\\b/,\n alias: 'keyword'\n },\n global:\n /\\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\\b/,\n scope: {\n pattern: /\\b[\\w\\\\]+::/,\n inside: {\n keyword: /\\b(?:parent|self|static)\\b/,\n punctuation: /::|\\\\/\n }\n }\n })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = php\nphp.displayName = 'php'\nphp.aliases = []\nfunction php(Prism) {\n Prism.register(refractorMarkupTemplating)\n /**\n * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n * Modified by Miles Johnson: http://milesj.me\n * Rewritten by Tom Pavelec\n *\n * Supports PHP 5.3 - 8.0\n */\n ;(function (Prism) {\n var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/\n var constant = [\n {\n pattern: /\\b(?:false|true)\\b/i,\n alias: 'boolean'\n },\n {\n pattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n greedy: true,\n lookbehind: true\n },\n /\\b(?:null)\\b/i,\n /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/\n ]\n var number =\n /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n var operator =\n /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/\n var punctuation = /[{}\\[\\](),:;]/\n Prism.languages.php = {\n delimiter: {\n pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n alias: 'important'\n },\n comment: comment,\n variable: /\\$+(?:\\w+\\b|(?=\\{))/,\n package: {\n pattern:\n /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n 'class-name-definition': {\n pattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n 'function-definition': {\n pattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n {\n pattern:\n /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n alias: 'type-casting',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string|void)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n alias: 'type-declaration',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n // yield from\n pattern: /(\\byield\\s+)from\\b/i,\n lookbehind: true\n }, // `class` is always a keyword unlike other keywords\n /\\bclass\\b/i,\n {\n // https://www.php.net/manual/en/reserved.keywords.php\n //\n // keywords cannot be preceded by \"->\"\n // the complex lookbehind means `(?<!(?:->|::)\\s*)`\n pattern:\n /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n lookbehind: true\n }\n ],\n 'argument-name': {\n pattern: /([(,]\\s+)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n lookbehind: true\n },\n 'class-name': [\n {\n pattern:\n /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern:\n /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-declaration'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n alias: ['class-name-fully-qualified', 'static-context'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-hint'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: ['class-name-fully-qualified', 'return-type'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n function: {\n pattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n property: {\n pattern: /(->\\s*)\\w+/,\n lookbehind: true\n },\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n var string_interpolation = {\n pattern:\n /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n lookbehind: true,\n inside: Prism.languages.php\n }\n var string = [\n {\n pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n alias: 'nowdoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<'?|[';]$/\n }\n }\n }\n },\n {\n pattern:\n /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<\"?|[\";]$/\n }\n },\n interpolation: string_interpolation\n }\n },\n {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n alias: 'backtick-quoted-string',\n greedy: true\n },\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n alias: 'single-quoted-string',\n greedy: true\n },\n {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n alias: 'double-quoted-string',\n greedy: true,\n inside: {\n interpolation: string_interpolation\n }\n }\n ]\n Prism.languages.insertBefore('php', 'variable', {\n string: string,\n attribute: {\n pattern:\n /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n greedy: true,\n inside: {\n 'attribute-content': {\n pattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n // inside can appear subset of php\n inside: {\n comment: comment,\n string: string,\n 'attribute-class-name': [\n {\n pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'class-name',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n alias: ['class-name', 'class-name-fully-qualified'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n },\n delimiter: {\n pattern: /^#\\[|\\]$/,\n alias: 'punctuation'\n }\n }\n }\n })\n Prism.hooks.add('before-tokenize', function (env) {\n if (!/<\\?/.test(env.code)) {\n return\n }\n var phpPattern =\n /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'php',\n phpPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php')\n })\n })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = phpdoc\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\nfunction phpdoc(Prism) {\n Prism.register(refractorPhp)\n Prism.register(refractorJavadoclike)\n ;(function (Prism) {\n var typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source\n Prism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n pattern: RegExp(\n '(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' +\n typeExpression +\n '\\\\s+)?)\\\\$\\\\w+'\n ),\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('phpdoc', 'keyword', {\n 'class-name': [\n {\n pattern: RegExp(\n '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' +\n typeExpression\n ),\n lookbehind: true,\n inside: {\n keyword:\n /\\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\\b/,\n punctuation: /[|\\\\[\\]()]/\n }\n }\n ]\n })\n Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n })(Prism)\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = plsql\nplsql.displayName = 'plsql'\nplsql.aliases = []\nfunction plsql(Prism) {\n Prism.register(refractorSql)\n Prism.languages.plsql = Prism.languages.extend('sql', {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|--.*/,\n greedy: true\n },\n // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-reserved-words-keywords.html\n keyword:\n /\\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\\b/i,\n // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-language-fundamentals.html#GUID-96A42F7C-7A71-4B90-8255-CA9C8BD9722E\n operator: /:=?|=>|[<>^~!]=|\\.\\.|\\|\\||\\*\\*|[-+*/%<>=@]/\n })\n Prism.languages.insertBefore('plsql', 'operator', {\n label: {\n pattern: /<<\\s*\\w+\\s*>>/,\n alias: 'symbol'\n }\n })\n}\n","'use strict'\n\nmodule.exports = powerquery\npowerquery.displayName = 'powerquery'\npowerquery.aliases = []\nfunction powerquery(Prism) {\n // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n Prism.languages.powerquery = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n 'quoted-identifier': {\n pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n string: {\n pattern: /(?:#!)?\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n constant: [\n /\\bDay\\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\\b/,\n /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n /\\bOccurrence\\.(?:All|First|Last)\\b/,\n /\\bOrder\\.(?:Ascending|Descending)\\b/,\n /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n /\\bJoinKind\\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\\b/,\n /\\bGroupKind\\.(?:Global|Local)\\b/,\n /\\bExtraValues\\.(?:Error|Ignore|List)\\b/,\n /\\bJoinAlgorithm\\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\\b/,\n /\\bJoinSide\\.(?:Left|Right)\\b/,\n /\\bPrecision\\.(?:Decimal|Double)\\b/,\n /\\bRelativePosition\\.From(?:End|Start)\\b/,\n /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\\b/,\n /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n /\\bnull\\b/\n ],\n boolean: /\\b(?:false|true)\\b/,\n keyword:\n /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n function: {\n pattern: /(^|[^#\\w.])[a-z_][\\w.]*(?=\\s*\\()/i,\n lookbehind: true\n },\n 'data-type': {\n pattern:\n /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\\b/,\n alias: 'class-name'\n },\n number: {\n pattern:\n /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n lookbehind: true\n },\n operator: /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n punctuation: /[,;\\[\\](){}]/\n }\n Prism.languages.pq = Prism.languages['powerquery']\n Prism.languages.mscript = Prism.languages['powerquery']\n}\n","'use strict'\n\nmodule.exports = powershell\npowershell.displayName = 'powershell'\npowershell.aliases = []\nfunction powershell(Prism) {\n ;(function (Prism) {\n var powershell = (Prism.languages.powershell = {\n comment: [\n {\n pattern: /(^|[^`])<#[\\s\\S]*?#>/,\n lookbehind: true\n },\n {\n pattern: /(^|[^`])#.*/,\n lookbehind: true\n }\n ],\n string: [\n {\n pattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n greedy: true,\n inside: null // see below\n },\n {\n pattern: /'(?:[^']|'')*'/,\n greedy: true\n }\n ],\n // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n namespace: /\\[[a-z](?:\\[(?:\\[[^\\]]*\\]|[^\\[\\]])*\\]|[^\\[\\]])*\\]/i,\n boolean: /\\$(?:false|true)\\b/i,\n variable: /\\$\\w+\\b/,\n // Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n // Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n function: [\n /\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n /\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n ],\n // per http://technet.microsoft.com/en-us/library/hh847744.aspx\n keyword:\n /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n operator: {\n pattern:\n /(^|\\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n lookbehind: true\n },\n punctuation: /[|{}[\\];(),.]/\n }) // Variable interpolation inside strings, and nested expressions\n powershell.string[0].inside = {\n function: {\n // Allow for one level of nesting\n pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n lookbehind: true,\n inside: powershell\n },\n boolean: powershell.boolean,\n variable: powershell.variable\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = processing\nprocessing.displayName = 'processing'\nprocessing.aliases = []\nfunction processing(Prism) {\n Prism.languages.processing = Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n // Spaces are allowed between function name and parenthesis\n function: /\\b\\w+(?=\\s*\\()/,\n operator: /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n })\n Prism.languages.insertBefore('processing', 'number', {\n // Special case: XML is a type\n constant: /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n type: {\n pattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n alias: 'class-name'\n }\n })\n}\n","'use strict'\n\nmodule.exports = prolog\nprolog.displayName = 'prolog'\nprolog.aliases = []\nfunction prolog(Prism) {\n Prism.languages.prolog = {\n // Syntax depends on the implementation\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n greedy: true\n },\n // Depending on the implementation, strings may allow escaped newlines and quote-escape\n string: {\n pattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1(?!\\1)/,\n greedy: true\n },\n builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n function: /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n number: /\\b\\d+(?:\\.\\d*)?/,\n // Custom operators are allowed\n operator: /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n punctuation: /[(){}\\[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = promql\npromql.displayName = 'promql'\npromql.aliases = []\nfunction promql(Prism) {\n // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n ;(function (Prism) {\n // PromQL Aggregation Operators\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n var aggregations = [\n 'sum',\n 'min',\n 'max',\n 'avg',\n 'group',\n 'stddev',\n 'stdvar',\n 'count',\n 'count_values',\n 'bottomk',\n 'topk',\n 'quantile'\n ] // PromQL vector matching + the by and without clauses\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n var vectorMatching = [\n 'on',\n 'ignoring',\n 'group_right',\n 'group_left',\n 'by',\n 'without'\n ] // PromQL offset modifier\n // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n var offsetModifier = ['offset']\n var keywords = aggregations.concat(vectorMatching, offsetModifier)\n Prism.languages.promql = {\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n 'vector-match': {\n // Match the comma-separated label lists inside vector matching:\n pattern: new RegExp(\n '((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'\n ),\n lookbehind: true,\n inside: {\n 'label-key': {\n pattern: /\\b[^,]+\\b/,\n alias: 'attr-name'\n },\n punctuation: /[(),]/\n }\n },\n 'context-labels': {\n pattern: /\\{[^{}]*\\}/,\n inside: {\n 'label-key': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:=|![=~]))/,\n alias: 'attr-name'\n },\n 'label-value': {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true,\n alias: 'attr-value'\n },\n punctuation: /\\{|\\}|=~?|![=~]|,/\n }\n },\n 'context-range': [\n {\n pattern: /\\[[\\w\\s:]+\\]/,\n // [1m]\n inside: {\n punctuation: /\\[|\\]|:/,\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n },\n {\n pattern: /(\\boffset\\s+)\\w+/,\n // offset 1m\n lookbehind: true,\n inside: {\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n }\n ],\n keyword: new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number:\n /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n operator: /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|or|unless)\\b/i,\n punctuation: /[{};()`,.[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = properties\nproperties.displayName = 'properties'\nproperties.aliases = []\nfunction properties(Prism) {\n Prism.languages.properties = {\n comment: /^[ \\t]*[#!].*$/m,\n 'attr-value': {\n pattern:\n /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n lookbehind: true\n },\n 'attr-name': /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?= *[=:]| )/m,\n punctuation: /[=:]/\n }\n}\n","'use strict'\n\nmodule.exports = protobuf\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\nfunction protobuf(Prism) {\n ;(function (Prism) {\n var builtinTypes =\n /\\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\\b/\n Prism.languages.protobuf = Prism.languages.extend('clike', {\n 'class-name': [\n {\n pattern:\n /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n lookbehind: true\n },\n {\n pattern:\n /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n lookbehind: true\n }\n ],\n keyword:\n /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i\n })\n Prism.languages.insertBefore('protobuf', 'operator', {\n map: {\n pattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /[<>.,]/,\n builtin: builtinTypes\n }\n },\n builtin: builtinTypes,\n 'positional-class-name': {\n pattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /\\./\n }\n },\n annotation: {\n pattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n lookbehind: true\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = psl\npsl.displayName = 'psl'\npsl.aliases = []\nfunction psl(Prism) {\n Prism.languages.psl = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n symbol: /\\\\[ntrbA-Z\"\\\\]/\n }\n },\n 'heredoc-string': {\n pattern: /<<<([a-zA-Z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\1\\b/,\n alias: 'string',\n greedy: true\n },\n keyword:\n /\\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\\b/,\n constant:\n /\\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\\b/,\n boolean: /\\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\\b/,\n variable: /\\b(?:PslDebug|errno|exit_status)\\b/,\n builtin: {\n pattern:\n /\\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\\b/,\n alias: 'builtin-function'\n },\n 'foreach-variable': {\n pattern:\n /(\\bforeach\\s+(?:(?:\\w+\\b|\"(?:\\\\.|[^\\\\\"])*\")\\s+){0,2})[_a-zA-Z]\\w*(?=\\s*\\()/,\n lookbehind: true,\n greedy: true\n },\n function: /\\b[_a-z]\\w*\\b(?=\\s*\\()/i,\n number: /\\b(?:0x[0-9a-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator: /--|\\+\\+|&&=?|\\|\\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\\.|[:?]/,\n punctuation: /[(){}\\[\\];,]/\n }\n}\n","'use strict'\n\nmodule.exports = pug\npug.displayName = 'pug'\npug.aliases = []\nfunction pug(Prism) {\n ;(function (Prism) {\n // TODO:\n // - Add CSS highlighting inside <style> tags\n // - Add support for multi-line code blocks\n // - Add support for interpolation #{} and !{}\n // - Add support for tag interpolation #[]\n // - Add explicit support for plain text using |\n // - Add support for markup embedded in plain text\n Prism.languages.pug = {\n // Multiline stuff should appear before the rest\n // This handles both single-line and multi-line comments\n comment: {\n pattern: /(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/m,\n lookbehind: true\n },\n // All the tag-related part is in lookbehind\n // so that it can be highlighted by the \"tag\" pattern\n 'multiline-script': {\n pattern:\n /(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n // See at the end of the file for known filters\n filter: {\n pattern:\n /(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n text: /\\S[\\s\\S]*/\n }\n },\n 'multiline-plain-text': {\n pattern:\n /(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true\n },\n markup: {\n pattern: /(^[\\t ]*)<.+/m,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\n)[\\t ]*)doctype(?: .+)?/,\n lookbehind: true\n },\n // This handle all conditional and loop keywords\n 'flow-control': {\n pattern:\n /(^[\\t ]*)(?:case|default|each|else|if|unless|when|while)\\b(?: .+)?/m,\n lookbehind: true,\n inside: {\n each: {\n pattern: /^each .+? in\\b/,\n inside: {\n keyword: /\\b(?:each|in)\\b/,\n punctuation: /,/\n }\n },\n branch: {\n pattern: /^(?:case|default|else|if|unless|when|while)\\b/,\n alias: 'keyword'\n },\n rest: Prism.languages.javascript\n }\n },\n keyword: {\n pattern: /(^[\\t ]*)(?:append|block|extends|include|prepend)\\b.+/m,\n lookbehind: true\n },\n mixin: [\n // Declaration\n {\n pattern: /(^[\\t ]*)mixin .+/m,\n lookbehind: true,\n inside: {\n keyword: /^mixin/,\n function: /\\w+(?=\\s*\\(|\\s*$)/,\n punctuation: /[(),.]/\n }\n }, // Usage\n {\n pattern: /(^[\\t ]*)\\+.+/m,\n lookbehind: true,\n inside: {\n name: {\n pattern: /^\\+\\w+/,\n alias: 'function'\n },\n rest: Prism.languages.javascript\n }\n }\n ],\n script: {\n pattern: /(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'plain-text': {\n pattern:\n /(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]).+/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,\n lookbehind: true,\n inside: {\n attributes: [\n {\n pattern: /&[^(]+\\([^)]+\\)/,\n inside: Prism.languages.javascript\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*(?!\\s))(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'attr-name': /[\\w-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[!=(),]+/\n }\n }\n ],\n punctuation: /:/,\n 'attr-id': /#[\\w\\-]+/,\n 'attr-class': /\\.[\\w\\-]+/\n }\n },\n code: [\n {\n pattern: /(^[\\t ]*(?:-|!?=)).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n punctuation: /[.\\-!=|]+/\n }\n var filter_pattern =\n /(^([\\t ]*)):<filter_name>(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/\n .source // Non exhaustive list of available filters and associated languages\n var filters = [\n {\n filter: 'atpl',\n language: 'twig'\n },\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'ejs',\n 'handlebars',\n 'less',\n 'livescript',\n 'markdown',\n {\n filter: 'sass',\n language: 'scss'\n },\n 'stylus'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('<filter_name>', function () {\n return filter.filter\n }),\n 'm'\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n text: {\n pattern: /\\S[\\s\\S]*/,\n alias: [filter.language, 'language-' + filter.language],\n inside: Prism.languages[filter.language]\n }\n }\n }\n }\n }\n Prism.languages.insertBefore('pug', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = puppet\npuppet.displayName = 'puppet'\npuppet.aliases = []\nfunction puppet(Prism) {\n ;(function (Prism) {\n Prism.languages.puppet = {\n heredoc: [\n // Matches the content of a quoted heredoc string (subject to interpolation)\n {\n pattern:\n /(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/ // See interpolation below\n }\n }, // Matches the content of an unquoted heredoc string (no interpolation)\n {\n pattern:\n /(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/\n }\n }, // Matches the start tag of heredoc strings\n {\n pattern: /@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,\n alias: 'string',\n inside: {\n punctuation: {\n pattern: /(\\().+?(?=\\))/,\n lookbehind: true\n }\n }\n }\n ],\n 'multiline-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n regex: {\n // Must be prefixed with the keyword \"node\" or a non-word char\n pattern:\n /((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,\n lookbehind: true,\n greedy: true,\n inside: {\n // Extended regexes must have the x flag. They can contain single-line comments.\n 'extended-regex': {\n pattern: /^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,\n inside: {\n comment: /#.*/\n }\n }\n }\n },\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n string: {\n // Allow for one nested level of double quotes inside interpolation\n pattern:\n /([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|\\$(?!\\{)|(?!\\1)[^\\\\$]|\\\\[\\s\\S])*\\1/,\n greedy: true,\n inside: {\n 'double-quoted': {\n pattern: /^\"[\\s\\S]*\"$/,\n inside: {\n // See interpolation below\n }\n }\n }\n },\n variable: {\n pattern: /\\$(?:::)?\\w+(?:::\\w+)*/,\n inside: {\n punctuation: /::/\n }\n },\n 'attr-name': /(?:\\b\\w+|\\*)(?=\\s*=>)/,\n function: [\n {\n pattern: /(\\.)(?!\\d)\\w+/,\n lookbehind: true\n },\n /\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/\n ],\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n // Includes words reserved for future use\n keyword:\n /\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,\n datatype: {\n pattern:\n /\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,\n alias: 'symbol'\n },\n operator:\n /=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,\n punctuation: /[\\[\\]{}().,;]|:+/\n }\n var interpolation = [\n {\n // Allow for one nested level of braces inside interpolation\n pattern:\n /(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,\n lookbehind: true,\n inside: {\n 'short-variable': {\n // Negative look-ahead prevent wrong highlighting of functions\n pattern: /(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n },\n delimiter: {\n pattern: /^\\$/,\n alias: 'variable'\n },\n rest: Prism.languages.puppet\n }\n },\n {\n pattern: /(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n }\n ]\n Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation\n Prism.languages.puppet['string'].inside[\n 'double-quoted'\n ].inside.interpolation = interpolation\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pure\npure.displayName = 'pure'\npure.aliases = []\nfunction pure(Prism) {\n ;(function (Prism) {\n // https://agraef.github.io/pure-docs/pure.html#lexical-matters\n Prism.languages.pure = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true\n },\n /#!.+/\n ],\n 'inline-lang': {\n pattern: /%<[\\s\\S]+?%>/,\n greedy: true,\n inside: {\n lang: {\n pattern: /(^%< *)-\\*-.+?-\\*-/,\n lookbehind: true,\n alias: 'comment'\n },\n delimiter: {\n pattern: /^%<.*|%>$/,\n alias: 'punctuation'\n }\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n number: {\n // The look-behind prevents wrong highlighting of the .. operator\n pattern:\n /((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?L?)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\n function:\n /\\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,\n special: {\n pattern: /\\b__[a-z]+__\\b/i,\n alias: 'builtin'\n },\n // Any combination of operator chars can be an operator\n // eslint-disable-next-line no-misleading-character-class\n operator:\n /(?:[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]|\\b_+\\b)+|\\b(?:and|div|mod|not|or)\\b/,\n // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?\n punctuation: /[(){}\\[\\];,|]/\n }\n var inlineLanguages = [\n 'c',\n {\n lang: 'c++',\n alias: 'cpp'\n },\n 'fortran'\n ]\n var inlineLanguageRe = /%< *-\\*- *<lang>\\d* *-\\*-[\\s\\S]+?%>/.source\n inlineLanguages.forEach(function (lang) {\n var alias = lang\n if (typeof lang !== 'string') {\n alias = lang.alias\n lang = lang.lang\n }\n if (Prism.languages[alias]) {\n var o = {}\n o['inline-lang-' + alias] = {\n pattern: RegExp(\n inlineLanguageRe.replace(\n '<lang>',\n lang.replace(/([.+*?\\/\\\\(){}\\[\\]])/g, '\\\\$1')\n ),\n 'i'\n ),\n inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)\n }\n o['inline-lang-' + alias].inside.rest = Prism.util.clone(\n Prism.languages[alias]\n )\n Prism.languages.insertBefore('pure', 'inline-lang', o)\n }\n }) // C is the default inline language\n if (Prism.languages.c) {\n Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(\n Prism.languages.c\n )\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = purebasic\npurebasic.displayName = 'purebasic'\npurebasic.aliases = []\nfunction purebasic(Prism) {\n /*\nOriginal Code by Bas Groothedde\n!!MANY THANKS!! I never would have made this, regex and me will never be best friends ;)\n==> https://codepen.io/ImagineProgramming/details/JYydBy/\nslightly changed to pass all tests\n*/\n // PureBasic support, steal stuff from ansi-c\n Prism.languages.purebasic = Prism.languages.extend('clike', {\n comment: /;.*/,\n keyword:\n /\\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\\b/i,\n function: /\\b\\w+(?:\\.\\w+)?\\s*(?=\\()/,\n number: /(?:\\$[\\da-f]+|\\b-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)\\b/i,\n operator:\n /(?:@\\*?|\\?|\\*)\\w+|-[>-]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|?\\||[~^%?*/@]/\n })\n Prism.languages.insertBefore('purebasic', 'keyword', {\n tag: /#\\w+\\$?/,\n asm: {\n pattern: /(^[\\t ]*)!.*/m,\n lookbehind: true,\n alias: 'tag',\n inside: {\n comment: /;.*/,\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n // Anonymous label references, i.e.: jmp @b\n 'label-reference-anonymous': {\n pattern: /(!\\s*j[a-z]+\\s+)@[fb]/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n // Named label reference, i.e.: jne label1\n 'label-reference-addressed': {\n pattern: /(!\\s*j[a-z]+\\s+)[A-Z._?$@][\\w.?$@~#]*/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n keyword: [\n /\\b(?:extern|global)\\b[^;\\r\\n]*/i,\n /\\b(?:CPU|DEFAULT|FLOAT)\\b.*/\n ],\n function: {\n pattern: /^([\\t ]*!\\s*)[\\da-z]+(?=\\s|$)/im,\n lookbehind: true\n },\n 'function-inline': {\n pattern: /(:\\s*)[\\da-z]+(?=\\s)/i,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n pattern: /^([\\t ]*!\\s*)[A-Za-z._?$@][\\w.?$@~#]*(?=:)/m,\n lookbehind: true,\n alias: 'fasm-label'\n },\n register:\n /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\\d+)\\b/i,\n number:\n /(?:\\b|-|(?=\\$))(?:0[hx](?:[\\da-f]*\\.)?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-/%<>=&|$!,.:]/\n }\n }\n })\n delete Prism.languages.purebasic['class-name']\n delete Prism.languages.purebasic['boolean']\n Prism.languages.pbfasm = Prism.languages['purebasic']\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = purescript\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\nfunction purescript(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.purescript = Prism.languages.extend('haskell', {\n keyword:\n /\\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b|∀/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|hiding|import)\\b/,\n punctuation: /\\./\n }\n },\n // These are builtin functions only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\\b/,\n operator: [\n // Infix operators\n Prism.languages.haskell.operator[0], // ASCII operators\n Prism.languages.haskell.operator[2], // All UTF16 Unicode operator symbols\n // This regex is equivalent to /(?=[\\x80-\\uFFFF])[\\p{gc=Math_Symbol}\\p{gc=Currency_Symbol}\\p{Modifier_Symbol}\\p{Other_Symbol}]/u\n // See https://github.com/PrismJS/prism/issues/3006 for more details.\n /[\\xa2-\\xa6\\xa8\\xa9\\xac\\xae-\\xb1\\xb4\\xb8\\xd7\\xf7\\u02c2-\\u02c5\\u02d2-\\u02df\\u02e5-\\u02eb\\u02ed\\u02ef-\\u02ff\\u0375\\u0384\\u0385\\u03f6\\u0482\\u058d-\\u058f\\u0606-\\u0608\\u060b\\u060e\\u060f\\u06de\\u06e9\\u06fd\\u06fe\\u07f6\\u07fe\\u07ff\\u09f2\\u09f3\\u09fa\\u09fb\\u0af1\\u0b70\\u0bf3-\\u0bfa\\u0c7f\\u0d4f\\u0d79\\u0e3f\\u0f01-\\u0f03\\u0f13\\u0f15-\\u0f17\\u0f1a-\\u0f1f\\u0f34\\u0f36\\u0f38\\u0fbe-\\u0fc5\\u0fc7-\\u0fcc\\u0fce\\u0fcf\\u0fd5-\\u0fd8\\u109e\\u109f\\u1390-\\u1399\\u166d\\u17db\\u1940\\u19de-\\u19ff\\u1b61-\\u1b6a\\u1b74-\\u1b7c\\u1fbd\\u1fbf-\\u1fc1\\u1fcd-\\u1fcf\\u1fdd-\\u1fdf\\u1fed-\\u1fef\\u1ffd\\u1ffe\\u2044\\u2052\\u207a-\\u207c\\u208a-\\u208c\\u20a0-\\u20bf\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211e-\\u2123\\u2125\\u2127\\u2129\\u212e\\u213a\\u213b\\u2140-\\u2144\\u214a-\\u214d\\u214f\\u218a\\u218b\\u2190-\\u2307\\u230c-\\u2328\\u232b-\\u2426\\u2440-\\u244a\\u249c-\\u24e9\\u2500-\\u2767\\u2794-\\u27c4\\u27c7-\\u27e5\\u27f0-\\u2982\\u2999-\\u29d7\\u29dc-\\u29fb\\u29fe-\\u2b73\\u2b76-\\u2b95\\u2b97-\\u2bff\\u2ce5-\\u2cea\\u2e50\\u2e51\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u2ffb\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303e\\u303f\\u309b\\u309c\\u3190\\u3191\\u3196-\\u319f\\u31c0-\\u31e3\\u3200-\\u321e\\u322a-\\u3247\\u3250\\u3260-\\u327f\\u328a-\\u32b0\\u32c0-\\u33ff\\u4dc0-\\u4dff\\ua490-\\ua4c6\\ua700-\\ua716\\ua720\\ua721\\ua789\\ua78a\\ua828-\\ua82b\\ua836-\\ua839\\uaa77-\\uaa79\\uab5b\\uab6a\\uab6b\\ufb29\\ufbb2-\\ufbc1\\ufdfc\\ufdfd\\ufe62\\ufe64-\\ufe66\\ufe69\\uff04\\uff0b\\uff1c-\\uff1e\\uff3e\\uff40\\uff5c\\uff5e\\uffe0-\\uffe6\\uffe8-\\uffee\\ufffc\\ufffd]/\n ]\n })\n Prism.languages.purs = Prism.languages.purescript\n}\n","'use strict'\n\nmodule.exports = python\npython.displayName = 'python'\npython.aliases = ['py']\nfunction python(Prism) {\n Prism.languages.python = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n 'string-interpolation': {\n pattern:\n /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n greedy: true,\n inside: {\n interpolation: {\n // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n pattern:\n /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n lookbehind: true,\n inside: {\n 'format-spec': {\n pattern: /(:)[^:(){}]+(?=\\}$)/,\n lookbehind: true\n },\n 'conversion-option': {\n pattern: //,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n greedy: true\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n lookbehind: true\n },\n 'class-name': {\n pattern: /(\\bclass\\s+)\\w+/i,\n lookbehind: true\n },\n decorator: {\n pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n lookbehind: true,\n alias: ['annotation', 'punctuation'],\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n builtin:\n /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n boolean: /\\b(?:False|None|True)\\b/,\n number:\n /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.python['string-interpolation'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.python\n Prism.languages.py = Prism.languages.python\n}\n","'use strict'\n\nmodule.exports = q\nq.displayName = 'q'\nq.aliases = []\nfunction q(Prism) {\n Prism.languages.q = {\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n comment: [\n // From http://code.kx.com/wiki/Reference/Slash:\n // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.\n {\n pattern: /([\\t )\\]}])\\/.*/,\n lookbehind: true,\n greedy: true\n }, // From http://code.kx.com/wiki/Reference/Slash:\n // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.\n // A / on a line by itself begins a multiline comment which is terminated by the next \\ on a line by itself.\n // If a / is not matched by a \\, the multiline comment is unterminated and continues to end of file.\n // The / and \\ must be the first char on the line, but may be followed by any amount of whitespace.\n {\n pattern:\n /(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r(?!\\n)))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,\n lookbehind: true,\n greedy: true\n }, // From http://code.kx.com/wiki/Reference/Slash:\n // A \\ on a line by itself with no preceding matching / will comment to end of file.\n {\n pattern: /^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,\n greedy: true\n },\n {\n pattern: /^#!.+/m,\n greedy: true\n }\n ],\n symbol: /`(?::\\S+|[\\w.]*)/,\n datetime: {\n pattern:\n /0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,\n alias: 'number'\n },\n // The negative look-ahead prevents bad highlighting\n // of verbs 0: and 1:\n number:\n /\\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\\da-fA-F]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?[hjfeb]?)/,\n keyword:\n /\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,\n adverb: {\n pattern: /['\\/\\\\]:?|\\beach\\b/,\n alias: 'function'\n },\n verb: {\n pattern: /(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?~=|$&#@^]):?|\\b_\\b:?/,\n alias: 'operator'\n },\n punctuation: /[(){}\\[\\];.]/\n }\n}\n","'use strict'\n\nmodule.exports = qml\nqml.displayName = 'qml'\nqml.aliases = []\nfunction qml(Prism) {\n ;(function (Prism) {\n var jsString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|'(?:\\\\.|[^\\\\'\\r\\n])*'/.source\n var jsComment = /\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source\n var jsExpr =\n /(?:[^\\\\()[\\]{}\"'/]|<string>|\\/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[\\s\\S])/.source\n .replace(/<string>/g, function () {\n return jsString\n })\n .replace(/<comment>/g, function () {\n return jsComment\n }) // the pattern will blow up, so only a few iterations\n for (var i = 0; i < 2; i++) {\n jsExpr = jsExpr.replace(/<expr>/g, function () {\n return jsExpr\n })\n }\n jsExpr = jsExpr.replace(/<expr>/g, '[^\\\\s\\\\S]')\n Prism.languages.qml = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n 'javascript-function': {\n pattern: RegExp(\n /((?:^|;)[ \\t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n 'class-name': {\n pattern: /((?:^|[:;])[ \\t]*)(?!\\d)\\w+(?=[ \\t]*\\{|[ \\t]+on\\b)/m,\n lookbehind: true\n },\n property: [\n {\n pattern: /((?:^|[;{])[ \\t]*)(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true\n },\n {\n pattern:\n /((?:^|[;{])[ \\t]*)property[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true,\n inside: {\n keyword: /^property/,\n property: /\\w+(?:\\.\\w+)*/\n }\n }\n ],\n 'javascript-expression': {\n pattern: RegExp(\n /(:[ \\t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n keyword: /\\b(?:as|import|on)\\b/,\n punctuation: /[{}[\\]:;,]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = qore\nqore.displayName = 'qore'\nqore.aliases = []\nfunction qore(Prism) {\n Prism.languages.qore = Prism.languages.extend('clike', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,\n lookbehind: true\n },\n // Overridden to allow unescaped multi-line strings\n string: {\n pattern: /(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\$?\\b(?!\\d)\\w+(?=\\()/,\n number:\n /\\b(?:0b[01]+|0x(?:[\\da-f]*\\.)?[\\da-fp\\-]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e\\d+)?[df]|(?:\\d+(?:\\.\\d+)?|\\.\\d+))\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,\n lookbehind: true\n },\n variable: /\\$(?!\\d)\\w+\\b/\n })\n}\n","'use strict'\n\nmodule.exports = qsharp\nqsharp.displayName = 'qsharp'\nqsharp.aliases = ['qs']\nfunction qsharp(Prism) {\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n } // https://docs.microsoft.com/en-us/azure/quantum/user-guide/language/typesystem/\n // https://github.com/microsoft/qsharp-language/tree/main/Specifications/Language/5_Grammar\n var keywordKinds = {\n // keywords which represent a return or variable type\n type: 'Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero',\n // all other keywords\n other:\n 'Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within'\n } // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var keywords = RegExp(\n keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.other)\n ) // types\n var identifier = /\\b[A-Za-z_]\\w*\\b/.source\n var qualifiedName = replace(/<<0>>(?:\\s*\\.\\s*<<0>>)*/.source, [identifier])\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n } // strings\n var regularString = /\"(?:\\\\.|[^\\\\\"])*\"/.source\n Prism.languages.qsharp = Prism.languages.extend('clike', {\n comment: /\\/\\/.*/,\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n // open Microsoft.Quantum.Canon;\n // open Microsoft.Quantum.Canon as CN;\n pattern: re(/(\\b(?:as|open)\\s+)<<0>>(?=\\s*(?:;|as\\b))/.source, [\n qualifiedName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // namespace Quantum.App1;\n pattern: re(/(\\bnamespace\\s+)<<0>>(?=\\s*\\{)/.source, [qualifiedName]),\n lookbehind: true,\n inside: typeInside\n }\n ],\n keyword: keywords,\n number:\n /(?:\\b0(?:x[\\da-f]+|b[01]+|o[0-7]+)|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d*)?)(?:e[-+]?\\d+)?)l?\\b/i,\n operator:\n /\\band=|\\bor=|\\band\\b|\\bnot\\b|\\bor\\b|<[-=]|[-=]>|>>>=?|<<<=?|\\^\\^\\^=?|\\|\\|\\|=?|&&&=?|w\\/=?|~~~|[*\\/+\\-^=!%]=?/,\n punctuation: /::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('qsharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n }) // single line\n var interpolationExpr = nested(\n replace(/\\{(?:[^\"{}]|<<0>>|<<self>>)*\\}/.source, [regularString]),\n 2\n )\n Prism.languages.insertBefore('qsharp', 'string', {\n 'interpolation-string': {\n pattern: re(/\\$\"(?:\\\\.|<<0>>|[^\\\\\"{])*\"/.source, [interpolationExpr]),\n greedy: true,\n inside: {\n interpolation: {\n pattern: re(/((?:^|[^\\\\])(?:\\\\\\\\)*)<<0>>/.source, [\n interpolationExpr\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-qsharp',\n inside: Prism.languages.qsharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n })(Prism)\n Prism.languages.qs = Prism.languages.qsharp\n}\n","'use strict'\n\nmodule.exports = r\nr.displayName = 'r'\nr.aliases = []\nfunction r(Prism) {\n Prism.languages.r = {\n comment: /#.*/,\n string: {\n pattern: /(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'percent-operator': {\n // Includes user-defined operators\n // and %%, %*%, %/%, %in%, %o%, %x%\n pattern: /%[^%\\s]*%/,\n alias: 'operator'\n },\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n ellipsis: /\\.\\.(?:\\.|\\d+)/,\n number: [\n /\\b(?:Inf|NaN)\\b/,\n /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n ],\n keyword:\n /\\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\\b/,\n operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n punctuation: /[(){}\\[\\],;]/\n }\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = racket\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\nfunction racket(Prism) {\n Prism.register(refractorScheme)\n Prism.languages.racket = Prism.languages.extend('scheme', {\n 'lambda-parameter': {\n // the racket lambda syntax is a lot more complex, so we won't even attempt to capture it.\n // this will just prevent false positives of the `function` pattern\n pattern: /([(\\[]lambda\\s+[(\\[])[^()\\[\\]'\\s]+/,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('racket', 'string', {\n lang: {\n pattern: /^#lang.+/m,\n greedy: true,\n alias: 'keyword'\n }\n })\n Prism.languages.rkt = Prism.languages.racket\n}\n","'use strict'\n\nmodule.exports = reason\nreason.displayName = 'reason'\nreason.aliases = []\nfunction reason(Prism) {\n Prism.languages.reason = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n // 'class-name' must be matched *after* 'constructor' defined below\n 'class-name': /\\b[A-Z]\\w*/,\n keyword:\n /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,\n operator:\n /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/\n })\n Prism.languages.insertBefore('reason', 'class-name', {\n char: {\n pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n greedy: true\n },\n // Negative look-ahead prevents from matching things like String.capitalize\n constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n label: {\n pattern: /\\b[a-z]\\w*(?=::)/,\n alias: 'symbol'\n }\n }) // We can't match functions property, so let's not even try.\n delete Prism.languages.reason.function\n}\n","'use strict'\n\nmodule.exports = regex\nregex.displayName = 'regex'\nregex.aliases = []\nfunction regex(Prism) {\n ;(function (Prism) {\n var specialEscape = {\n pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/,\n alias: 'escape'\n }\n var escape =\n /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/\n var charSet = {\n pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var charSetWithoutDot = {\n pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n var range = RegExp(rangeChar + '-' + rangeChar) // the name of a capturing group\n var groupName = {\n pattern: /(<|')[^<>']+(?=[>']$)/,\n lookbehind: true,\n alias: 'variable'\n }\n Prism.languages.regex = {\n 'char-class': {\n pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n lookbehind: true,\n inside: {\n 'char-class-negation': {\n pattern: /(^\\[)\\^/,\n lookbehind: true,\n alias: 'operator'\n },\n 'char-class-punctuation': {\n pattern: /^\\[|\\]$/,\n alias: 'punctuation'\n },\n range: {\n pattern: range,\n inside: {\n escape: escape,\n 'range-punctuation': {\n pattern: /-/,\n alias: 'operator'\n }\n }\n },\n 'special-escape': specialEscape,\n 'char-set': charSetWithoutDot,\n escape: escape\n }\n },\n 'special-escape': specialEscape,\n 'char-set': charSet,\n backreference: [\n {\n // a backreference which is not an octal escape\n pattern: /\\\\(?![123][0-7]{2})[1-9]/,\n alias: 'keyword'\n },\n {\n pattern: /\\\\k<[^<>']+>/,\n alias: 'keyword',\n inside: {\n 'group-name': groupName\n }\n }\n ],\n anchor: {\n pattern: /[$^]|\\\\[ABbGZz]/,\n alias: 'function'\n },\n escape: escape,\n group: [\n {\n // https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n // https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n // (), (?<name>), (?'name'), (?>), (?:), (?=), (?!), (?<=), (?<!), (?is-m), (?i-m:)\n pattern:\n /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,\n alias: 'punctuation',\n inside: {\n 'group-name': groupName\n }\n },\n {\n pattern: /\\)/,\n alias: 'punctuation'\n }\n ],\n quantifier: {\n pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n alias: 'number'\n },\n alternation: {\n pattern: /\\|/,\n alias: 'keyword'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = rego\nrego.displayName = 'rego'\nrego.aliases = []\nfunction rego(Prism) {\n // https://www.openpolicyagent.org/docs/latest/policy-reference/\n Prism.languages.rego = {\n comment: /#.*/,\n property: {\n pattern:\n /(^|[^\\\\.])(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`|\\b[a-z_]\\w*\\b)(?=\\s*:(?!=))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:as|default|else|import|not|null|package|set(?=\\s*\\()|some|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: {\n pattern: /\\b[a-z_]\\w*\\b(?:\\s*\\.\\s*\\b[a-z_]\\w*\\b)*(?=\\s*\\()/i,\n inside: {\n namespace: /\\b\\w+\\b(?=\\s*\\.)/,\n punctuation: /\\./\n }\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n operator: /[-+*/%|&]|[<>:=]=?|!=|\\b_\\b/,\n punctuation: /[,;.\\[\\]{}()]/\n }\n}\n","'use strict'\n\nmodule.exports = renpy\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\nfunction renpy(Prism) {\n Prism.languages.renpy = {\n comment: {\n pattern: /(^|[^\\\\])#.+/,\n lookbehind: true\n },\n string: {\n pattern:\n /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\])*\\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\()/i,\n property:\n /\\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\\b/,\n tag: /\\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\\b|\\$/,\n keyword:\n /\\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\\b/,\n boolean: /\\b(?:[Ff]alse|[Tt]rue)\\b/,\n number:\n /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n operator:\n /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:and|at|not|or|with)\\b/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.rpy = Prism.languages.renpy\n}\n","'use strict'\n\nmodule.exports = rest\nrest.displayName = 'rest'\nrest.aliases = []\nfunction rest(Prism) {\n Prism.languages.rest = {\n table: [\n {\n pattern:\n /(^[\\t ]*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1[+|].+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/m,\n lookbehind: true,\n inside: {\n punctuation: /\\||(?:\\+[=-]+)+\\+/\n }\n },\n {\n pattern:\n /(^[\\t ]*)=+ [ =]*=(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1=+ [ =]*=(?=(?:\\r?\\n|\\r){2}|\\s*$)/m,\n lookbehind: true,\n inside: {\n punctuation: /[=-]+/\n }\n }\n ],\n // Directive-like patterns\n 'substitution-def': {\n pattern: /(^[\\t ]*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,\n lookbehind: true,\n inside: {\n substitution: {\n pattern: /^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,\n alias: 'attr-value',\n inside: {\n punctuation: /^\\||\\|$/\n }\n },\n directive: {\n pattern: /( )(?! )[^:]+::/,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n }\n }\n },\n 'link-target': [\n {\n pattern: /(^[\\t ]*\\.\\. )\\[[^\\]]+\\]/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]$/\n }\n },\n {\n pattern: /(^[\\t ]*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^_|:$/\n }\n }\n ],\n directive: {\n pattern: /(^[\\t ]*\\.\\. )[^:]+::/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n },\n comment: {\n // The two alternatives try to prevent highlighting of blank comments\n pattern:\n /(^[\\t ]*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,\n lookbehind: true\n },\n title: [\n // Overlined and underlined\n {\n pattern:\n /^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,\n inside: {\n punctuation:\n /^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }, // Underlined only\n {\n pattern:\n /(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,\n lookbehind: true,\n inside: {\n punctuation: /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }\n ],\n hr: {\n pattern:\n /((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,\n lookbehind: true,\n alias: 'punctuation'\n },\n field: {\n pattern: /(^[\\t ]*):[^:\\r\\n]+:(?= )/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n 'command-line-option': {\n pattern:\n /(^[\\t ]*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'literal-block': {\n pattern: /::(?:\\r?\\n|\\r){2}([ \\t]+)(?![ \\t]).+(?:(?:\\r?\\n|\\r)\\1.+)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^::/,\n alias: 'punctuation'\n }\n }\n },\n 'quoted-literal-block': {\n pattern:\n /::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,\n alias: 'punctuation'\n }\n }\n },\n 'list-bullet': {\n pattern:\n /(^[\\t ]*)(?:[*+\\-•‣âƒ]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'doctest-block': {\n pattern: /(^[\\t ]*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /^>>>/\n }\n },\n inline: [\n {\n pattern:\n /(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s)(?:(?!\\2).)*\\S\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,\n lookbehind: true,\n inside: {\n bold: {\n pattern: /(^\\*\\*).+(?=\\*\\*$)/,\n lookbehind: true\n },\n italic: {\n pattern: /(^\\*).+(?=\\*$)/,\n lookbehind: true\n },\n 'inline-literal': {\n pattern: /(^``).+(?=``$)/,\n lookbehind: true,\n alias: 'symbol'\n },\n role: {\n pattern: /^:[^:]+:|:[^:]+:$/,\n alias: 'function',\n inside: {\n punctuation: /^:|:$/\n }\n },\n 'interpreted-text': {\n pattern: /(^`).+(?=`$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n substitution: {\n pattern: /(^\\|).+(?=\\|$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n punctuation: /\\*\\*?|``?|\\|/\n }\n }\n ],\n link: [\n {\n pattern: /\\[[^\\[\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]_$/\n }\n },\n {\n pattern:\n /(?:\\b[a-z\\d]+(?:[_.:+][a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,\n alias: 'string',\n inside: {\n punctuation: /^_?`|`$|`?_?_$/\n }\n }\n ],\n // Line block start,\n // quote attribution,\n // explicit markup start,\n // and anonymous hyperlink target shortcut (__)\n punctuation: {\n pattern: /(^[\\t ]*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,\n lookbehind: true\n }\n }\n}\n","'use strict'\n\nmodule.exports = rip\nrip.displayName = 'rip'\nrip.aliases = []\nfunction rip(Prism) {\n Prism.languages.rip = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n char: {\n pattern: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n regex: {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /(?:=>|->)|\\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\\b/,\n builtin: /@|\\bSystem\\b/,\n boolean: /\\b(?:false|true)\\b/,\n date: /\\b\\d{4}-\\d{2}-\\d{2}\\b/,\n time: /\\b\\d{2}:\\d{2}:\\d{2}\\b/,\n datetime: /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,\n symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n }\n}\n","'use strict'\n\nmodule.exports = roboconf\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\nfunction roboconf(Prism) {\n Prism.languages.roboconf = {\n comment: /#.*/,\n keyword: {\n pattern:\n /(^|\\s)(?:(?:external|import)\\b|(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{))/,\n lookbehind: true\n },\n component: {\n pattern: /[\\w-]+(?=[ \\t]*\\{)/,\n alias: 'variable'\n },\n property: /[\\w.-]+(?=[ \\t]*:)/,\n value: {\n pattern: /(=[ \\t]*(?![ \\t]))[^,;]+/,\n lookbehind: true,\n alias: 'attr-value'\n },\n optional: {\n pattern: /\\(optional\\)/,\n alias: 'builtin'\n },\n wildcard: {\n pattern: /(\\.)\\*/,\n lookbehind: true,\n alias: 'operator'\n },\n punctuation: /[{},.;:=]/\n }\n}\n","'use strict'\n\nmodule.exports = robotframework\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = []\nfunction robotframework(Prism) {\n ;(function (Prism) {\n var comment = {\n pattern: /(^[ \\t]*| {2}|\\t)#.*/m,\n lookbehind: true,\n greedy: true\n }\n var variable = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)[$@&%]\\{(?:[^{}\\r\\n]|\\{[^{}\\r\\n]*\\})*\\}/,\n lookbehind: true,\n inside: {\n punctuation: /^[$@&%]\\{|\\}$/\n }\n }\n function createSection(name, inside) {\n var extendecInside = {}\n extendecInside['section-header'] = {\n pattern: /^ ?\\*{3}.+?\\*{3}/,\n alias: 'keyword'\n } // copy inside tokens\n for (var token in inside) {\n extendecInside[token] = inside[token]\n }\n extendecInside['tag'] = {\n pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /\\[|\\]/\n }\n }\n extendecInside['variable'] = variable\n extendecInside['comment'] = comment\n return {\n pattern: RegExp(\n /^ ?\\*{3}[ \\t]*<name>[ \\t]*\\*{3}(?:.|[\\r\\n](?!\\*{3}))*/.source.replace(\n /<name>/g,\n function () {\n return name\n }\n ),\n 'im'\n ),\n alias: 'section',\n inside: extendecInside\n }\n }\n var docTag = {\n pattern:\n /(\\[Documentation\\](?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n }\n var testNameLike = {\n pattern: /([\\r\\n] ?)(?!#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n alias: 'function',\n inside: {\n variable: variable\n }\n }\n var testPropertyLike = {\n pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)(?!\\[|\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n inside: {\n variable: variable\n }\n }\n Prism.languages['robotframework'] = {\n settings: createSection('Settings', {\n documentation: {\n pattern:\n /([\\r\\n] ?Documentation(?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n },\n property: {\n pattern: /([\\r\\n] ?)(?!\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true\n }\n }),\n variables: createSection('Variables'),\n 'test-cases': createSection('Test Cases', {\n 'test-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n keywords: createSection('Keywords', {\n 'keyword-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n tasks: createSection('Tasks', {\n 'task-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n comment: comment\n }\n Prism.languages.robot = Prism.languages['robotframework']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ruby\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\nfunction ruby(Prism) {\n /**\n * Original by Samuel Flores\n *\n * Adds the following new token classes:\n * constant, builtin, variable, symbol, regex\n */\n ;(function (Prism) {\n Prism.languages.ruby = Prism.languages.extend('clike', {\n comment: {\n pattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n operator:\n /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n punctuation: /[(){}[\\].,;]/\n })\n Prism.languages.insertBefore('ruby', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n })\n var interpolation = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n }\n delete Prism.languages.ruby.function\n var percentExpression =\n '(?:' +\n [\n /([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n /\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n ].join('|') +\n ')'\n var symbolName =\n /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/\n .source\n Prism.languages.insertBefore('ruby', 'keyword', {\n 'regex-literal': [\n {\n pattern: RegExp(\n /%r/.source + percentExpression + /[egimnosux]{0,6}/.source\n ),\n greedy: true,\n inside: {\n interpolation: interpolation,\n regex: /[\\s\\S]+/\n }\n },\n {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: interpolation,\n regex: /[\\s\\S]+/\n }\n }\n ],\n variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n symbol: [\n {\n pattern: RegExp(/(^|[^:]):/.source + symbolName),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: RegExp(\n /([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n 'method-definition': {\n pattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n lookbehind: true,\n inside: {\n function: /\\b\\w+$/,\n keyword: /^self\\b/,\n 'class-name': /^\\w+/,\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('ruby', 'string', {\n 'string-literal': [\n {\n pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern:\n /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n inside: {\n symbol: /\\b\\w+/,\n punctuation: /^<<[-~]?/\n }\n },\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n inside: {\n symbol: /\\b\\w+/,\n punctuation: /^<<[-~]?'|'$/\n }\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n 'command-literal': [\n {\n pattern: RegExp(/%x/.source + percentExpression),\n greedy: true,\n inside: {\n interpolation: interpolation,\n command: {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n },\n {\n pattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n command: {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n }\n ]\n })\n delete Prism.languages.ruby.string\n Prism.languages.insertBefore('ruby', 'number', {\n builtin:\n /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n constant: /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n })\n Prism.languages.rb = Prism.languages.ruby\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = rust\nrust.displayName = 'rust'\nrust.aliases = []\nfunction rust(Prism) {\n ;(function (Prism) {\n var multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source\n for (var i = 0; i < 2; i++) {\n // support 4 levels of nested comments\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return multilineComment\n })\n }\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return /[^\\s\\S]/.source\n })\n Prism.languages.rust = {\n comment: [\n {\n pattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n greedy: true\n },\n char: {\n pattern:\n /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n greedy: true\n },\n attribute: {\n pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n greedy: true,\n alias: 'attr-name',\n inside: {\n string: null // see below\n }\n },\n // Closure params should not be confused with bitwise OR |\n 'closure-params': {\n pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'closure-punctuation': {\n pattern: /^\\||\\|$/,\n alias: 'punctuation'\n },\n rest: null // see below\n }\n },\n 'lifetime-annotation': {\n pattern: /'\\w+/,\n alias: 'symbol'\n },\n 'fragment-specifier': {\n pattern: /(\\$\\w+:)[a-z]+/,\n lookbehind: true,\n alias: 'punctuation'\n },\n variable: /\\$\\w+/,\n 'function-definition': {\n pattern: /(\\bfn\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n 'type-definition': {\n pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n 'module-declaration': [\n {\n pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n lookbehind: true,\n alias: 'namespace'\n },\n {\n pattern:\n /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /::/\n }\n }\n ],\n keyword: [\n // https://github.com/rust-lang/reference/blob/master/src/keywords.md\n /\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, // primitives and str\n // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/\n ],\n // functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n // and Rust's naming conventions recommend snake_case anyway.\n // https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n macro: {\n pattern: /\\b\\w+!/,\n alias: 'property'\n },\n constant: /\\b[A-Z_][A-Z_\\d]+\\b/,\n 'class-name': /\\b[A-Z]\\w*\\b/,\n namespace: {\n pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n inside: {\n punctuation: /::/\n }\n },\n // Hex, oct, bin, dec numbers with visual separators and type suffix\n number:\n /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n }\n Prism.languages.rust['closure-params'].inside.rest = Prism.languages.rust\n Prism.languages.rust['attribute'].inside['string'] =\n Prism.languages.rust['string']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sas\nsas.displayName = 'sas'\nsas.aliases = []\nfunction sas(Prism) {\n ;(function (Prism) {\n var stringPattern = /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))/.source\n var number = /\\b(?:\\d[\\da-f]*x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i\n var numericConstant = {\n pattern: RegExp(stringPattern + '[bx]'),\n alias: 'number'\n }\n var macroVariable = {\n pattern: /&[a-z_]\\w*/i\n }\n var macroKeyword = {\n pattern:\n /((?:^|\\s|=|\\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var step = {\n pattern: /(^|\\s)(?:proc\\s+\\w+|data(?!=)|quit|run)\\b/i,\n alias: 'keyword',\n lookbehind: true\n }\n var comment = [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^[ \\t]*|;\\s*)\\*[^;]*;/m,\n lookbehind: true\n }\n ]\n var string = {\n pattern: RegExp(stringPattern),\n greedy: true\n }\n var punctuation = /[$%@.(){}\\[\\];,\\\\]/\n var func = {\n pattern: /%?\\b\\w+(?=\\()/,\n alias: 'keyword'\n }\n var args = {\n function: func,\n 'arg-value': {\n pattern: /(=\\s*)[A-Z\\.]+/i,\n lookbehind: true\n },\n operator: /=/,\n 'macro-variable': macroVariable,\n arg: {\n pattern: /[A-Z]+/i,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n var format = {\n pattern: /\\b(?:format|put)\\b=?[\\w'$.]+/i,\n inside: {\n keyword: /^(?:format|put)(?==)/i,\n equals: /=/,\n format: {\n pattern: /(?:\\w|\\$\\d)+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var altformat = {\n pattern: /\\b(?:format|put)\\s+[\\w']+(?:\\s+[$.\\w]+)+(?=;)/i,\n inside: {\n keyword: /^(?:format|put)/i,\n format: {\n pattern: /[\\w$]+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var globalStatements = {\n pattern:\n /((?:^|\\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\\d?)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var submitStatement = {\n pattern: /(^|\\s)(?:submit(?:\\s+(?:load|norun|parseonly))?|endsubmit)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var actionSets =\n /aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/\n .source\n var casActions = {\n pattern: RegExp(\n /(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+/.source.replace(\n /<act>/g,\n function () {\n return actionSets\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: {\n keyword: RegExp(\n /(?:<act>)\\.[a-z]+\\b/.source.replace(/<act>/g, function () {\n return actionSets\n }),\n 'i'\n ),\n action: {\n pattern: /(?:action)/i,\n alias: 'keyword'\n },\n comment: comment,\n function: func,\n 'arg-value': args['arg-value'],\n operator: args.operator,\n argument: args.arg,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n }\n var keywords = {\n pattern:\n /((?:^|\\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\\b/i,\n lookbehind: true\n }\n Prism.languages.sas = {\n datalines: {\n pattern: /^([ \\t]*)(?:cards|(?:data)?lines);[\\s\\S]+?^[ \\t]*;/im,\n lookbehind: true,\n alias: 'string',\n inside: {\n keyword: {\n pattern: /^(?:cards|(?:data)?lines)/i\n },\n punctuation: /;/\n }\n },\n 'proc-sql': {\n pattern:\n /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n sql: {\n pattern: RegExp(\n /^[ \\t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n 'global-statements': globalStatements,\n 'sql-statements': {\n pattern:\n /(^|\\s)(?:disconnect\\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-groovy': {\n pattern:\n /(^proc\\s+groovy(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n groovy: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-groovy',\n inside: Prism.languages.groovy\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-lua': {\n pattern:\n /(^proc\\s+lua(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n lua: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-lua',\n inside: Prism.languages.lua\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-cas': {\n pattern:\n /(^proc\\s+cas(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n 'statement-var': {\n pattern: /((?:^|\\s)=?)saveresult\\s[^;]+/im,\n lookbehind: true,\n inside: {\n statement: {\n pattern: /^saveresult\\s+\\S+/i,\n inside: {\n keyword: /^(?:saveresult)/i\n }\n },\n rest: args\n }\n },\n 'cas-actions': casActions,\n statement: {\n pattern:\n /((?:^|\\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,\n lookbehind: true,\n inside: args\n },\n step: step,\n keyword: keywords,\n function: func,\n format: format,\n altformat: altformat,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-args': {\n pattern: RegExp(\n /(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n inside: args\n },\n /*Special keywords within macros*/\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'macro-string-functions': {\n pattern:\n /((?:^|\\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n lookbehind: true,\n inside: {\n function: {\n pattern: /%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,\n alias: 'keyword'\n },\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'escaped-char': {\n pattern: /%['\"()<>=¬^~;,#]/\n },\n punctuation: punctuation\n }\n },\n 'macro-declaration': {\n pattern: /^%macro[^;]+(?=;)/im,\n inside: {\n keyword: /%macro/i\n }\n },\n 'macro-end': {\n pattern: /^%mend[^;]+(?=;)/im,\n inside: {\n keyword: /%mend/i\n }\n },\n /*%_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz); */\n macro: {\n pattern: /%_\\w+(?=\\()/,\n alias: 'keyword'\n },\n input: {\n pattern: /\\binput\\s[-\\w\\s/*.$&]+;/i,\n inside: {\n input: {\n alias: 'keyword',\n pattern: /^input/i\n },\n comment: comment,\n number: number,\n 'numeric-constant': numericConstant\n }\n },\n 'options-args': {\n pattern: /(^options)[-'\"|/\\\\<>*+=:()\\w\\s]*(?=;)/im,\n lookbehind: true,\n inside: args\n },\n 'cas-actions': casActions,\n comment: comment,\n function: func,\n format: format,\n altformat: altformat,\n 'numeric-constant': numericConstant,\n datetime: {\n // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt\n pattern: RegExp(stringPattern + '(?:dt?|t)'),\n alias: 'number'\n },\n string: string,\n step: step,\n keyword: keywords,\n // In SAS Studio syntax highlighting, these operators are styled like keywords\n 'operator-keyword': {\n pattern: /\\b(?:eq|ge|gt|in|le|lt|ne|not)\\b/i,\n alias: 'operator'\n },\n // Decimal (1.2e23), hexadecimal (0c1x)\n number: number,\n operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/,\n punctuation: punctuation\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sass\nsass.displayName = 'sass'\nsass.aliases = []\nfunction sass(Prism) {\n ;(function (Prism) {\n Prism.languages.sass = Prism.languages.extend('css', {\n // Sass comments don't need to be closed, only indented\n comment: {\n pattern: /^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t].+)*/m,\n lookbehind: true,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sass', 'atrule', {\n // We want to consume the whole line\n 'atrule-line': {\n // Includes support for = and + shortcuts\n pattern: /^(?:[ \\t]*)[@+=].+/m,\n greedy: true,\n inside: {\n atrule: /(?:@[\\w-]+|[+=])/\n }\n }\n })\n delete Prism.languages.sass.atrule\n var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n var operator = [\n /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|not|or)\\b/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ]\n Prism.languages.insertBefore('sass', 'property', {\n // We want to consume the whole line\n 'variable-line': {\n pattern: /^[ \\t]*\\$.+/m,\n greedy: true,\n inside: {\n punctuation: /:/,\n variable: variable,\n operator: operator\n }\n },\n // We want to consume the whole line\n 'property-line': {\n pattern: /^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s].*)/m,\n greedy: true,\n inside: {\n property: [\n /[^:\\s]+(?=\\s*:)/,\n {\n pattern: /(:)[^:\\s]+/,\n lookbehind: true\n }\n ],\n punctuation: /:/,\n variable: variable,\n operator: operator,\n important: Prism.languages.sass.important\n }\n }\n })\n delete Prism.languages.sass.property\n delete Prism.languages.sass.important // Now that whole lines for other patterns are consumed,\n // what's left should be selectors\n Prism.languages.insertBefore('sass', 'punctuation', {\n selector: {\n pattern:\n /^([ \\t]*)\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*)*/m,\n lookbehind: true,\n greedy: true\n }\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nmodule.exports = scala\nscala.displayName = 'scala'\nscala.aliases = []\nfunction scala(Prism) {\n Prism.register(refractorJava)\n Prism.languages.scala = Prism.languages.extend('java', {\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword:\n /<-|=>|\\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\\b/,\n number:\n /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n builtin:\n /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n symbol: /'[^\\d\\s\\\\]\\w*/\n })\n Prism.languages.insertBefore('scala', 'triple-quoted-string', {\n 'string-interpolation': {\n pattern:\n /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n greedy: true,\n inside: {\n id: {\n pattern: /^\\w+/,\n greedy: true,\n alias: 'function'\n },\n escape: {\n pattern: /\\\\\\$\"|\\$[$\"]/,\n greedy: true,\n alias: 'symbol'\n },\n interpolation: {\n pattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n greedy: true,\n inside: {\n punctuation: /^\\$\\{?|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.scala\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n delete Prism.languages.scala['class-name']\n delete Prism.languages.scala['function']\n}\n","'use strict'\n\nmodule.exports = scheme\nscheme.displayName = 'scheme'\nscheme.aliases = []\nfunction scheme(Prism) {\n ;(function (Prism) {\n Prism.languages.scheme = {\n // this supports \"normal\" single-line comments:\n // ; comment\n // and (potentially nested) multiline comments:\n // #| comment #| nested |# still comment |#\n // (only 1 level of nesting is supported)\n comment:\n /;.*|#;\\s*(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\[(?:[^\\[\\]]|\\[[^\\[\\]]*\\])*\\])|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#))*\\|#)*\\|#/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n symbol: {\n pattern: /'[^()\\[\\]#'\\s]+/,\n greedy: true\n },\n char: {\n pattern:\n /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\S)/,\n greedy: true\n },\n 'lambda-parameter': [\n // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30\n {\n pattern:\n /((?:^|[^'`#])[(\\[]lambda\\s+)(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)/,\n lookbehind: true\n },\n {\n pattern: /((?:^|[^'`#])[(\\[]lambda\\s+[(\\[])[^()\\[\\]']+/,\n lookbehind: true\n }\n ],\n keyword: {\n pattern:\n /((?:^|[^'`#])[(\\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\\*)?|let\\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n builtin: {\n // all functions of the base library of R7RS plus some of built-ins of R5Rs\n pattern:\n /((?:^|[^'`#])[(\\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\\?|boolean=?\\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\\?|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)|close-(?:input-port|output-port|port)|complex\\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\\??|eq\\?|equal\\?|eqv\\?|error|error-object(?:-irritants|-message|\\?)|eval|even\\?|exact(?:-integer-sqrt|-integer\\?|\\?)?|expt|features|file-error\\?|floor(?:-quotient|-remainder|\\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\\??|input-port(?:-open\\?|\\?)|integer(?:->char|\\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null\\?|number(?:->string|\\?)|numerator|odd\\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\\?|\\?)|pair\\?|peek-char|peek-u8|port\\?|positive\\?|procedure\\?|quotient|raise|raise-continuable|rational\\?|rationalize|read-(?:bytevector|bytevector!|char|error\\?|line|string|u8)|real\\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)?|substring|symbol(?:->string|\\?|=\\?)|syntax-error|textual-port\\?|truncate(?:-quotient|-remainder|\\/)?|u8-ready\\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\\?)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n operator: {\n pattern: /((?:^|[^'`#])[(\\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n number: {\n // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).\n //\n // <number> := <num 2>|<num 8>|<num 10>|<num 16>\n // <num R> := <prefix R><complex R>\n // <complex R> := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>\n // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\\.0)?i\n // <real R> := [+-]?<ureal R>|[+-](?:inf|nan)\\.0\n // <ureal R> := <uint R>(?:\\/<uint R>)?\n // | <decimal R>\n //\n // <decimal 10> := (?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?\n // <uint R> := <digit R>+\n // <prefix R> := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>\n // <radix 2> := #b\n // <radix 8> := #o\n // <radix 10> := (?:#d)?\n // <radix 16> := #x\n // <digit 2> := [01]\n // <digit 8> := [0-7]\n // <digit 10> := \\d\n // <digit 16> := [0-9a-f]\n //\n // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all\n // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)\n // pattern:\n pattern: RegExp(\n SortedBNF({\n '<ureal dec>':\n /\\d+(?:\\/\\d+)|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[esfdl][+-]?\\d+)?/.source,\n '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i/.source,\n '<complex dec>':\n /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/\n .source,\n '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,\n '<ureal box>': /[0-9a-f]+(?:\\/[0-9a-f]+)?/.source,\n '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\\.0)?i/.source,\n '<complex box>':\n /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/\n .source,\n '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/\n .source,\n '<number>': /(^|[()\\[\\]\\s])(?:<num dec>|<num box>)(?=[()\\[\\]\\s]|$)/\n .source\n }),\n 'i'\n ),\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[()\\[\\]\\s])#(?:[ft]|false|true)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n function: {\n pattern:\n /((?:^|[^'`#])[(\\[])(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[()\\[\\]\\s])\\|(?:[^\\\\|]|\\\\.)*\\|(?=[()\\[\\]\\s]|$)/,\n lookbehind: true,\n greedy: true\n },\n punctuation: /[()\\[\\]']/\n }\n /**\n * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.\n *\n * @param {Record<string, string>} grammar\n * @returns {string}\n */\n function SortedBNF(grammar) {\n for (var key in grammar) {\n grammar[key] = grammar[key].replace(/<[\\w\\s]+>/g, function (key) {\n return '(?:' + grammar[key].trim() + ')'\n })\n } // return the last item\n return grammar[key]\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = scss\nscss.displayName = 'scss'\nscss.aliases = []\nfunction scss(Prism) {\n Prism.languages.scss = Prism.languages.extend('css', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n atrule: {\n pattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n inside: {\n rule: /@[\\w-]+/ // See rest below\n }\n },\n // url, compassified\n url: /(?:[-a-z]+-)?url(?=\\()/i,\n // CSS selector regex is not appropriate for Sass\n // since there can be lot more things (var, @ directive, nesting..)\n // a selector must start at the end of a property or after a brace (end of other rules or nesting)\n // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n // the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n // can \"pass\" as a selector- e.g: proper#{$erty})\n // this one was hard to do, so please be careful if you edit this one :)\n selector: {\n // Initial look-ahead is used to prevent matching of blank selectors\n pattern:\n /(?=\\S)[^@;{}()]?(?:[^@;{}()\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]))/,\n inside: {\n parent: {\n pattern: /&/,\n alias: 'important'\n },\n placeholder: /%[-\\w]+/,\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n },\n property: {\n pattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n inside: {\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n }\n })\n Prism.languages.insertBefore('scss', 'atrule', {\n keyword: [\n /@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\\b/i,\n {\n pattern: /( )(?:from|through)(?= )/,\n lookbehind: true\n }\n ]\n })\n Prism.languages.insertBefore('scss', 'important', {\n // var and interpolated vars\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n })\n Prism.languages.insertBefore('scss', 'function', {\n 'module-modifier': {\n pattern: /\\b(?:as|hide|show|with)\\b/i,\n alias: 'keyword'\n },\n placeholder: {\n pattern: /%[-\\w]+/,\n alias: 'selector'\n },\n statement: {\n pattern: /\\B!(?:default|optional)\\b/i,\n alias: 'keyword'\n },\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n operator: {\n pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|not|or)(?=\\s)/,\n lookbehind: true\n }\n })\n Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","'use strict'\nvar refractorBash = require('./bash.js')\nmodule.exports = shellSession\nshellSession.displayName = 'shellSession'\nshellSession.aliases = []\nfunction shellSession(Prism) {\n Prism.register(refractorBash)\n ;(function (Prism) {\n // CAREFUL!\n // The following patterns are concatenated, so the group referenced by a back reference is non-obvious!\n var strings = [\n // normal string\n /\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/.source,\n /'[^']*'/.source,\n /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/.source, // here doc\n // 2 capturing groups\n /<<-?\\s*([\"']?)(\\w+)\\1\\s[\\s\\S]*?[\\r\\n]\\2/.source\n ].join('|')\n Prism.languages['shell-session'] = {\n command: {\n pattern: RegExp(\n // user info\n /^/.source +\n '(?:' + // <user> \":\" ( <path> )?\n (/[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+(?::[^\\0-\\x1F$#%*?\"<>:;|]+)?/\n .source +\n '|' + // <path>\n // Since the path pattern is quite general, we will require it to start with a special character to\n // prevent false positives.\n /[/~.][^\\0-\\x1F$#%*?\"<>@:;|]*/.source) +\n ')?' + // shell symbol\n /[$#%](?=\\s)/.source + // bash command\n /(?:[^\\\\\\r\\n \\t'\"<$]|[ \\t](?:(?!#)|#.*$)|\\\\(?:[^\\r]|\\r\\n?)|\\$(?!')|<(?!<)|<<str>>)+/.source.replace(\n /<<str>>/g,\n function () {\n return strings\n }\n ),\n 'm'\n ),\n greedy: true,\n inside: {\n info: {\n // foo@bar:~/files$ exit\n // foo@bar$ exit\n // ~/files$ exit\n pattern: /^[^#$%]+/,\n alias: 'punctuation',\n inside: {\n user: /^[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+/,\n punctuation: /:/,\n path: /[\\s\\S]+/\n }\n },\n bash: {\n pattern: /(^[$#%]\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n alias: 'language-bash',\n inside: Prism.languages.bash\n },\n 'shell-symbol': {\n pattern: /^[$#%]/,\n alias: 'important'\n }\n }\n },\n output: /.(?:.*(?:[\\r\\n]|.$))*/\n }\n Prism.languages['sh-session'] = Prism.languages['shellsession'] =\n Prism.languages['shell-session']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = smali\nsmali.displayName = 'smali'\nsmali.aliases = []\nfunction smali(Prism) {\n // Test files for the parser itself:\n // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\n Prism.languages.smali = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\(?:.|u[\\da-fA-F]{4}))'/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(^|[^L])L(?:(?:\\w+|`[^`\\r\\n]*`)\\/)*(?:[\\w$]+|`[^`\\r\\n]*`)(?=\\s*;)/,\n lookbehind: true,\n inside: {\n 'class-name': {\n pattern: /(^L|\\/)(?:[\\w$]+|`[^`\\r\\n]*`)$/,\n lookbehind: true\n },\n namespace: {\n pattern: /^(L)(?:(?:\\w+|`[^`\\r\\n]*`)\\/)+/,\n lookbehind: true,\n inside: {\n punctuation: /\\//\n }\n },\n builtin: /^L/\n }\n },\n builtin: [\n {\n // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types\n pattern: /([();\\[])[BCDFIJSVZ]+/,\n lookbehind: true\n },\n {\n // e.g. .field mWifiOnUid:I\n pattern: /([\\w$>]:)[BCDFIJSVZ]/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /(\\.end\\s+)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.-])\\.(?!\\d)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^\\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\\w.-])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^|[^\\w.-])(?:\\w+|<[\\w$-]+>)(?=\\()/,\n lookbehind: true\n },\n field: {\n pattern: /[\\w$]+(?=:)/,\n alias: 'variable'\n },\n register: {\n pattern: /(^|[^\\w.-])[vp]\\d(?![\\w.-])/,\n lookbehind: true,\n alias: 'variable'\n },\n boolean: {\n pattern: /(^|[^\\w.-])(?:false|true)(?![\\w.-])/,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^/\\w.-])-?(?:NAN|INFINITY|0x(?:[\\dA-F]+(?:\\.[\\dA-F]*)?|\\.[\\dA-F]+)(?:p[+-]?[\\dA-F]+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)[dflst]?(?![\\w.-])/i,\n lookbehind: true\n },\n label: {\n pattern: /(:)\\w+/,\n lookbehind: true,\n alias: 'property'\n },\n operator: /->|\\.\\.|[\\[=]/,\n punctuation: /[{}(),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = smalltalk\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\nfunction smalltalk(Prism) {\n Prism.languages.smalltalk = {\n comment: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n char: {\n pattern: /\\$./,\n greedy: true\n },\n string: {\n pattern: /'(?:''|[^'])*'/,\n greedy: true\n },\n symbol: /#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\n 'block-arguments': {\n pattern: /(\\[\\s*):[^\\[|]*\\|/,\n lookbehind: true,\n inside: {\n variable: /:[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n 'temporary-variables': {\n pattern: /\\|[^|]+\\|/,\n inside: {\n variable: /[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n keyword: /\\b(?:new|nil|self|super)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: [\n /\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,\n /\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/\n ],\n operator: /[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,\n punctuation: /[.;:?\\[\\](){}]/\n }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = smarty\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\nfunction smarty(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.smarty = {\n comment: {\n pattern: /^\\{\\*[\\s\\S]*?\\*\\}/,\n greedy: true\n },\n 'embedded-php': {\n pattern: /^\\{php\\}[\\s\\S]*?\\{\\/php\\}/,\n greedy: true,\n inside: {\n smarty: {\n pattern: /^\\{php\\}|\\{\\/php\\}$/,\n inside: null // see below\n },\n php: {\n pattern: /[\\s\\S]+/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n },\n string: [\n {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\{[^{}]*\\}|`[^`]*`/,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^[{`]|[`}]$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n variable: /\\$\\w+/\n }\n },\n {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n greedy: true\n }\n ],\n keyword: {\n pattern: /(^\\{\\/?)[a-z_]\\w*\\b(?!\\()/i,\n lookbehind: true,\n greedy: true\n },\n delimiter: {\n pattern: /^\\{\\/?|\\}$/,\n greedy: true,\n alias: 'punctuation'\n },\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n variable: [\n /\\$(?!\\d)\\w+/,\n /#(?!\\d)\\w+#/,\n {\n pattern: /(\\.|->|\\w\\s*=)(?!\\d)\\w+\\b(?!\\()/,\n lookbehind: true\n },\n {\n pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(\\|\\s*)@?[a-z_]\\w*|\\b[a-z_]\\w*(?=\\()/i,\n lookbehind: true\n },\n 'attr-name': /\\b[a-z_]\\w*(?=\\s*=)/i,\n boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n punctuation: /[\\[\\](){}.,:`]|->/,\n operator: [\n /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n /\\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\\b/\n ]\n }\n Prism.languages.smarty['embedded-php'].inside.smarty.inside =\n Prism.languages.smarty\n Prism.languages.smarty.string[0].inside.interpolation.inside.expression.inside =\n Prism.languages.smarty\n var string = /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/\n var smartyPattern = RegExp(\n // comments\n /\\{\\*[\\s\\S]*?\\*\\}/.source +\n '|' + // php tags\n /\\{php\\}[\\s\\S]*?\\{\\/php\\}/.source +\n '|' + // smarty blocks\n /\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>)*\\})*\\})*\\}/.source.replace(\n /<str>/g,\n function () {\n return string.source\n }\n ),\n 'g'\n ) // Tokenize all inline Smarty expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var smartyLiteralStart = '{literal}'\n var smartyLiteralEnd = '{/literal}'\n var smartyLiteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'smarty',\n smartyPattern,\n function (match) {\n // Smarty tags inside {literal} block are ignored\n if (match === smartyLiteralEnd) {\n smartyLiteralMode = false\n }\n if (!smartyLiteralMode) {\n if (match === smartyLiteralStart) {\n smartyLiteralMode = true\n }\n return true\n }\n return false\n }\n )\n }) // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sml\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\nfunction sml(Prism) {\n // https://smlfamily.github.io/sml97-defn.pdf\n // https://people.mpi-sws.org/~rossberg/sml.html\n ;(function (Prism) {\n var keywords =\n /\\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\\b/i\n Prism.languages.sml = {\n // allow one level of nesting\n comment:\n /\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*)|\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*))*\\*\\))*\\*\\)/,\n string: {\n pattern: /#?\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': [\n {\n // This is only an approximation since the real grammar is context-free\n //\n // Why the main loop so complex?\n // The main loop is approximately the same as /(?:\\s*(?:[*,]|->)\\s*<TERMINAL>)*/ which is, obviously, a lot\n // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be\n // followed by a long identifier.\n pattern: RegExp(\n /((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*/.source\n .replace(/<NOT-LAST>/g, function () {\n return /\\s*(?:[*,]|->)/.source\n })\n .replace(/<TERMINAL>/g, function () {\n return /(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*/\n .source\n })\n .replace(/<LONG-ID>/g, function () {\n return /(?!<KEYWORD>)[a-z\\d_][\\w'.]*/.source\n })\n .replace(/<KEYWORD>/g, function () {\n return keywords.source\n }),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n {\n pattern:\n /((?:^|[^\\w'])(?:datatype|exception|functor|signature|structure|type)\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n }\n ],\n function: {\n pattern: /((?:^|[^\\w'])fun\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n },\n keyword: keywords,\n variable: {\n pattern: /(^|[^\\w'])'[\\w']*/,\n lookbehind: true\n },\n number: /~?\\b(?:\\d+(?:\\.\\d+)?(?:e~?\\d+)?|0x[\\da-f]+)\\b/i,\n word: {\n pattern: /\\b0w(?:\\d+|x[\\da-f]+)\\b/i,\n alias: 'constant'\n },\n boolean: /\\b(?:false|true)\\b/i,\n operator: /\\.\\.\\.|:[>=:]|=>?|->|[<>]=?|[!+\\-*/^#|@~]/,\n punctuation: /[(){}\\[\\].:,;]/\n }\n Prism.languages.sml['class-name'][0].inside = Prism.languages.sml\n Prism.languages.smlnj = Prism.languages.sml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = solidity\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\nfunction solidity(Prism) {\n Prism.languages.solidity = Prism.languages.extend('clike', {\n 'class-name': {\n pattern:\n /(\\b(?:contract|enum|interface|library|new|struct|using)\\s+)(?!\\d)[\\w$]+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\\b/,\n operator: /=>|->|:=|=:|\\*\\*|\\+\\+|--|\\|\\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/\n })\n Prism.languages.insertBefore('solidity', 'keyword', {\n builtin:\n /\\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\\d|3[0-2])?)\\b/\n })\n Prism.languages.insertBefore('solidity', 'number', {\n version: {\n pattern: /([<>]=?|\\^)\\d+\\.\\d+\\.\\d+\\b/,\n lookbehind: true,\n alias: 'number'\n }\n })\n Prism.languages.sol = Prism.languages.solidity\n}\n","'use strict'\n\nmodule.exports = solutionFile\nsolutionFile.displayName = 'solutionFile'\nsolutionFile.aliases = []\nfunction solutionFile(Prism) {\n ;(function (Prism) {\n var guid = {\n // https://en.wikipedia.org/wiki/Universally_unique_identifier#Format\n pattern: /\\{[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}\\}/i,\n alias: 'constant',\n inside: {\n punctuation: /[{}]/\n }\n }\n Prism.languages['solution-file'] = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true,\n inside: {\n guid: guid\n }\n },\n object: {\n // Foo\n // Bar(\"abs\") = 9\n // EndBar\n // Prop = TRUE\n // EndFoo\n pattern:\n /^([ \\t]*)(?:([A-Z]\\w*)\\b(?=.*(?:\\r\\n?|\\n)(?:\\1[ \\t].*(?:\\r\\n?|\\n))*\\1End\\2(?=[ \\t]*$))|End[A-Z]\\w*(?=[ \\t]*$))/m,\n lookbehind: true,\n greedy: true,\n alias: 'keyword'\n },\n property: {\n pattern: /^([ \\t]*)(?!\\s)[^\\r\\n\"#=()]*[^\\s\"#=()](?=\\s*=)/m,\n lookbehind: true,\n inside: {\n guid: guid\n }\n },\n guid: guid,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n operator: /=/,\n punctuation: /[(),]/\n }\n Prism.languages['sln'] = Prism.languages['solution-file']\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = soy\nsoy.displayName = 'soy'\nsoy.aliases = []\nfunction soy(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n var stringPattern = /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var numberPattern = /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/\n Prism.languages.soy = {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(\\s)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'command-arg': {\n pattern:\n /(\\{+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /\\./\n }\n },\n parameter: {\n pattern: /(\\{+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: [\n {\n pattern:\n /(\\{+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,\n lookbehind: true\n },\n /\\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\\b/\n ],\n delimiter: {\n pattern: /^\\{+\\/?|\\/?\\}+$/,\n alias: 'punctuation'\n },\n property: /\\w+(?==)/,\n variable: {\n pattern: /\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+\\]))*/,\n inside: {\n string: {\n pattern: stringPattern,\n greedy: true\n },\n number: numberPattern,\n punctuation: /[\\[\\].?]/\n }\n },\n string: {\n pattern: stringPattern,\n greedy: true\n },\n function: [\n /\\w+(?=\\()/,\n {\n pattern: /(\\|[^\\S\\r\\n]*)\\w+/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:false|true)\\b/,\n number: numberPattern,\n operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n punctuation: /[{}()\\[\\]|.,:]/\n } // Tokenize all inline Soy expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var soyPattern = /\\{\\{.+?\\}\\}|\\{.+?\\}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g\n var soyLitteralStart = '{literal}'\n var soyLitteralEnd = '{/literal}'\n var soyLitteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'soy',\n soyPattern,\n function (match) {\n // Soy tags inside {literal} block are ignored\n if (match === soyLitteralEnd) {\n soyLitteralMode = false\n }\n if (!soyLitteralMode) {\n if (match === soyLitteralStart) {\n soyLitteralMode = true\n }\n return true\n }\n return false\n }\n )\n }) // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy')\n })\n })(Prism)\n}\n","'use strict'\nvar refractorTurtle = require('./turtle.js')\nmodule.exports = sparql\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\nfunction sparql(Prism) {\n Prism.register(refractorTurtle)\n Prism.languages.sparql = Prism.languages.extend('turtle', {\n boolean: /\\b(?:false|true)\\b/i,\n variable: {\n pattern: /[?$]\\w+/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sparql', 'punctuation', {\n keyword: [\n /\\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\\b/i,\n /\\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\\b(?=\\s*\\()/i,\n /\\b(?:BASE|GRAPH|PREFIX)\\b/i\n ]\n })\n Prism.languages.rq = Prism.languages.sparql\n}\n","'use strict'\n\nmodule.exports = splunkSpl\nsplunkSpl.displayName = 'splunkSpl'\nsplunkSpl.aliases = []\nfunction splunkSpl(Prism) {\n Prism.languages['splunk-spl'] = {\n comment: /`comment\\(\"(?:\\\\.|[^\\\\\"])*\"\\)`/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true\n },\n // https://docs.splunk.com/Documentation/Splunk/7.3.0/SearchReference/ListOfSearchCommands\n keyword:\n /\\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b/i,\n 'operator-word': {\n pattern: /\\b(?:and|as|by|not|or|xor)\\b/i,\n alias: 'operator'\n },\n function: /\\b\\w+(?=\\s*\\()/,\n property: /\\b\\w+(?=\\s*=(?!=))/,\n date: {\n // MM/DD/YYYY(:HH:MM:SS)?\n pattern: /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}(?:(?::\\d{1,2}){3})?\\b/,\n alias: 'number'\n },\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /\\b(?:f|false|t|true)\\b/i,\n operator: /[<>=]=?|[-+*/%|]/,\n punctuation: /[()[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = sqf\nsqf.displayName = 'sqf'\nsqf.aliases = []\nfunction sqf(Prism) {\n Prism.languages.sqf = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:(?:\"\")?[^\"])*\"(?!\")|'(?:[^'])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function:\n /\\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\\b/i,\n number:\n /(?:\\$|\\b0x)[\\da-f]+\\b|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+)?)(?:e[+-]?\\d+)?\\b/i,\n operator: /##|>>|&&|\\|\\||[!=<>]=?|[-+*/%#^]|\\b(?:and|mod|not|or)\\b/i,\n 'magic-variable': {\n pattern:\n /\\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\\b/i,\n alias: 'keyword'\n },\n constant: /\\bDIK(?:_[a-z\\d]+)+\\b/i\n })\n Prism.languages.insertBefore('sqf', 'string', {\n macro: {\n pattern: /(^[ \\t]*)#[a-z](?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /#[a-z]+\\b/i,\n alias: 'keyword'\n },\n comment: Prism.languages.sqf.comment\n }\n }\n })\n delete Prism.languages.sqf['class-name']\n}\n","'use strict'\n\nmodule.exports = sql\nsql.displayName = 'sql'\nsql.aliases = []\nfunction sql(Prism) {\n Prism.languages.sql = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n variable: [\n {\n pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n greedy: true\n },\n /@[\\w.$]+/\n ],\n string: {\n pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n greedy: true,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /^`|`$/\n }\n },\n function:\n /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n // Should we highlight user defined functions too?\n keyword:\n /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n punctuation: /[;[\\]()`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = squirrel\nsquirrel.displayName = 'squirrel'\nsquirrel.aliases = []\nfunction squirrel(Prism) {\n Prism.languages.squirrel = Prism.languages.extend('clike', {\n comment: [\n Prism.languages.clike['comment'][0],\n {\n pattern: /(^|[^\\\\:])(?:\\/\\/|#).*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\\\\\"'@])(?:@\"(?:[^\"]|\"\")*\"(?!\")|\"(?:[^\\\\\\r\\n\"]|\\\\.)*\")/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|enum|extends|instanceof)\\s+)\\w+(?:\\.\\w+)*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\\b/,\n number: /\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.(?:\\d+|[eE][+-]?\\d+))?)\\b/,\n operator: /\\+\\+|--|<=>|<[-<]|>>>?|&&?|\\|\\|?|[-+*/%!=<>]=?|[~^]|::?/,\n punctuation: /[(){}\\[\\],;.]/\n })\n Prism.languages.insertBefore('squirrel', 'string', {\n char: {\n pattern: /(^|[^\\\\\"'])'(?:[^\\\\']|\\\\(?:[xuU][0-9a-fA-F]{0,8}|[\\s\\S]))'/,\n lookbehind: true,\n greedy: true\n }\n })\n Prism.languages.insertBefore('squirrel', 'operator', {\n 'attribute-punctuation': {\n pattern: /<\\/|\\/>/,\n alias: 'important'\n },\n lambda: {\n pattern: /@(?=\\()/,\n alias: 'operator'\n }\n })\n}\n","'use strict'\n\nmodule.exports = stan\nstan.displayName = 'stan'\nstan.aliases = []\nfunction stan(Prism) {\n ;(function (Prism) {\n // https://mc-stan.org/docs/2_28/reference-manual/bnf-grammars.html\n var higherOrderFunctions =\n /\\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\\b/\n Prism.languages.stan = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|#(?!include).*/,\n string: {\n // String literals can contain spaces and any printable ASCII characters except for \" and \\\n // https://mc-stan.org/docs/2_24/reference-manual/print-statements-section.html#string-literals\n pattern: /\"[\\x20\\x21\\x23-\\x5B\\x5D-\\x7E]*\"/,\n greedy: true\n },\n directive: {\n pattern: /^([ \\t]*)#include\\b.*/m,\n lookbehind: true,\n alias: 'property'\n },\n 'function-arg': {\n pattern: RegExp(\n '(' +\n higherOrderFunctions.source +\n /\\s*\\(\\s*/.source +\n ')' +\n /[a-zA-Z]\\w*/.source\n ),\n lookbehind: true,\n alias: 'function'\n },\n constraint: {\n pattern: /(\\b(?:int|matrix|real|row_vector|vector)\\s*)<[^<>]*>/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /(=\\s*)\\S(?:\\S|\\s+(?!\\s))*?(?=\\s*(?:>$|,\\s*\\w+\\s*=))/,\n lookbehind: true,\n inside: null // see below\n },\n property: /\\b[a-z]\\w*(?=\\s*=)/i,\n operator: /=/,\n punctuation: /^<|>$|,/\n }\n },\n keyword: [\n {\n pattern:\n /\\bdata(?=\\s*\\{)|\\b(?:functions|generated|model|parameters|quantities|transformed)\\b/,\n alias: 'program-block'\n },\n /\\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\\b/, // these are functions that are known to take another function as their first argument.\n higherOrderFunctions\n ],\n function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n number:\n /(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:E[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n boolean: /\\b(?:false|true)\\b/,\n operator: /<-|\\.[*/]=?|\\|\\|?|&&|[!=<>+\\-*/]=?|['^%~?:]/,\n punctuation: /[()\\[\\]{},;]/\n }\n Prism.languages.stan.constraint.inside.expression.inside =\n Prism.languages.stan\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = stylus\nstylus.displayName = 'stylus'\nstylus.aliases = []\nfunction stylus(Prism) {\n ;(function (Prism) {\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n lookbehind: true\n } // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n var inside = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n url: {\n pattern: /\\burl\\(([\"']?).*?\\1\\)/i,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n interpolation: null,\n // See below\n func: null,\n // See below\n important: /\\B!(?:important|optional)\\b/i,\n keyword: {\n pattern: /(^|\\s+)(?:(?:else|for|if|return|unless)(?=\\s|$)|@[\\w-]+)/,\n lookbehind: true\n },\n hexcode: /#[\\da-f]{3,6}/i,\n color: [\n /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n {\n pattern:\n /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n boolean: /\\b(?:false|true)\\b/,\n operator: [\n // We want non-word chars around \"-\" because it is\n // accepted in property names.\n /~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.{2,3}|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/\n ],\n number: number,\n punctuation: /[{}()\\[\\];:,]/\n }\n inside['interpolation'] = {\n pattern: /\\{[^\\r\\n}:]+\\}/,\n alias: 'variable',\n inside: {\n delimiter: {\n pattern: /^\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: inside\n }\n }\n inside['func'] = {\n pattern: /[\\w-]+\\([^)]*\\).*/,\n inside: {\n function: /^[^(]+/,\n rest: inside\n }\n }\n Prism.languages.stylus = {\n 'atrule-declaration': {\n pattern: /(^[ \\t]*)@.+/m,\n lookbehind: true,\n inside: {\n atrule: /^@[\\w-]+/,\n rest: inside\n }\n },\n 'variable-declaration': {\n pattern: /(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:\\{[^{}]*\\}|\\S.*|$)/m,\n lookbehind: true,\n inside: {\n variable: /^\\S+/,\n rest: inside\n }\n },\n statement: {\n pattern: /(^[ \\t]*)(?:else|for|if|return|unless)[ \\t].+/m,\n lookbehind: true,\n inside: {\n keyword: /^\\S+/,\n rest: inside\n }\n },\n // A property/value pair cannot end with a comma or a brace\n // It cannot have indented content unless it ended with a semicolon\n 'property-declaration': {\n pattern:\n /((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)(?!\\s)[^{\\r\\n]*(?:;|[^{\\r\\n,]$(?!(?:\\r?\\n|\\r)(?:\\{|\\2[ \\t])))/m,\n lookbehind: true,\n inside: {\n property: {\n pattern: /^[^\\s:]+/,\n inside: {\n interpolation: inside.interpolation\n }\n },\n rest: inside\n }\n },\n // A selector can contain parentheses only as part of a pseudo-element\n // It can span multiple lines.\n // It must end with a comma or an accolade or have indented content.\n selector: {\n pattern:\n /(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t])))/m,\n lookbehind: true,\n inside: {\n interpolation: inside.interpolation,\n comment: inside.comment,\n punctuation: /[{},]/\n }\n },\n func: inside.func,\n string: inside.string,\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n interpolation: inside.interpolation,\n punctuation: /[{}()\\[\\];:.]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = swift\nswift.displayName = 'swift'\nswift.aliases = []\nfunction swift(Prism) {\n Prism.languages.swift = {\n comment: {\n // Nested comments are supported up to 2 levels\n pattern:\n /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/,\n lookbehind: true,\n greedy: true\n },\n 'string-literal': [\n // https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html\n {\n pattern: RegExp(\n /(^|[^\"#])/.source +\n '(?:' + // single-line string\n /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/\n .source +\n '|' + // multi-line string\n /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/\n .source +\n ')' +\n /(?![\"#])/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n lookbehind: true,\n inside: null // see below\n },\n 'interpolation-punctuation': {\n pattern: /^\\)|\\\\\\($/,\n alias: 'punctuation'\n },\n punctuation: /\\\\(?=[\\r\\n])/,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: RegExp(\n /(^|[^\"#])(#+)/.source +\n '(?:' + // single-line string\n /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/\n .source +\n '|' + // multi-line string\n /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source +\n ')' +\n '\\\\2'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n lookbehind: true,\n inside: null // see below\n },\n 'interpolation-punctuation': {\n pattern: /^\\)|\\\\#+\\($/,\n alias: 'punctuation'\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n directive: {\n // directives with conditions\n pattern: RegExp(\n /#/.source +\n '(?:' +\n (/(?:elseif|if)\\b/.source +\n '(?:[ \\t]*' + // This regex is a little complex. It's equivalent to this:\n // (?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*<round>)?|<round>)(?:[ \\t]*(?:&&|\\|\\|))?\n // where <round> is a general parentheses expression.\n /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/\n .source +\n ')+') +\n '|' +\n /(?:else|endif)\\b/.source +\n ')'\n ),\n alias: 'property',\n inside: {\n 'directive-name': /^#\\w+/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n operator: /!|&&|\\|\\||[<>]=?/,\n punctuation: /[(),]/\n }\n },\n literal: {\n pattern:\n /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/,\n alias: 'constant'\n },\n 'other-directive': {\n pattern: /#\\w+\\b/,\n alias: 'property'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'atrule'\n },\n 'function-definition': {\n pattern: /(\\bfunc\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n // https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID141\n pattern:\n /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/,\n lookbehind: true,\n alias: 'important'\n },\n keyword:\n /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n nil: {\n pattern: /\\bnil\\b/,\n alias: 'constant'\n },\n 'short-argument': /\\$\\d+\\b/,\n omit: {\n pattern: /\\b_\\b/,\n alias: 'keyword'\n },\n number:\n /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n // A class name must start with an upper-case letter and be either 1 letter long or contain a lower-case letter.\n 'class-name': /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n // Operators are generic in Swift. Developers can even create new operators (e.g. +++).\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html#ID481\n // This regex only supports ASCII operators.\n operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/,\n punctuation: /[{}[\\]();,.:\\\\]/\n }\n Prism.languages.swift['string-literal'].forEach(function (rule) {\n rule.inside['interpolation'].inside = Prism.languages.swift\n })\n}\n","'use strict'\n\nmodule.exports = systemd\nsystemd.displayName = 'systemd'\nsystemd.aliases = []\nfunction systemd(Prism) {\n // https://www.freedesktop.org/software/systemd/man/systemd.syntax.html\n ;(function (Prism) {\n var comment = {\n pattern: /^[;#].*/m,\n greedy: true\n }\n var quotesSource = /\"(?:[^\\r\\n\"\\\\]|\\\\(?:[^\\r]|\\r\\n?))*\"(?!\\S)/.source\n Prism.languages.systemd = {\n comment: comment,\n section: {\n pattern: /^\\[[^\\n\\r\\[\\]]*\\](?=[ \\t]*$)/m,\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'section-name': {\n pattern: /[\\s\\S]+/,\n alias: 'selector'\n }\n }\n },\n key: {\n pattern: /^[^\\s=]+(?=[ \\t]*=)/m,\n greedy: true,\n alias: 'attr-name'\n },\n value: {\n // This pattern is quite complex because of two properties:\n // 1) Quotes (strings) must be preceded by a space. Since we can't use lookbehinds, we have to \"resolve\"\n // the lookbehind. You will see this in the main loop where spaces are handled separately.\n // 2) Line continuations.\n // After line continuations, empty lines and comments are ignored so we have to consume them.\n pattern: RegExp(\n /(=[ \\t]*(?!\\s))/.source + // the value either starts with quotes or not\n '(?:' +\n quotesSource +\n '|(?=[^\"\\r\\n]))' + // main loop\n '(?:' +\n (/[^\\s\\\\]/.source + // handle spaces separately because of quotes\n '|' +\n '[ \\t]+(?:(?![ \\t\"])|' +\n quotesSource +\n ')' + // line continuation\n '|' +\n /\\\\[\\r\\n]+(?:[#;].*[\\r\\n]+)*(?![#;])/.source) +\n ')*'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'attr-value',\n inside: {\n comment: comment,\n quoted: {\n pattern: RegExp(/(^|\\s)/.source + quotesSource),\n lookbehind: true,\n greedy: true\n },\n punctuation: /\\\\$/m,\n boolean: {\n pattern: /^(?:false|no|off|on|true|yes)$/,\n greedy: true\n }\n }\n },\n punctuation: /=/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = t4Cs\nt4Cs.displayName = 't4Cs'\nt4Cs.aliases = []\nfunction t4Cs(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorCsharp)\n Prism.languages.t4 = Prism.languages['t4-cs'] =\n Prism.languages['t4-templating'].createT4('csharp')\n}\n","'use strict'\n\nmodule.exports = t4Templating\nt4Templating.displayName = 't4Templating'\nt4Templating.aliases = []\nfunction t4Templating(Prism) {\n ;(function (Prism) {\n function createBlock(prefix, inside, contentAlias) {\n return {\n pattern: RegExp('<#' + prefix + '[\\\\s\\\\S]*?#>'),\n alias: 'block',\n inside: {\n delimiter: {\n pattern: RegExp('^<#' + prefix + '|#>$'),\n alias: 'important'\n },\n content: {\n pattern: /[\\s\\S]+/,\n inside: inside,\n alias: contentAlias\n }\n }\n }\n }\n function createT4(insideLang) {\n var grammar = Prism.languages[insideLang]\n var className = 'language-' + insideLang\n return {\n block: {\n pattern: /<#[\\s\\S]+?#>/,\n inside: {\n directive: createBlock('@', {\n 'attr-value': {\n pattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/,\n inside: {\n punctuation: /^=|^[\"']|[\"']$/\n }\n },\n keyword: /\\b\\w+(?=\\s)/,\n 'attr-name': /\\b\\w+/\n }),\n expression: createBlock('=', grammar, className),\n 'class-feature': createBlock('\\\\+', grammar, className),\n standard: createBlock('', grammar, className)\n }\n }\n }\n }\n Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {\n value: createT4\n })\n })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorVbnet = require('./vbnet.js')\nmodule.exports = t4Vb\nt4Vb.displayName = 't4Vb'\nt4Vb.aliases = []\nfunction t4Vb(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorVbnet)\n Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","'use strict'\nvar refractorYaml = require('./yaml.js')\nmodule.exports = tap\ntap.displayName = 'tap'\ntap.aliases = []\nfunction tap(Prism) {\n Prism.register(refractorYaml)\n // https://en.wikipedia.org/wiki/Test_Anything_Protocol\n Prism.languages.tap = {\n fail: /not ok[^#{\\n\\r]*/,\n pass: /ok[^#{\\n\\r]*/,\n pragma: /pragma [+-][a-z]+/,\n bailout: /bail out!.*/i,\n version: /TAP version \\d+/i,\n plan: /\\b\\d+\\.\\.\\d+(?: +#.*)?/,\n subtest: {\n pattern: /# Subtest(?:: .*)?/,\n greedy: true\n },\n punctuation: /[{}]/,\n directive: /#.*/,\n yamlish: {\n pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n lookbehind: true,\n inside: Prism.languages.yaml,\n alias: 'language-yaml'\n }\n }\n}\n","'use strict'\n\nmodule.exports = tcl\ntcl.displayName = 'tcl'\ntcl.aliases = []\nfunction tcl(Prism) {\n Prism.languages.tcl = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,\n lookbehind: true\n },\n {\n pattern: /(\\$)\\{[^}]+\\}/,\n lookbehind: true\n },\n {\n pattern: /(^[\\t ]*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^[\\t ]*proc[ \\t]+)\\S+/m,\n lookbehind: true\n },\n builtin: [\n {\n pattern:\n /(^[\\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\\b/m,\n lookbehind: true\n },\n /\\b(?:else|elseif)\\b/\n ],\n scope: {\n pattern: /(^[\\t ]*)(?:global|upvar|variable)\\b/m,\n lookbehind: true,\n alias: 'constant'\n },\n keyword: {\n pattern:\n /(^[\\t ]*|\\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n lookbehind: true\n },\n operator:\n /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|in|ne|ni)\\b/,\n punctuation: /[{}()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = textile\ntextile.displayName = 'textile'\ntextile.aliases = []\nfunction textile(Prism) {\n ;(function (Prism) {\n // We don't allow for pipes inside parentheses\n // to not break table pattern |(. foo |). bar |\n var modifierRegex = /\\([^|()\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}/.source // Opening and closing parentheses which are not a modifier\n // This pattern is necessary to prevent exponential backtracking\n var parenthesesRegex = /\\)|\\((?![^|()\\n]+\\))/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function withModifier(source, flags) {\n return RegExp(\n source\n .replace(/<MOD>/g, function () {\n return '(?:' + modifierRegex + ')'\n })\n .replace(/<PAR>/g, function () {\n return '(?:' + parenthesesRegex + ')'\n }),\n flags || ''\n )\n }\n var modifierTokens = {\n css: {\n pattern: /\\{[^{}]+\\}/,\n inside: {\n rest: Prism.languages.css\n }\n },\n 'class-id': {\n pattern: /(\\()[^()]+(?=\\))/,\n lookbehind: true,\n alias: 'attr-value'\n },\n lang: {\n pattern: /(\\[)[^\\[\\]]+(?=\\])/,\n lookbehind: true,\n alias: 'attr-value'\n },\n // Anything else is punctuation (the first pattern is for row/col spans inside tables)\n punctuation: /[\\\\\\/]\\d+|\\S/\n }\n var textile = (Prism.languages.textile = Prism.languages.extend('markup', {\n phrase: {\n pattern: /(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,\n lookbehind: true,\n inside: {\n // h1. Header 1\n 'block-tag': {\n pattern: withModifier(/^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\./.source),\n inside: {\n modifier: {\n pattern: withModifier(\n /(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n tag: /^[a-z]\\w*/,\n punctuation: /\\.$/\n }\n },\n // # List item\n // * List item\n list: {\n pattern: withModifier(/^[*#]+<MOD>*\\s+\\S.*/.source, 'm'),\n inside: {\n modifier: {\n pattern: withModifier(/(^[*#]+)<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /^[*#]+/\n }\n },\n // | cell | cell | cell |\n table: {\n // Modifiers can be applied to the row: {color:red}.|1|2|3|\n // or the cell: |{color:red}.1|2|3|\n pattern: withModifier(\n /^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|/\n .source,\n 'm'\n ),\n inside: {\n modifier: {\n // Modifiers for rows after the first one are\n // preceded by a pipe and a line feed\n pattern: withModifier(\n /(^|\\|(?:\\r?\\n|\\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)/\n .source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /\\||^\\./\n }\n },\n inline: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(\n /(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])/\n .source\n ),\n lookbehind: true,\n inside: {\n // Note: superscripts and subscripts are not handled specifically\n // *bold*, **bold**\n bold: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // _italic_, __italic__\n italic: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // ??cite??\n cite: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n lookbehind: true,\n alias: 'string'\n },\n // @code@\n code: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n // +inserted+\n inserted: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n lookbehind: true\n },\n // -deleted-\n deleted: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n lookbehind: true\n },\n // %span%\n span: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^%<MOD>*).+?(?=%)/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(\n /(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /[*_%?@+\\-^~]+/\n }\n },\n // [alias]http://example.com\n 'link-ref': {\n pattern: /^\\[[^\\]]+\\]\\S+$/m,\n inside: {\n string: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\])\\S+$/,\n lookbehind: true\n },\n punctuation: /[\\[\\]]/\n }\n },\n // \"text\":http://example.com\n // \"text\":link-ref\n link: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(\n /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n ),\n inside: {\n text: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\"<MOD>*)[^\"]+(?=\")/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(/(^\")<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[\":]/\n }\n },\n // !image.jpg!\n // !image.jpg(Title)!:http://example.com\n image: {\n pattern: withModifier(\n /!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?/\n .source\n ),\n inside: {\n source: {\n pattern: withModifier(\n /(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)/\n .source\n ),\n lookbehind: true,\n alias: 'url'\n },\n modifier: {\n pattern: withModifier(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[!:]/\n }\n },\n // Footnote[1]\n footnote: {\n pattern: /\\b\\[\\d+\\]/,\n alias: 'comment',\n inside: {\n punctuation: /\\[|\\]/\n }\n },\n // CSS(Cascading Style Sheet)\n acronym: {\n pattern: /\\b[A-Z\\d]+\\([^)]+\\)/,\n inside: {\n comment: {\n pattern: /(\\()[^()]+(?=\\))/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n // Prism(C)\n mark: {\n pattern: /\\b\\((?:C|R|TM)\\)/,\n alias: 'comment',\n inside: {\n punctuation: /[()]/\n }\n }\n }\n }\n }))\n var phraseInside = textile['phrase'].inside\n var nestedPatterns = {\n inline: phraseInside['inline'],\n link: phraseInside['link'],\n image: phraseInside['image'],\n footnote: phraseInside['footnote'],\n acronym: phraseInside['acronym'],\n mark: phraseInside['mark']\n } // Only allow alpha-numeric HTML tags, not XML tags\n textile.tag.pattern =\n /<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i // Allow some nesting\n var phraseInlineInside = phraseInside['inline'].inside\n phraseInlineInside['bold'].inside = nestedPatterns\n phraseInlineInside['italic'].inside = nestedPatterns\n phraseInlineInside['inserted'].inside = nestedPatterns\n phraseInlineInside['deleted'].inside = nestedPatterns\n phraseInlineInside['span'].inside = nestedPatterns // Allow some styles inside table cells\n var phraseTableInside = phraseInside['table'].inside\n phraseTableInside['inline'] = nestedPatterns['inline']\n phraseTableInside['link'] = nestedPatterns['link']\n phraseTableInside['image'] = nestedPatterns['image']\n phraseTableInside['footnote'] = nestedPatterns['footnote']\n phraseTableInside['acronym'] = nestedPatterns['acronym']\n phraseTableInside['mark'] = nestedPatterns['mark']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = toml\ntoml.displayName = 'toml'\ntoml.aliases = []\nfunction toml(Prism) {\n ;(function (Prism) {\n var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\n /**\n * @param {string} pattern\n */\n function insertKey(pattern) {\n return pattern.replace(/__/g, function () {\n return key\n })\n }\n Prism.languages.toml = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n table: {\n pattern: RegExp(\n insertKey(\n /(^[\\t ]*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])/.source\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name'\n },\n key: {\n pattern: RegExp(\n insertKey(/(^[\\t ]*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)/.source),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n string: {\n pattern:\n /\"\"\"(?:\\\\[\\s\\S]|[^\\\\])*?\"\"\"|'''[\\s\\S]*?'''|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n date: [\n {\n // Offset Date-Time, Local Date-Time, Local Date\n pattern:\n /\\b\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?\\b/i,\n alias: 'number'\n },\n {\n // Local Time\n pattern: /\\b\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?\\b/,\n alias: 'number'\n }\n ],\n number:\n /(?:\\b0(?:x[\\da-zA-Z]+(?:_[\\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\\b|[-+]?\\b\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?\\b|[-+]?\\b(?:inf|nan)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /[.,=[\\]{}]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = tremor\ntremor.displayName = 'tremor'\ntremor.aliases = []\nfunction tremor(Prism) {\n ;(function (Prism) {\n Prism.languages.tremor = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n 'interpolated-string': null,\n // see below\n extractor: {\n pattern: /\\b[a-z_]\\w*\\|(?:[^\\r\\n\\\\|]|\\\\(?:\\r\\n|[\\s\\S]))*\\|/i,\n greedy: true,\n inside: {\n regex: {\n pattern: /(^re)\\|[\\s\\S]+/,\n lookbehind: true\n },\n function: /^\\w+/,\n value: /\\|[\\s\\S]+/\n }\n },\n identifier: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())\\b/,\n keyword:\n /\\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\\b/,\n boolean: /\\b(?:false|null|true)\\b/i,\n number:\n /\\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee][+-]?[\\d_]+)?)\\b/,\n 'pattern-punctuation': {\n pattern: /%(?=[({[])/,\n alias: 'punctuation'\n },\n operator:\n /[-+*\\/%~!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\\b/,\n punctuation: /::|[;\\[\\]()\\{\\},.:]/\n }\n var interpolationPattern =\n /#\\{(?:[^\"{}]|\\{[^{}]*\\}|\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\")*\\}/.source\n Prism.languages.tremor['interpolated-string'] = {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n '\"\"\"(?:' +\n /[^\"\\\\#]|\\\\[\\s\\S]|\"(?!\"\")|#(?!\\{)/.source +\n '|' +\n interpolationPattern +\n ')*\"\"\"' +\n '|' +\n '\"(?:' +\n /[^\"\\\\\\r\\n#]|\\\\(?:\\r\\n|[\\s\\S])|#(?!\\{)/.source +\n '|' +\n interpolationPattern +\n ')*\"' +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n inside: {\n punctuation: /^#\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.tremor\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.troy = Prism.languages['tremor']\n Prism.languages.trickle = Prism.languages['tremor']\n })(Prism)\n}\n","'use strict'\nvar refractorJsx = require('./jsx.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = tsx\ntsx.displayName = 'tsx'\ntsx.aliases = []\nfunction tsx(Prism) {\n Prism.register(refractorJsx)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript)\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript) // doesn't work with TS because TS is too complex\n delete Prism.languages.tsx['parameter']\n delete Prism.languages.tsx['literal-property'] // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n var tag = Prism.languages.tsx.tag\n tag.pattern = RegExp(\n /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n tag.pattern.flags\n )\n tag.lookbehind = true\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = tt2\ntt2.displayName = 'tt2'\ntt2.aliases = []\nfunction tt2(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.tt2 = Prism.languages.extend('clike', {\n comment: /#.*|\\[%#[\\s\\S]*?%\\]/,\n keyword:\n /\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\\b/,\n punctuation: /[[\\]{},()]/\n })\n Prism.languages.insertBefore('tt2', 'number', {\n operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|not|or)\\b/,\n variable: {\n pattern: /\\b[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*\\b/i\n }\n })\n Prism.languages.insertBefore('tt2', 'keyword', {\n delimiter: {\n pattern: /^(?:\\[%|%%)-?|-?%\\]$/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('tt2', 'string', {\n 'single-quoted-string': {\n pattern: /'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,\n greedy: true,\n alias: 'string'\n },\n 'double-quoted-string': {\n pattern: /\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,\n greedy: true,\n alias: 'string',\n inside: {\n variable: {\n pattern: /\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i\n }\n }\n }\n }) // The different types of TT2 strings \"replace\" the C-like standard string\n delete Prism.languages.tt2.string\n Prism.hooks.add('before-tokenize', function (env) {\n var tt2Pattern = /\\[%[\\s\\S]+?%\\]/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'tt2',\n tt2Pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = turtle\nturtle.displayName = 'turtle'\nturtle.aliases = []\nfunction turtle(Prism) {\n Prism.languages.turtle = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'multiline-string': {\n pattern:\n /\"\"\"(?:(?:\"\"?)?(?:[^\"\\\\]|\\\\.))*\"\"\"|'''(?:(?:''?)?(?:[^'\\\\]|\\\\.))*'''/,\n greedy: true,\n alias: 'string',\n inside: {\n comment: /#.*/\n }\n },\n string: {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n url: {\n pattern:\n /<(?:[^\\x00-\\x20<>\"{}|^`\\\\]|\\\\(?:u[\\da-fA-F]{4}|U[\\da-fA-F]{8}))*>/,\n greedy: true,\n inside: {\n punctuation: /[<>]/\n }\n },\n function: {\n pattern:\n /(?:(?![-.\\d\\xB7])[-.\\w\\xB7\\xC0-\\uFFFD]+)?:(?:(?![-.])(?:[-.:\\w\\xC0-\\uFFFD]|%[\\da-f]{2}|\\\\.)+)?/i,\n inside: {\n 'local-name': {\n pattern: /([^:]*:)[\\s\\S]+/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]+/,\n inside: {\n punctuation: /:/\n }\n }\n }\n },\n number: /[+-]?\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[{}.,;()[\\]]|\\^\\^/,\n boolean: /\\b(?:false|true)\\b/,\n keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:base|graph|prefix)\\b/i],\n tag: {\n pattern: /@[a-z]+(?:-[a-z\\d]+)*/i,\n inside: {\n punctuation: /@/\n }\n }\n }\n Prism.languages.trig = Prism.languages['turtle']\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = twig\ntwig.displayName = 'twig'\ntwig.aliases = []\nfunction twig(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.languages.twig = {\n comment: /^\\{#[\\s\\S]*?#\\}$/,\n 'tag-name': {\n pattern: /(^\\{%-?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n }\n },\n keyword: /\\b(?:even|if|odd)\\b/,\n boolean: /\\b(?:false|null|true)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern:\n /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n punctuation: /[()\\[\\]{}:.,]/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'twig') {\n return\n }\n var pattern = /\\{(?:#[\\s\\S]*?#|%[\\s\\S]*?%|\\{[\\s\\S]*?\\})\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig')\n })\n}\n","'use strict'\n\nmodule.exports = typescript\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\nfunction typescript(Prism) {\n ;(function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n builtin:\n /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n }) // The keywords TypeScript adds to JavaScript\n Prism.languages.typescript.keyword.push(\n /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, // This is for `import type *, {}`\n /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n ) // doesn't work with TS because TS is too complex\n delete Prism.languages.typescript['parameter']\n delete Prism.languages.typescript['literal-property'] // a version of typescript specifically for highlighting types\n var typeInside = Prism.languages.extend('typescript', {})\n delete typeInside['class-name']\n Prism.languages.typescript['class-name'].inside = typeInside\n Prism.languages.insertBefore('typescript', 'function', {\n decorator: {\n pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n inside: {\n at: {\n pattern: /^@/,\n alias: 'operator'\n },\n function: /^[\\s\\S]+/\n }\n },\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n })\n Prism.languages.ts = Prism.languages.typescript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = typoscript\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\nfunction typoscript(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\\b/\n Prism.languages.typoscript = {\n comment: [\n {\n // multiline comments /* */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n // double-slash comments - ignored when backslashes or colon is found in front\n // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol\n pattern: /(^|[^\\\\:= \\t]|(?:^|[^= \\t])[ \\t]+)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n },\n {\n // hash comments - ignored when leading quote is found for hex colors in strings\n pattern: /(^|[^\"'])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n function: [\n {\n // old include style\n pattern:\n /<INCLUDE_TYPOSCRIPT:\\s*source\\s*=\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*>/,\n inside: {\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n inside: {\n keyword: keywords\n }\n },\n keyword: {\n pattern: /INCLUDE_TYPOSCRIPT/\n }\n }\n },\n {\n // new include style\n pattern: /@import\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')/,\n inside: {\n string: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/\n }\n }\n ],\n string: {\n pattern: /^([^=]*=[< ]?)(?:(?!\\]\\n).)*/,\n lookbehind: true,\n inside: {\n function: /\\{\\$.*\\}/,\n // constants include\n keyword: keywords,\n number: /^\\d+$/,\n punctuation: /[,|:]/\n }\n },\n keyword: keywords,\n number: {\n // special highlighting for indexes of arrays in tags\n pattern: /\\b\\d+\\s*[.{=]/,\n inside: {\n operator: /[.{=]/\n }\n },\n tag: {\n pattern: /\\.?[-\\w\\\\]+\\.?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:|]/,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/\n }\n Prism.languages.tsconfig = Prism.languages.typoscript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = unrealscript\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\nfunction unrealscript(Prism) {\n Prism.languages.unrealscript = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n category: {\n pattern:\n /(\\b(?:(?:autoexpand|hide|show)categories|var)\\s*\\()[^()]+(?=\\))/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n metadata: {\n pattern: /(\\w\\s*)<\\s*\\w+\\s*=[^<>|=\\r\\n]+(?:\\|\\s*\\w+\\s*=[^<>|=\\r\\n]+)*>/,\n lookbehind: true,\n greedy: true,\n inside: {\n property: /\\b\\w+(?=\\s*=)/,\n operator: /=/,\n punctuation: /[<>|]/\n }\n },\n macro: {\n pattern: /`\\w+/,\n alias: 'property'\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|enum|extends|interface|state(?:\\(\\))?|struct|within)\\s+)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n // https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html\n operator:\n />>|<<|--|\\+\\+|\\*\\*|[-+*/~!=<>$@]=?|&&?|\\|\\|?|\\^\\^?|[?:%]|\\b(?:ClockwiseFrom|Cross|Dot)\\b/,\n punctuation: /[()[\\]{};,.]/\n }\n Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","'use strict'\n\nmodule.exports = uorazor\nuorazor.displayName = 'uorazor'\nuorazor.aliases = []\nfunction uorazor(Prism) {\n Prism.languages.uorazor = {\n 'comment-hash': {\n pattern: /#.*/,\n alias: 'comment',\n greedy: true\n },\n 'comment-slash': {\n pattern: /\\/\\/.*/,\n alias: 'comment',\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n },\n greedy: true\n },\n 'source-layers': {\n pattern:\n /\\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\\b/i,\n alias: 'function'\n },\n 'source-commands': {\n pattern:\n /\\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\\b/,\n alias: 'function'\n },\n 'tag-name': {\n pattern: /(^\\{%-?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n alias: 'punctuation'\n },\n function:\n /\\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\\b/,\n keyword:\n /\\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\\b/,\n boolean: /\\b(?:false|null|true)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern:\n /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n punctuation: /[()\\[\\]{}:.,]/\n }\n}\n","'use strict'\n\nmodule.exports = uri\nuri.displayName = 'uri'\nuri.aliases = ['url']\nfunction uri(Prism) {\n // https://tools.ietf.org/html/rfc3986#appendix-A\n Prism.languages.uri = {\n scheme: {\n pattern: /^[a-z][a-z0-9+.-]*:/im,\n greedy: true,\n inside: {\n 'scheme-delimiter': /:$/\n }\n },\n fragment: {\n pattern: /#[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n inside: {\n 'fragment-delimiter': /^#/\n }\n },\n query: {\n pattern: /\\?[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n inside: {\n 'query-delimiter': {\n pattern: /^\\?/,\n greedy: true\n },\n 'pair-delimiter': /[&;]/,\n pair: {\n pattern: /^[^=][\\s\\S]*/,\n inside: {\n key: /^[^=]+/,\n value: {\n pattern: /(^=)[\\s\\S]+/,\n lookbehind: true\n }\n }\n }\n }\n },\n authority: {\n pattern: RegExp(\n /^\\/\\//.source + // [ userinfo \"@\" ]\n /(?:[\\w\\-.~!$&'()*+,;=%:]*@)?/.source + // host\n ('(?:' + // IP-literal\n /\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]/\n .source +\n '|' + // IPv4address or registered name\n /[\\w\\-.~!$&'()*+,;=%]*/.source +\n ')') + // [ \":\" port ]\n /(?::\\d*)?/.source,\n 'm'\n ),\n inside: {\n 'authority-delimiter': /^\\/\\//,\n 'user-info-segment': {\n pattern: /^[\\w\\-.~!$&'()*+,;=%:]*@/,\n inside: {\n 'user-info-delimiter': /@$/,\n 'user-info': /^[\\w\\-.~!$&'()*+,;=%:]+/\n }\n },\n 'port-segment': {\n pattern: /:\\d*$/,\n inside: {\n 'port-delimiter': /^:/,\n port: /^\\d+/\n }\n },\n host: {\n pattern: /[\\s\\S]+/,\n inside: {\n 'ip-literal': {\n pattern: /^\\[[\\s\\S]+\\]$/,\n inside: {\n 'ip-literal-delimiter': /^\\[|\\]$/,\n 'ipv-future': /^v[\\s\\S]+/,\n 'ipv6-address': /^[\\s\\S]+/\n }\n },\n 'ipv4-address':\n /^(?:(?:[03-9]\\d?|[12]\\d{0,2})\\.){3}(?:[03-9]\\d?|[12]\\d{0,2})$/\n }\n }\n }\n },\n path: {\n pattern: /^[\\w\\-.~!$&'()*+,;=%:@/]+/m,\n inside: {\n 'path-separator': /\\//\n }\n }\n }\n Prism.languages.url = Prism.languages.uri\n}\n","'use strict'\n\nmodule.exports = v\nv.displayName = 'v'\nv.aliases = []\nfunction v(Prism) {\n ;(function (Prism) {\n var interpolationExpr = {\n pattern: /[\\s\\S]+/,\n inside: null\n }\n Prism.languages.v = Prism.languages.extend('clike', {\n string: {\n pattern: /r?([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n alias: 'quoted-string',\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[^{}]*\\}|\\w+(?:\\.\\w+(?:\\([^\\(\\)]*\\))?|\\[[^\\[\\]]+\\])*)/,\n lookbehind: true,\n inside: {\n 'interpolation-variable': {\n pattern: /^\\$\\w[\\s\\S]*$/,\n alias: 'variable'\n },\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n 'interpolation-expression': interpolationExpr\n }\n }\n }\n },\n 'class-name': {\n pattern: /(\\b(?:enum|interface|struct|type)\\s+)(?:C\\.)?\\w+/,\n lookbehind: true\n },\n keyword:\n /(?:\\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\\$(?:else|for|if)|#(?:flag|include))\\b/,\n number:\n /\\b(?:0x[a-f\\d]+(?:_[a-f\\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?)\\b/i,\n operator:\n /~|\\?|[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\.?/,\n builtin:\n /\\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\\b/\n })\n interpolationExpr.inside = Prism.languages.v\n Prism.languages.insertBefore('v', 'string', {\n char: {\n pattern: /`(?:\\\\`|\\\\?[^`]{1,2})`/,\n // using {1,2} instead of `u` flag for compatibility\n alias: 'rune'\n }\n })\n Prism.languages.insertBefore('v', 'operator', {\n attribute: {\n pattern:\n /(^[\\t ]*)\\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\\]/m,\n lookbehind: true,\n alias: 'annotation',\n inside: {\n punctuation: /[\\[\\]]/,\n keyword: /\\w+/\n }\n },\n generic: {\n pattern: /<\\w+>(?=\\s*[\\)\\{])/,\n inside: {\n punctuation: /[<>]/,\n 'class-name': /\\w+/\n }\n }\n })\n Prism.languages.insertBefore('v', 'function', {\n 'generic-function': {\n // e.g. foo<T>( ...\n pattern: /\\b\\w+\\s*<\\w+>(?=\\()/,\n inside: {\n function: /^\\w+/,\n generic: {\n pattern: /<\\w+>/,\n inside: Prism.languages.v.generic.inside\n }\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = vala\nvala.displayName = 'vala'\nvala.aliases = []\nfunction vala(Prism) {\n Prism.languages.vala = Prism.languages.extend('clike', {\n // Classes copied from prism-csharp\n 'class-name': [\n {\n // (Foo bar, Bar baz)\n pattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=(?:\\?\\s+|\\*?\\s+\\*?)\\w)/,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // [Foo]\n pattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo : Bar\n pattern:\n /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo\n pattern:\n /((?:\\b(?:class|enum|interface|new|struct)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n ],\n keyword:\n /\\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\\b/i,\n function: /\\b\\w+(?=\\s*\\()/,\n number:\n /(?:\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?:f|u?l?)?/i,\n operator:\n /\\+\\+|--|&&|\\|\\||<<=?|>>=?|=>|->|~|[+\\-*\\/%&^|=!<>]=?|\\?\\??|\\.\\.\\./,\n punctuation: /[{}[\\];(),.:]/,\n constant: /\\b[A-Z0-9_]+\\b/\n })\n Prism.languages.insertBefore('vala', 'string', {\n 'raw-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n 'template-string': {\n pattern: /@\"[\\s\\S]*?\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$(?:\\([^)]*\\)|[a-zA-Z]\\w*)/,\n inside: {\n delimiter: {\n pattern: /^\\$\\(?|\\)$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.vala\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('vala', 'keyword', {\n regex: {\n pattern:\n /\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[imsx]{0,4}(?=\\s*(?:$|[\\r\\n,.;})\\]]))/,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\//,\n 'regex-flags': /^[a-z]+$/\n }\n }\n })\n}\n","'use strict'\nvar refractorBasic = require('./basic.js')\nmodule.exports = vbnet\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\nfunction vbnet(Prism) {\n Prism.register(refractorBasic)\n Prism.languages.vbnet = Prism.languages.extend('basic', {\n comment: [\n {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n {\n pattern: /(^|[^\\\\:])'.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,\n punctuation: /[,;:(){}]/\n })\n}\n","'use strict'\n\nmodule.exports = velocity\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\nfunction velocity(Prism) {\n ;(function (Prism) {\n Prism.languages.velocity = Prism.languages.extend('markup', {})\n var velocity = {\n variable: {\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+\\])*|\\{[^}]+\\})/i,\n lookbehind: true,\n inside: {} // See below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n number: /\\b\\d+\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator:\n /[=!<>]=?|[+*/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,\n punctuation: /[(){}[\\]:,.]/\n }\n velocity.variable.inside = {\n string: velocity['string'],\n function: {\n pattern: /([^\\w-])[a-z][\\w-]*(?=\\()/,\n lookbehind: true\n },\n number: velocity['number'],\n boolean: velocity['boolean'],\n punctuation: velocity['punctuation']\n }\n Prism.languages.insertBefore('velocity', 'comment', {\n unparsed: {\n pattern: /(^|[^\\\\])#\\[\\[[\\s\\S]*?\\]\\]#/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^#\\[\\[|\\]\\]#$/\n }\n },\n 'velocity-comment': [\n {\n pattern: /(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n {\n pattern: /(^|[^\\\\])##.*/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n }\n ],\n directive: {\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})|\\bin\\b/,\n inside: {\n punctuation: /[{}]/\n }\n },\n rest: velocity\n }\n },\n variable: velocity['variable']\n })\n Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =\n Prism.languages.velocity\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = verilog\nverilog.displayName = 'verilog'\nverilog.aliases = []\nfunction verilog(Prism) {\n Prism.languages.verilog = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'kernel-function': {\n // support for any kernel function (ex: $display())\n pattern: /\\B\\$\\w+\\b/,\n alias: 'property'\n },\n // support for user defined constants (ex: `define)\n constant: /\\B`\\w+\\b/,\n function: /\\b\\w+(?=\\()/,\n // support for verilog and system verilog keywords\n keyword:\n /\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,\n // bold highlighting for all verilog and system verilog logic blocks\n important: /\\b(?:always|always_comb|always_ff|always_latch)\\b(?: *@)?/,\n // support for time ticks, vectors, and real numbers\n number:\n /\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b(?:\\d*[._])?\\d+(?:e[-+]?\\d+)?/i,\n operator: /[-+{}^~%*\\/?=!<>&|]+/,\n punctuation: /[[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vhdl\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\nfunction vhdl(Prism) {\n Prism.languages.vhdl = {\n comment: /--.+/,\n // support for all logic vectors\n 'vhdl-vectors': {\n pattern: /\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,\n alias: 'number'\n },\n // support for operator overloading included\n 'quoted-function': {\n pattern: /\"\\S+?\"(?=\\()/,\n alias: 'function'\n },\n string: /\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n constant: /\\b(?:library|use)\\b/i,\n // support for predefined attributes included\n keyword:\n /\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\w+(?=\\()/,\n // decimal, based, physical, and exponential numbers supported\n number: /'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,\n operator:\n /[<>]=?|:=|[-+*/&=]|\\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\\b/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vim\nvim.displayName = 'vim'\nvim.aliases = []\nfunction vim(Prism) {\n Prism.languages.vim = {\n string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n comment: /\".*/,\n function: /\\b\\w+(?=\\()/,\n keyword:\n /\\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n builtin:\n /\\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator:\n /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n punctuation: /[{}[\\](),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = visualBasic\nvisualBasic.displayName = 'visualBasic'\nvisualBasic.aliases = []\nfunction visualBasic(Prism) {\n Prism.languages['visual-basic'] = {\n comment: {\n pattern: /(?:['‘’]|REM\\b)(?:[^\\r\\n_]|_(?:\\r\\n?|\\n)?)*/i,\n inside: {\n keyword: /^REM/i\n }\n },\n directive: {\n pattern:\n /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\\b_[ \\t]*(?:\\r\\n?|\\n)|.)+/i,\n alias: 'property',\n greedy: true\n },\n string: {\n pattern: /\\$?[\"“â€](?:[\"“â€]{2}|[^\"“â€])*[\"“â€]C?/i,\n greedy: true\n },\n date: {\n pattern:\n /#[ \\t]*(?:\\d+([/-])\\d+\\1\\d+(?:[ \\t]+(?:\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?))?|\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?)[ \\t]*#/i,\n alias: 'number'\n },\n number:\n /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:[FRD]|U?[ILS])?/i,\n boolean: /\\b(?:False|Nothing|True)\\b/i,\n keyword:\n /\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,\n operator: /[+\\-*/\\\\^<=>&#@$%!]|\\b_(?=[ \\t]*[\\r\\n])/,\n punctuation: /[{}().,:?]/\n }\n Prism.languages.vb = Prism.languages['visual-basic']\n Prism.languages.vba = Prism.languages['visual-basic']\n}\n","'use strict'\n\nmodule.exports = warpscript\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\nfunction warpscript(Prism) {\n Prism.languages.warpscript = {\n comment: /#.*|\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern:\n /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'|<'(?:[^\\\\']|'(?!>)|\\\\.)*'>/,\n greedy: true\n },\n variable: /\\$\\S+/,\n macro: {\n pattern: /@\\S+/,\n alias: 'property'\n },\n // WarpScript doesn't have any keywords, these are all functions under the control category\n // https://www.warp10.io/tags/control\n keyword:\n /\\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\\b/,\n number:\n /[+-]?\\b(?:NaN|Infinity|\\d+(?:\\.\\d*)?(?:[Ee][+-]?\\d+)?|0x[\\da-fA-F]+|0b[01]+)\\b/,\n boolean: /\\b(?:F|T|false|true)\\b/,\n punctuation: /<%|%>|[{}[\\]()]/,\n // Some operators from the \"operators\" category\n // https://www.warp10.io/tags/operators\n operator:\n /==|&&?|\\|\\|?|\\*\\*?|>>>?|<<|[<>!~]=?|[-/%^]|\\+!?|\\b(?:AND|NOT|OR)\\b/\n }\n}\n","'use strict'\n\nmodule.exports = wasm\nwasm.displayName = 'wasm'\nwasm.aliases = []\nfunction wasm(Prism) {\n Prism.languages.wasm = {\n comment: [\n /\\(;[\\s\\S]*?;\\)/,\n {\n pattern: /;;.*/,\n greedy: true\n }\n ],\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n greedy: true\n },\n keyword: [\n {\n pattern: /\\b(?:align|offset)=/,\n inside: {\n operator: /=/\n }\n },\n {\n pattern:\n /\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n /\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n ],\n variable: /\\$[\\w!#$%&'*+\\-./:<=>?@\\\\^`|~]+/,\n number:\n /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,\n punctuation: /[()]/\n }\n}\n","'use strict'\n\nmodule.exports = webIdl\nwebIdl.displayName = 'webIdl'\nwebIdl.aliases = []\nfunction webIdl(Prism) {\n ;(function (Prism) {\n var id = /(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])/.source\n var type =\n '(?:' +\n /\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])/.source +\n '|' +\n /\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])/.source +\n '|' +\n /(?!(?:unrestricted|unsigned)\\b)/.source +\n id +\n /(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?/.source +\n ')' +\n /(?:\\s*\\?)?/.source\n var typeInside = {}\n Prism.languages['web-idl'] = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n namespace: {\n pattern: RegExp(/(\\bnamespace\\s+)/.source + id),\n lookbehind: true\n },\n 'class-name': [\n {\n pattern:\n /(^|[^\\w-])(?:iterable|maplike|setlike)\\s*<(?:[^<>]|<[^<>]*>)*>/,\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: RegExp(\n /(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)/.source +\n type\n ),\n lookbehind: true,\n inside: typeInside\n },\n {\n // callback return type\n pattern: RegExp(\n '(' + /\\bcallback\\s+/.source + id + /\\s*=\\s*/.source + ')' + type\n ),\n lookbehind: true,\n inside: typeInside\n },\n {\n // typedef\n pattern: RegExp(/(\\btypedef\\b\\s*)/.source + type),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: RegExp(\n /(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)/\n .source + id\n ),\n lookbehind: true\n },\n {\n // inheritance\n pattern: RegExp(/(:\\s*)/.source + id),\n lookbehind: true\n }, // includes and implements\n RegExp(id + /(?=\\s+(?:implements|includes)\\b)/.source),\n {\n pattern: RegExp(/(\\b(?:implements|includes)\\s+)/.source + id),\n lookbehind: true\n },\n {\n // function return type, parameter types, and dictionary members\n pattern: RegExp(\n type +\n '(?=' +\n /\\s*(?:\\.{3}\\s*)?/.source +\n id +\n /\\s*[(),;=]/.source +\n ')'\n ),\n inside: typeInside\n }\n ],\n builtin:\n /\\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\\b/,\n keyword: [\n /\\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\\b/, // type keywords\n /\\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\\b/\n ],\n boolean: /\\b(?:false|true)\\b/,\n number: {\n pattern:\n /(^|[^\\w-])-?(?:0x[0-9a-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|NaN|Infinity)(?![\\w-])/i,\n lookbehind: true\n },\n operator: /\\.{3}|[=:?<>-]/,\n punctuation: /[(){}[\\].,;]/\n }\n for (var key in Prism.languages['web-idl']) {\n if (key !== 'class-name') {\n typeInside[key] = Prism.languages['web-idl'][key]\n }\n }\n Prism.languages['webidl'] = Prism.languages['web-idl']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = wiki\nwiki.displayName = 'wiki'\nwiki.aliases = []\nfunction wiki(Prism) {\n Prism.languages.wiki = Prism.languages.extend('markup', {\n 'block-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n alias: 'comment'\n },\n heading: {\n pattern: /^(=+)[^=\\r\\n].*?\\1/m,\n inside: {\n punctuation: /^=+|=+$/,\n important: /.+/\n }\n },\n emphasis: {\n // TODO Multi-line\n pattern: /('{2,5}).+?\\1/,\n inside: {\n 'bold-italic': {\n pattern: /(''''').+?(?=\\1)/,\n lookbehind: true,\n alias: ['bold', 'italic']\n },\n bold: {\n pattern: /(''')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n italic: {\n pattern: /('')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n punctuation: /^''+|''+$/\n }\n },\n hr: {\n pattern: /^-{4,}/m,\n alias: 'punctuation'\n },\n url: [\n /ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:PMID|RFC) +\\d+/i,\n /\\[\\[.+?\\]\\]|\\[.+?\\]/\n ],\n variable: [\n /__[A-Z]+__/, // FIXME Nested structures should be handled\n // {{formatnum:{{#expr:{{{3}}}}}}}\n /\\{{3}.+?\\}{3}/,\n /\\{\\{.+?\\}\\}/\n ],\n symbol: [/^#redirect/im, /~{3,5}/],\n // Handle table attrs:\n // {|\n // ! style=\"text-align:left;\"| Item\n // |}\n 'table-tag': {\n pattern: /((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,\n lookbehind: true,\n inside: {\n 'table-bar': {\n pattern: /\\|$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.markup['tag'].inside\n }\n },\n punctuation: /^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m\n })\n Prism.languages.insertBefore('wiki', 'tag', {\n // Prevent highlighting inside <nowiki>, <source> and <pre> tags\n nowiki: {\n pattern: /<(nowiki|pre|source)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i,\n inside: {\n tag: {\n pattern: /<(?:nowiki|pre|source)\\b[^>]*>|<\\/(?:nowiki|pre|source)>/i,\n inside: Prism.languages.markup['tag'].inside\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = wolfram\nwolfram.displayName = 'wolfram'\nwolfram.aliases = ['mathematica', 'wl', 'nb']\nfunction wolfram(Prism) {\n Prism.languages.wolfram = {\n // Allow one level of nesting - note: regex taken from applescipt\n comment: /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\\b/,\n context: {\n pattern: /\\b\\w+`+\\w*/,\n alias: 'class-name'\n },\n blank: {\n pattern: /\\b\\w+_\\b/,\n alias: 'regex'\n },\n 'global-variable': {\n pattern: /\\$\\w+/,\n alias: 'variable'\n },\n boolean: /\\b(?:False|True)\\b/,\n number:\n /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n operator:\n /\\/\\.|;|=\\.|\\^=|\\^:=|:=|<<|>>|<\\||\\|>|:>|\\|->|->|<-|@@@|@@|@|\\/@|=!=|===|==|=|\\+|-|\\^|\\[\\/-+%=\\]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.mathematica = Prism.languages.wolfram\n Prism.languages.wl = Prism.languages.wolfram\n Prism.languages.nb = Prism.languages.wolfram\n}\n","'use strict'\n\nmodule.exports = wren\nwren.displayName = 'wren'\nwren.aliases = []\nfunction wren(Prism) {\n // https://wren.io/\n Prism.languages.wren = {\n // Multiline comments in Wren can have nested multiline comments\n // Comments: // and /* */\n comment: [\n {\n // support 3 levels of nesting\n // regex: \\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/\n pattern:\n /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*))*\\*\\/)*\\*\\/)*\\*\\//,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // Triple quoted strings are multiline but cannot have interpolation (raw strings)\n // Based on prism-python.js\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n // see below\n 'string-literal': null,\n // #!/usr/bin/env wren on the first line\n hashbang: {\n pattern: /^#!\\/.+/,\n greedy: true,\n alias: 'comment'\n },\n // Attributes are special keywords to add meta data to classes\n attribute: {\n // #! attributes are stored in class properties\n // #!myvar = true\n // #attributes are not stored and dismissed at compilation\n pattern: /#!?[ \\t\\u3000]*\\w+/,\n alias: 'keyword'\n },\n 'class-name': [\n {\n // class definition\n // class Meta {}\n pattern: /(\\bclass\\s+)\\w+/,\n lookbehind: true\n }, // A class must always start with an uppercase.\n // File.read\n /\\b[A-Z][a-z\\d_]*\\b/\n ],\n // A constant can be a variable, class, property or method. Just named in all uppercase letters\n constant: /\\b[A-Z][A-Z\\d_]*\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n keyword:\n /\\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n // Functions can be Class.method()\n function: /\\b[a-z_]\\w*(?=\\s*[({])/i,\n operator: /<<|>>|[=!<>]=?|&&|\\|\\||[-+*/%~^&|?:]|\\.{2,3}/,\n punctuation: /[\\[\\](){}.,;]/\n }\n Prism.languages.wren['string-literal'] = {\n // A single quote string is multiline and can have interpolation (similar to JS backticks ``)\n pattern:\n /(^|[^\\\\\"])\"(?:[^\\\\\"%]|\\\\[\\s\\S]|%(?!\\()|%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\))*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n // \"%(interpolation)\"\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\)/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /^(%\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: Prism.languages.wren\n },\n 'interpolation-punctuation': {\n pattern: /^%\\(|\\)$/,\n alias: 'punctuation'\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n}\n","'use strict'\n\nmodule.exports = xeora\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\nfunction xeora(Prism) {\n ;(function (Prism) {\n Prism.languages.xeora = Prism.languages.extend('markup', {\n constant: {\n pattern: /\\$(?:DomainContents|PageRenderDuration)\\$/,\n inside: {\n punctuation: {\n pattern: /\\$/\n }\n }\n },\n variable: {\n pattern: /\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[$.]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n 'function-inline': {\n pattern:\n /\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\$/,\n inside: {\n variable: {\n pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,\n inside: {\n punctuation: {\n pattern: /[,.|]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n punctuation: {\n pattern: /\\$\\w:|[$:?.,|]/\n }\n },\n alias: 'function'\n },\n 'function-block': {\n pattern:\n /\\$XF:\\{[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\}:XF\\$/,\n inside: {\n punctuation: {\n pattern: /[$:{}?.,|]/\n }\n },\n alias: 'function'\n },\n 'directive-inline': {\n pattern: /\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\/\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n }\n },\n alias: 'function'\n },\n 'directive-block-open': {\n pattern:\n /\\$\\w+:\\{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\w.]+:\\{(?:![A-Z]+)?/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n },\n attribute: {\n pattern: /![A-Z]+$/,\n inside: {\n punctuation: {\n pattern: /!/\n }\n },\n alias: 'keyword'\n }\n },\n alias: 'function'\n },\n 'directive-block-separator': {\n pattern: /\\}:[-\\w.]+:\\{/,\n inside: {\n punctuation: {\n pattern: /[:{}]/\n }\n },\n alias: 'function'\n },\n 'directive-block-close': {\n pattern: /\\}:[-\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[:{}$]/\n }\n },\n alias: 'function'\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n variable: Prism.languages.xeora['function-inline'].inside['variable']\n },\n Prism.languages.xeora['function-block']\n )\n Prism.languages.xeoracube = Prism.languages.xeora\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = xmlDoc\nxmlDoc.displayName = 'xmlDoc'\nxmlDoc.aliases = []\nfunction xmlDoc(Prism) {\n ;(function (Prism) {\n /**\n * If the given language is present, it will insert the given doc comment grammar token into it.\n *\n * @param {string} lang\n * @param {any} docComment\n */\n function insertDocComment(lang, docComment) {\n if (Prism.languages[lang]) {\n Prism.languages.insertBefore(lang, 'comment', {\n 'doc-comment': docComment\n })\n }\n }\n var tag = Prism.languages.markup.tag\n var slashDocComment = {\n pattern: /\\/\\/\\/.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n var tickDocComment = {\n pattern: /'''.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n insertDocComment('csharp', slashDocComment)\n insertDocComment('fsharp', slashDocComment)\n insertDocComment('vbnet', tickDocComment)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = xojo\nxojo.displayName = 'xojo'\nxojo.aliases = []\nfunction xojo(Prism) {\n Prism.languages.xojo = {\n comment: {\n pattern: /(?:'|\\/\\/|Rem\\b).+/i,\n greedy: true\n },\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n number: [/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i, /&[bchou][a-z\\d]+/i],\n directive: {\n pattern: /#(?:Else|ElseIf|Endif|If|Pragma)\\b/i,\n alias: 'property'\n },\n keyword:\n /\\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\\b/i,\n operator:\n /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\\b/i,\n punctuation: /[.,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = xquery\nxquery.displayName = 'xquery'\nxquery.aliases = []\nfunction xquery(Prism) {\n ;(function (Prism) {\n Prism.languages.xquery = Prism.languages.extend('markup', {\n 'xquery-comment': {\n pattern: /\\(:[\\s\\S]*?:\\)/,\n greedy: true,\n alias: 'comment'\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,\n greedy: true\n },\n extension: {\n pattern: /\\(#.+?#\\)/,\n alias: 'symbol'\n },\n variable: /\\$[-\\w:]+/,\n axis: {\n pattern:\n /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,\n lookbehind: true,\n alias: 'operator'\n },\n 'keyword-operator': {\n pattern:\n /(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern:\n /(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,\n lookbehind: true\n },\n function: /[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\n 'xquery-element': {\n pattern: /(element\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'tag'\n },\n 'xquery-attribute': {\n pattern: /(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'attr-name'\n },\n builtin: {\n pattern:\n /(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,\n operator: [\n /[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ],\n punctuation: /[[\\](){},;:/]/\n })\n Prism.languages.xquery.tag.pattern =\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n Prism.languages.xquery['tag'].inside['attr-value'].pattern =\n /=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['punctuation'] =\n /^=\"|\"$/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {\n // Allow for two levels of nesting\n pattern: /\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}/,\n inside: Prism.languages.xquery,\n alias: 'language-xquery'\n } // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{' && // Ignore `{{`\n (!tokens[i + 1] ||\n tokens[i + 1].type !== 'punctuation' ||\n tokens[i + 1].content !== '{') &&\n (!tokens[i - 1] ||\n tokens[i - 1].type !== 'plain-text' ||\n tokens[i - 1].content !== '{')\n ) {\n // Here we might have entered an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else if (token.type !== 'comment') {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside an XQuery expression.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n if (/^\\s+$/.test(plainText)) {\n tokens[i] = plainText\n } else {\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'xquery') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = yaml\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\nfunction yaml(Prism) {\n ;(function (Prism) {\n // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n var anchorOrAlias = /[*&][^\\s[\\]{},]+/ // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n var tag =\n /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/ // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n var properties =\n '(?:' +\n tag.source +\n '(?:[ \\t]+' +\n anchorOrAlias.source +\n ')?|' +\n anchorOrAlias.source +\n '(?:[ \\t]+' +\n tag.source +\n ')?)' // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n // This is a simplified version that doesn't support \"#\" and multiline keys\n // All these long scarry character classes are simplified versions of YAML's characters\n var plainKey =\n /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n /<PLAIN>/g,\n function () {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n .source\n }\n )\n var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n /**\n *\n * @param {string} value\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function createValuePattern(value, flags) {\n flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n var pattern =\n /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<value>>/g, function () {\n return value\n })\n return RegExp(pattern, flags)\n }\n Prism.languages.yaml = {\n scalar: {\n pattern: RegExp(\n /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n /<<prop>>/g,\n function () {\n return properties\n }\n )\n ),\n lookbehind: true,\n alias: 'string'\n },\n comment: /#.*/,\n key: {\n pattern: RegExp(\n /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<key>>/g, function () {\n return '(?:' + plainKey + '|' + string + ')'\n })\n ),\n lookbehind: true,\n greedy: true,\n alias: 'atrule'\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'important'\n },\n datetime: {\n pattern: createValuePattern(\n /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n .source\n ),\n lookbehind: true,\n alias: 'number'\n },\n boolean: {\n pattern: createValuePattern(/false|true/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n null: {\n pattern: createValuePattern(/null|~/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n string: {\n pattern: createValuePattern(string),\n lookbehind: true,\n greedy: true\n },\n number: {\n pattern: createValuePattern(\n /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n tag: tag,\n important: anchorOrAlias,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n }\n Prism.languages.yml = Prism.languages.yaml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = yang\nyang.displayName = 'yang'\nyang.aliases = []\nfunction yang(Prism) {\n Prism.languages.yang = {\n // https://tools.ietf.org/html/rfc6020#page-34\n // http://www.yang-central.org/twiki/bin/view/Main/YangExamples\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"|'[^']*'/,\n greedy: true\n },\n keyword: {\n pattern: /(^|[{};\\r\\n][ \\t]*)[a-z_][\\w.-]*/i,\n lookbehind: true\n },\n namespace: {\n pattern: /(\\s)[a-z_][\\w.-]*(?=:)/i,\n lookbehind: true\n },\n boolean: /\\b(?:false|true)\\b/,\n operator: /\\+/,\n punctuation: /[{};:]/\n }\n}\n","'use strict'\n\nmodule.exports = zig\nzig.displayName = 'zig'\nzig.aliases = []\nfunction zig(Prism) {\n ;(function (Prism) {\n function literal(str) {\n return function () {\n return str\n }\n }\n var keyword =\n /\\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\\b/\n var IDENTIFIER = '\\\\b(?!' + keyword.source + ')(?!\\\\d)\\\\w+\\\\b'\n var ALIGN = /align\\s*\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var PREFIX_TYPE_OP =\n /(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)/.source.replace(\n /<ALIGN>/g,\n literal(ALIGN)\n )\n var SUFFIX_EXPR =\n /(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))/.source.replace(\n /<ID>/g,\n literal(IDENTIFIER)\n )\n var TYPE =\n '(?!\\\\s)(?:!?\\\\s*(?:' + PREFIX_TYPE_OP + '\\\\s*)*' + SUFFIX_EXPR + ')+'\n /*\n * A simplified grammar for Zig compile time type literals:\n *\n * TypeExpr = ( \"!\"? PREFIX_TYPE_OP* SUFFIX_EXPR )+\n *\n * SUFFIX_EXPR = ( \\b \"promise\" \\b | ( \\b \"error\" \".\" )? IDENTIFIER ( \".\" IDENTIFIER )* (?! \\s+ IDENTIFIER ) )\n *\n * PREFIX_TYPE_OP = \"?\"\n * | \\b \"promise\" \"->\"\n * | ( \"[\" [^\\[\\]]* \"]\" | \"*\" | \"**\" ) ( ALIGN | \"const\" \\b | \"volatile\" \\b | \"allowzero\" \\b )*\n *\n * ALIGN = \"align\" \"(\" ( [^()] | \"(\" [^()]* \")\" )* \")\"\n *\n * IDENTIFIER = \\b (?! KEYWORD ) [a-zA-Z_] \\w* \\b\n *\n */\n Prism.languages.zig = {\n comment: [\n {\n pattern: /\\/\\/[/!].*/,\n alias: 'doc-comment'\n },\n /\\/{2}.*/\n ],\n string: [\n {\n // \"string\" and c\"string\"\n pattern: /(^|[^\\\\@])c?\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n {\n // multiline strings and c-strings\n pattern: /([\\r\\n])([ \\t]+c?\\\\{2}).*(?:(?:\\r\\n?|\\n)\\2.*)*/,\n lookbehind: true,\n greedy: true\n }\n ],\n char: {\n // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n pattern:\n /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|[\\uD800-\\uDFFF]{2}|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n lookbehind: true,\n greedy: true\n },\n builtin: /\\B@(?!\\d)\\w+(?=\\s*\\()/,\n label: {\n pattern:\n /(\\b(?:break|continue)\\s*:\\s*)\\w+\\b|\\b(?!\\d)\\w+\\b(?=\\s*:\\s*(?:\\{|while\\b))/,\n lookbehind: true\n },\n 'class-name': [\n // const Foo = struct {};\n /\\b(?!\\d)\\w+(?=\\s*=\\s*(?:(?:extern|packed)\\s+)?(?:enum|struct|union)\\s*[({])/,\n {\n // const x: i32 = 9;\n // var x: Bar;\n // fn foo(x: bool, y: f32) void {}\n pattern: RegExp(\n /(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n // extern fn foo(x: f64) f64; (optional alignment)\n pattern: RegExp(\n /(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n 'builtin-type': {\n pattern:\n /\\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\\b/,\n alias: 'keyword'\n },\n keyword: keyword,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n number:\n /\\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\\d]+(?:\\.[a-fA-F\\d]*)?(?:[pP][+-]?[a-fA-F\\d]+)?|\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator:\n /\\.[*?]|\\.{2,3}|[-=]>|\\*\\*|\\+\\+|\\|\\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,\n punctuation: /[.:,;(){}[\\]]/\n }\n Prism.languages.zig['class-name'].forEach(function (obj) {\n if (obj.inside === null) {\n obj.inside = Prism.languages.zig\n }\n })\n })(Prism)\n}\n","/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar empty = ''\nvar space = ' '\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g\n\nfunction parse(value) {\n var input = String(value || empty).trim()\n return input === empty ? [] : input.split(whiteSpace)\n}\n\nfunction stringify(values) {\n return values.join(space).trim()\n}\n","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n *\n * > 👉 **Note**: you should use markdown.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // To do: next major: expose `undefined` everywhere instead of `null`.\n constructor(reason, place, origin) {\n /** @type {[string | null, string | null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // To do: next major: deep clone.\n // @ts-expect-error: looks like a position.\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n // To do: next major: deep clone.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // To do: next major: deep clone.\n position.start = place\n }\n }\n\n // Fields from `Error`.\n /**\n * Serialized positional info of error.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(place) || '1:1'\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = typeof reason === 'object' ? reason.message : reason\n\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack = ''\n\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack\n }\n\n /**\n * Reason for message.\n *\n * > 👉 **Note**: you should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /* eslint-disable no-unused-expressions */\n /**\n * State of problem.\n *\n * * `true` — marks associated file as no longer processable (error)\n * * `false` — necessitates a (potential) change (warning)\n * * `null | undefined` — for things that might not need changing (info)\n *\n * @type {boolean | null | undefined}\n */\n this.fatal\n\n /**\n * Starting line of error.\n *\n * @type {number | null}\n */\n this.line = position.start.line\n\n /**\n * Starting column of error.\n *\n * @type {number | null}\n */\n this.column = position.start.column\n\n /**\n * Full unist position.\n *\n * @type {Position | null}\n */\n this.position = position\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | null}\n */\n this.source = parts[0]\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | null}\n */\n this.ruleId = parts[1]\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | null}\n */\n this.file\n\n // The following fields are “well knownâ€.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | null}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | null}\n */\n this.expected\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | null}\n */\n this.url\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | null}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileUrlOrPath) {\n return (\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.href &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.origin\n )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string | URL} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n *\n * This is a copy of the types from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Options | URL | Value | VFile} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {Value | null | undefined} [value]\n * Set `value`.\n * @property {string | null | undefined} [cwd]\n * Set `cwd`.\n * @property {Array<string> | null | undefined} [history]\n * Set `history`.\n * @property {URL | string | null | undefined} [path]\n * Set `path`.\n * @property {string | null | undefined} [basename]\n * Set `basename`.\n * @property {string | null | undefined} [stem]\n * Set `stem`.\n * @property {string | null | undefined} [extname]\n * Set `extname`.\n * @property {string | null | undefined} [dirname]\n * Set `dirname`.\n * @property {Data | null | undefined} [data]\n * Set `data`.\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n * An array of URLs to the original source files.\n * @property {Array<string>} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array<VFile>} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Buffer` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-knownâ€.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {string | URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Buffer`\n * (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding || undefined)\n }\n\n /**\n * Create a warning message associated with the file.\n *\n * Its `fatal` is set to `false` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Create an info message associated with the file.\n *\n * Its `fatal` is set to `null` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Create a fatal error associated with the file.\n *\n * Its `fatal` is set to `true` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Message.\n * @throws {VFileMessage}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {void}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Buffer}\n * Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n return bufferLike(value)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record<string, unknown>} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record<string, unknown>|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `â‰` represents a tab (plus how much it expands) and `â ` represents a\n * single space.\n *\n * ```markdown\n * â‰\n * â â â â \n * â‰â \n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce†into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake†it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes†the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `â ` represents a space character.\n *\n * ```markdown\n * > | â â âŠ\n * ^\n * > | âŠ\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `â ` represents a space character.\n *\n * ```markdown\n * > | â â âŠ\n * ^\n * > | âŠ\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport {splice} from 'micromark-util-chunked'\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array<Event>} */\n let parameters\n /** @type {Array<Event>} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array<number>} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record<string, number>} */\n const gaps = {}\n /** @type {Array<Chunk>} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n const columnStart = {}\n /** @type {Array<Construct>} */\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n let chunks = []\n /** @type {Array<Token>} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live bindingâ€, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercaseâ€, such as U+03F4 (`Ï´`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercaseâ€, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible†hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML “block†tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw†tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array<Event>} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * \n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array<Event>} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code> | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string†content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n *\n * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Node | Fragment>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array<number>} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array<StaticPhrasingContent>} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Extension | Array<Extension>>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid†handler will be called.\n * If `value` has an unknown `key`, the special “unknown†handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @typedef {import('./types.js').Options} Options\n * @typedef {import('./types.js').State} State\n */\n\n/**\n * @param {State} base\n * @param {Options} extension\n * @returns {State}\n */\nexport function configure(base, extension) {\n let index = -1\n /** @type {keyof Options} */\n let key\n\n // First do subextensions.\n if (extension.extensions) {\n while (++index < extension.extensions.length) {\n configure(base, extension.extensions[index])\n }\n }\n\n for (key in extension) {\n if (key === 'extensions') {\n // Empty.\n } else if (key === 'unsafe' || key === 'join') {\n /* c8 ignore next 2 */\n // @ts-expect-error: hush.\n base[key] = [...(base[key] || []), ...(extension[key] || [])]\n } else if (key === 'handlers') {\n base[key] = Object.assign(base[key], extension[key] || {})\n } else {\n // @ts-expect-error: hush.\n base.options[key] = extension[key]\n }\n }\n\n return base\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n * @typedef {import('../types.js').ConstructName} ConstructName\n */\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parent | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n !state.options.fences &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['quote'], null | undefined>}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\n\nemphasis.peek = emphasisPeek\n\n// To do: there are cases where emphasis cannot “form†depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parent | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['emphasis'], null | undefined>}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<Ancestor>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor<Node>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,\n * Extract<Descendant, Parent>\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */\n\nimport {visit, EXIT} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, (node) => {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @typedef {import('mdast').HTML} HTML\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {HTML} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Unsafe} pattern\n * @returns {RegExp}\n */\nexport function patternCompile(pattern) {\n if (!pattern._compiled) {\n const before =\n (pattern.atBreak ? '[\\\\r\\\\n][\\\\t ]*' : '') +\n (pattern.before ? '(?:' + pattern.before + ')' : '')\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (pattern.after ? '(?:' + pattern.after + ')' : ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternCompile} from '../util/pattern-compile.js'\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Exit} Exit\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bulletOrdered'], null | undefined>}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['rule'], null | undefined>}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('unist-util-is').AssertPredicate<PhrasingContent>} AssertPredicatePhrasing\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * @param\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\nexport const phrasing = /** @type {AssertPredicatePhrasing} */ (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n 'link',\n 'linkReference',\n 'strong',\n 'text'\n ])\n)\n","/**\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {checkStrong} from '../util/check-strong.js'\n\nstrong.peek = strongPeek\n\n// To do: there are cases where emphasis cannot “form†depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n}\n\n/**\n * @param {Strong} _\n * @param {Parent | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['strong'], null | undefined>}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['fence'], null | undefined>}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value =\n '&#x' +\n value.charCodeAt(0).toString(16).toUpperCase() +\n ';' +\n value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkBulletOrderedOther} from '../util/check-bullet-ordered-other.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parent | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? checkBulletOrderedOther(state)\n : checkBulletOther(state)\n const bulletLastUsed = state.bulletLastUsed\n let useDifferentMarker = false\n\n if (\n parent &&\n // Explicit `other` set.\n (node.ordered\n ? state.options.bulletOrderedOther\n : state.options.bulletOther) &&\n bulletLastUsed &&\n bullet === bulletLastUsed\n ) {\n useDifferentMarker = true\n }\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\nimport {checkBulletOrdered} from './check-bullet-ordered.js'\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bulletOrdered'], null | undefined>}\n */\nexport function checkBulletOrderedOther(state) {\n const bulletOrdered = checkBulletOrdered(state)\n const bulletOrderedOther = state.options.bulletOrderedOther\n\n if (!bulletOrderedOther) {\n return bulletOrdered === '.' ? ')' : '.'\n }\n\n if (bulletOrderedOther !== '.' && bulletOrderedOther !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOrderedOther +\n '` for `options.bulletOrderedOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOrderedOther === bulletOrdered) {\n throw new Error(\n 'Expected `bulletOrdered` (`' +\n bulletOrdered +\n '`) and `bulletOrderedOther` (`' +\n bulletOrderedOther +\n '`) to be different'\n )\n }\n\n return bulletOrderedOther\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parent | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['listItemIndent'], null | undefined>}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'tab'\n\n // To do: remove in a major.\n // @ts-expect-error: deprecated.\n if (style === 1 || style === '1') {\n return 'one'\n }\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some((d) => phrasing(d))\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow\n // @ts-expect-error: `root`s are supposed to have one type of content\n return fn.call(state, node, info)\n}\n","/**\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Info} Info\n */\n\n/**\n * @param {Text} node\n * @param {Parent | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parent | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['ruleRepetition'], null | undefined>}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('./types.js').Join} Join\n */\n\nimport {formatCodeAsIndented} from './util/format-code-as-indented.js'\nimport {formatHeadingAsSetext} from './util/format-heading-as-setext.js'\n\n/** @type {Array<Join>} */\nexport const join = [joinDefaults]\n\n/** @type {Join} */\nfunction joinDefaults(left, right, parent, state) {\n // Indented code after list or another indented code.\n if (\n right.type === 'code' &&\n formatCodeAsIndented(right, state) &&\n (left.type === 'list' ||\n (left.type === right.type && formatCodeAsIndented(left, state)))\n ) {\n return false\n }\n\n // Two lists with the same marker.\n if (\n left.type === 'list' &&\n left.type === right.type &&\n Boolean(left.ordered) === Boolean(right.ordered) &&\n !(left.ordered\n ? state.options.bulletOrderedOther\n : state.options.bulletOther)\n ) {\n return false\n }\n\n // Join children of a list or an item.\n // In which case, `parent` has a `spread` field.\n if ('spread' in parent && typeof parent.spread === 'boolean') {\n if (\n left.type === 'paragraph' &&\n // Two paragraphs.\n (left.type === right.type ||\n right.type === 'definition' ||\n // Paragraph followed by a setext heading.\n (right.type === 'heading' && formatHeadingAsSetext(right, state)))\n ) {\n return\n }\n\n return parent.spread ? 1 : 0\n }\n}\n","/**\n * @typedef {import('./types.js').Unsafe} Unsafe\n * @typedef {import('./types.js').ConstructName} ConstructName\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain things like attention (emphasis, strong), images, or links.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * @type {Array<ConstructName>}\n */\nconst fullPhrasingSpans = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\n/** @type {Array<Unsafe>} */\nexport const unsafe = [\n {character: '\\t', after: '[\\\\r\\\\n]', inConstruct: 'phrasing'},\n {character: '\\t', before: '[\\\\r\\\\n]', inConstruct: 'phrasing'},\n {\n character: '\\t',\n inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde']\n },\n {\n character: '\\r',\n inConstruct: [\n 'codeFencedLangGraveAccent',\n 'codeFencedLangTilde',\n 'codeFencedMetaGraveAccent',\n 'codeFencedMetaTilde',\n 'destinationLiteral',\n 'headingAtx'\n ]\n },\n {\n character: '\\n',\n inConstruct: [\n 'codeFencedLangGraveAccent',\n 'codeFencedLangTilde',\n 'codeFencedMetaGraveAccent',\n 'codeFencedMetaTilde',\n 'destinationLiteral',\n 'headingAtx'\n ]\n },\n {character: ' ', after: '[\\\\r\\\\n]', inConstruct: 'phrasing'},\n {character: ' ', before: '[\\\\r\\\\n]', inConstruct: 'phrasing'},\n {\n character: ' ',\n inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde']\n },\n // An exclamation mark can start an image, if it is followed by a link or\n // a link reference.\n {\n character: '!',\n after: '\\\\[',\n inConstruct: 'phrasing',\n notInConstruct: fullPhrasingSpans\n },\n // A quote can break out of a title.\n {character: '\"', inConstruct: 'titleQuote'},\n // A number sign could start an ATX heading if it starts a line.\n {atBreak: true, character: '#'},\n {character: '#', inConstruct: 'headingAtx', after: '(?:[\\r\\n]|$)'},\n // Dollar sign and percentage are not used in markdown.\n // An ampersand could start a character reference.\n {character: '&', after: '[#A-Za-z]', inConstruct: 'phrasing'},\n // An apostrophe can break out of a title.\n {character: \"'\", inConstruct: 'titleApostrophe'},\n // A left paren could break out of a destination raw.\n {character: '(', inConstruct: 'destinationRaw'},\n // A left paren followed by `]` could make something into a link or image.\n {\n before: '\\\\]',\n character: '(',\n inConstruct: 'phrasing',\n notInConstruct: fullPhrasingSpans\n },\n // A right paren could start a list item or break out of a destination\n // raw.\n {atBreak: true, before: '\\\\d+', character: ')'},\n {character: ')', inConstruct: 'destinationRaw'},\n // An asterisk can start thematic breaks, list items, emphasis, strong.\n {atBreak: true, character: '*', after: '(?:[ \\t\\r\\n*])'},\n {character: '*', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans},\n // A plus sign could start a list item.\n {atBreak: true, character: '+', after: '(?:[ \\t\\r\\n])'},\n // A dash can start thematic breaks, list items, and setext heading\n // underlines.\n {atBreak: true, character: '-', after: '(?:[ \\t\\r\\n-])'},\n // A dot could start a list item.\n {atBreak: true, before: '\\\\d+', character: '.', after: '(?:[ \\t\\r\\n]|$)'},\n // Slash, colon, and semicolon are not used in markdown for constructs.\n // A less than can start html (flow or text) or an autolink.\n // HTML could start with an exclamation mark (declaration, cdata, comment),\n // slash (closing tag), question mark (instruction), or a letter (tag).\n // An autolink also starts with a letter.\n // Finally, it could break out of a destination literal.\n {atBreak: true, character: '<', after: '[!/?A-Za-z]'},\n {\n character: '<',\n after: '[!/?A-Za-z]',\n inConstruct: 'phrasing',\n notInConstruct: fullPhrasingSpans\n },\n {character: '<', inConstruct: 'destinationLiteral'},\n // An equals to can start setext heading underlines.\n {atBreak: true, character: '='},\n // A greater than can start block quotes and it can break out of a\n // destination literal.\n {atBreak: true, character: '>'},\n {character: '>', inConstruct: 'destinationLiteral'},\n // Question mark and at sign are not used in markdown for constructs.\n // A left bracket can start definitions, references, labels,\n {atBreak: true, character: '['},\n {character: '[', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans},\n {character: '[', inConstruct: ['label', 'reference']},\n // A backslash can start an escape (when followed by punctuation) or a\n // hard break (when followed by an eol).\n // Note: typical escapes are handled in `safe`!\n {character: '\\\\', after: '[\\\\r\\\\n]', inConstruct: 'phrasing'},\n // A right bracket can exit labels.\n {character: ']', inConstruct: ['label', 'reference']},\n // Caret is not used in markdown for constructs.\n // An underscore can start emphasis, strong, or a thematic break.\n {atBreak: true, character: '_'},\n {character: '_', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans},\n // A grave accent can start code (fenced or text), or it can break out of\n // a grave accent code fence.\n {atBreak: true, character: '`'},\n {\n character: '`',\n inConstruct: ['codeFencedLangGraveAccent', 'codeFencedMetaGraveAccent']\n },\n {character: '`', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans},\n // Left brace, vertical bar, right brace are not used in markdown for\n // constructs.\n // A tilde can start code (fenced).\n {atBreak: true, character: '~'}\n]\n","/**\n * @typedef {import('../types.js').AssociationId} AssociationId\n */\n\nimport {decodeString} from 'micromark-util-decode-string'\n\n/**\n * Get an identifier from an association to match it to others.\n *\n * Associations are nodes that match to something else through an ID:\n * <https://github.com/syntax-tree/mdast#association>.\n *\n * The `label` of an association is the string value: character escapes and\n * references work, and casing is intact.\n * The `identifier` is used to match one association to another:\n * controversially, character escapes and references don’t work in this\n * matching: `©` does not match `©`, and `\\+` does not match `+`.\n *\n * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\\nb`\n * matches `a b`.\n * So, we do prefer the label when figuring out how we’re going to serialize:\n * it has whitespace, casing, and we can ignore most useless character\n * escapes and all character references.\n *\n * @type {AssociationId}\n */\nexport function association(node) {\n if (node.label || !node.identifier) {\n return node.label || ''\n }\n\n return decodeString(node.identifier)\n}\n","/**\n * @typedef {import('../types.js').FlowContent} FlowContent\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\n/**\n * @param {Parent & {children: Array<FlowContent>}} parent\n * Parent of flow nodes.\n * @param {State} state\n * Info passed around about the current state.\n * @param {TrackFields} info\n * Info on where we are in the document we are generating.\n * @returns {string}\n * Serialized children, joined by (blank) lines.\n */\nexport function containerFlow(parent, state, info) {\n const indexStack = state.indexStack\n const children = parent.children || []\n const tracker = state.createTracker(info)\n /** @type {Array<string>} */\n const results = []\n let index = -1\n\n indexStack.push(-1)\n\n while (++index < children.length) {\n const child = children[index]\n\n indexStack[indexStack.length - 1] = index\n\n results.push(\n tracker.move(\n state.handle(child, parent, state, {\n before: '\\n',\n after: '\\n',\n ...tracker.current()\n })\n )\n )\n\n if (child.type !== 'list') {\n state.bulletLastUsed = undefined\n }\n\n if (index < children.length - 1) {\n results.push(\n tracker.move(between(child, children[index + 1], parent, state))\n )\n }\n }\n\n indexStack.pop()\n\n return results.join('')\n}\n\n/**\n * @param {Node} left\n * @param {Node} right\n * @param {Parent} parent\n * @param {State} state\n * @returns {string}\n */\nfunction between(left, right, parent, state) {\n let index = state.join.length\n\n while (index--) {\n const result = state.join[index](left, right, parent, state)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return '\\n'.repeat(1 + result)\n }\n\n if (result === false) {\n return '\\n\\n<!---->\\n\\n'\n }\n }\n\n return '\\n\\n'\n}\n","/**\n * @typedef {import('../types.js').IndentLines} IndentLines\n */\n\nconst eol = /\\r?\\n|\\r/g\n\n/**\n * @type {IndentLines}\n */\nexport function indentLines(value, map) {\n /** @type {Array<string>} */\n const result = []\n let start = 0\n let line = 0\n /** @type {RegExpExecArray | null} */\n let match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n /**\n * @param {string} value\n */\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').SafeConfig} SafeConfig\n */\n\nimport {patternCompile} from './pattern-compile.js'\nimport {patternInScope} from './pattern-in-scope.js'\n\n/**\n * Make a string safe for embedding in markdown constructs.\n *\n * In markdown, almost all punctuation characters can, in certain cases,\n * result in something.\n * Whether they do is highly subjective to where they happen and in what\n * they happen.\n *\n * To solve this, `mdast-util-to-markdown` tracks:\n *\n * * Characters before and after something;\n * * What “constructs†we are in.\n *\n * This information is then used by this function to escape or encode\n * special characters.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {string | null | undefined} input\n * Raw value to make safe.\n * @param {SafeConfig} config\n * Configuration.\n * @returns {string}\n * Serialized markdown safe for embedding.\n */\nexport function safe(state, input, config) {\n const value = (config.before || '') + (input || '') + (config.after || '')\n /** @type {Array<number>} */\n const positions = []\n /** @type {Array<string>} */\n const result = []\n /** @type {Record<number, {before: boolean, after: boolean}>} */\n const infos = {}\n let index = -1\n\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n\n if (!patternInScope(state.stack, pattern)) {\n continue\n }\n\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n while ((match = expression.exec(value))) {\n const before = 'before' in pattern || Boolean(pattern.atBreak)\n const after = 'after' in pattern\n const position = match.index + (before ? match[1].length : 0)\n\n if (positions.includes(position)) {\n if (infos[position].before && !before) {\n infos[position].before = false\n }\n\n if (infos[position].after && !after) {\n infos[position].after = false\n }\n } else {\n positions.push(position)\n infos[position] = {before, after}\n }\n }\n }\n\n positions.sort(numerical)\n\n let start = config.before ? config.before.length : 0\n const end = value.length - (config.after ? config.after.length : 0)\n index = -1\n\n while (++index < positions.length) {\n const position = positions[index]\n\n // Character before or after matched:\n if (position < start || position >= end) {\n continue\n }\n\n // If this character is supposed to be escaped because it has a condition on\n // the next character, and the next character is definitly being escaped,\n // then skip this escape.\n if (\n (position + 1 < end &&\n positions[index + 1] === position + 1 &&\n infos[position].after &&\n !infos[position + 1].before &&\n !infos[position + 1].after) ||\n (positions[index - 1] === position - 1 &&\n infos[position].before &&\n !infos[position - 1].before &&\n !infos[position - 1].after)\n ) {\n continue\n }\n\n if (start !== position) {\n // If we have to use a character reference, an ampersand would be more\n // correct, but as backslashes only care about punctuation, either will\n // do the trick\n result.push(escapeBackslashes(value.slice(start, position), '\\\\'))\n }\n\n start = position\n\n if (\n /[!-/:-@[-`{-~]/.test(value.charAt(position)) &&\n (!config.encode || !config.encode.includes(value.charAt(position)))\n ) {\n // Character escape.\n result.push('\\\\')\n } else {\n // Character reference.\n result.push(\n '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';'\n )\n start++\n }\n }\n\n result.push(escapeBackslashes(value.slice(start, end), config.after))\n\n return result.join('')\n}\n\n/**\n * @param {number} a\n * @param {number} b\n * @returns {number}\n */\nfunction numerical(a, b) {\n return a - b\n}\n\n/**\n * @param {string} value\n * @param {string} after\n * @returns {string}\n */\nfunction escapeBackslashes(value, after) {\n const expression = /\\\\(?=[!-/:-@[-`{-~])/g\n /** @type {Array<number>} */\n const positions = []\n /** @type {Array<string>} */\n const results = []\n const whole = value + after\n let index = -1\n let start = 0\n /** @type {RegExpExecArray | null} */\n let match\n\n while ((match = expression.exec(whole))) {\n positions.push(match.index)\n }\n\n while (++index < positions.length) {\n if (start !== positions[index]) {\n results.push(value.slice(start, positions[index]))\n }\n\n results.push('\\\\')\n start = positions[index]\n }\n\n results.push(value.slice(start))\n\n return results.join('')\n}\n","/**\n * @typedef {import('../types.js').CreateTracker} CreateTracker\n * @typedef {import('../types.js').TrackCurrent} TrackCurrent\n * @typedef {import('../types.js').TrackMove} TrackMove\n * @typedef {import('../types.js').TrackShift} TrackShift\n */\n\n/**\n * Track positional info in the output.\n *\n * @type {CreateTracker}\n */\nexport function track(config) {\n // Defaults are used to prevent crashes when older utilities somehow activate\n // this code.\n /* c8 ignore next 5 */\n const options = config || {}\n const now = options.now || {}\n let lineShift = options.lineShift || 0\n let line = now.line || 1\n let column = now.column || 1\n\n return {move, current, shift}\n\n /**\n * Get the current tracked info.\n *\n * @type {TrackCurrent}\n */\n function current() {\n return {now: {line, column}, lineShift}\n }\n\n /**\n * Define an increased line shift (the typical indent for lines).\n *\n * @type {TrackShift}\n */\n function shift(value) {\n lineShift += value\n }\n\n /**\n * Move past some generated markdown.\n *\n * @type {TrackMove}\n */\n function move(input) {\n // eslint-disable-next-line unicorn/prefer-default-parameters\n const value = input || ''\n const chunks = value.split(/\\r?\\n|\\r/g)\n const tail = chunks[chunks.length - 1]\n line += chunks.length - 1\n column =\n chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift\n return value\n }\n}\n","/**\n * @typedef {import('./types.js').Enter} Enter\n * @typedef {import('./types.js').Info} Info\n * @typedef {import('./types.js').Join} Join\n * @typedef {import('./types.js').FlowContent} FlowContent\n * @typedef {import('./types.js').Node} Node\n * @typedef {import('./types.js').Options} Options\n * @typedef {import('./types.js').Parent} Parent\n * @typedef {import('./types.js').PhrasingContent} PhrasingContent\n * @typedef {import('./types.js').SafeConfig} SafeConfig\n * @typedef {import('./types.js').State} State\n * @typedef {import('./types.js').TrackFields} TrackFields\n */\n\nimport {zwitch} from 'zwitch'\nimport {configure} from './configure.js'\nimport {handle as handlers} from './handle/index.js'\nimport {join} from './join.js'\nimport {unsafe} from './unsafe.js'\nimport {association} from './util/association.js'\nimport {containerPhrasing} from './util/container-phrasing.js'\nimport {containerFlow} from './util/container-flow.js'\nimport {indentLines} from './util/indent-lines.js'\nimport {safe} from './util/safe.js'\nimport {track} from './util/track.js'\n\n/**\n * Turn an mdast syntax tree into markdown.\n *\n * @param {Node} tree\n * Tree to serialize.\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized markdown representing `tree`.\n */\nexport function toMarkdown(tree, options = {}) {\n /** @type {State} */\n const state = {\n enter,\n indentLines,\n associationId: association,\n containerPhrasing: containerPhrasingBound,\n containerFlow: containerFlowBound,\n createTracker: track,\n safe: safeBound,\n stack: [],\n unsafe: [],\n join: [],\n // @ts-expect-error: we’ll fill it next.\n handlers: {},\n options: {},\n indexStack: [],\n // @ts-expect-error: we’ll add `handle` later.\n handle: undefined\n }\n\n configure(state, {unsafe, join, handlers})\n configure(state, options)\n\n if (state.options.tightDefinitions) {\n configure(state, {join: [joinDefinition]})\n }\n\n state.handle = zwitch('type', {\n invalid,\n unknown,\n handlers: state.handlers\n })\n\n let result = state.handle(tree, undefined, state, {\n before: '\\n',\n after: '\\n',\n now: {line: 1, column: 1},\n lineShift: 0\n })\n\n if (\n result &&\n result.charCodeAt(result.length - 1) !== 10 &&\n result.charCodeAt(result.length - 1) !== 13\n ) {\n result += '\\n'\n }\n\n return result\n\n /** @type {Enter} */\n function enter(name) {\n state.stack.push(name)\n return exit\n\n function exit() {\n state.stack.pop()\n }\n }\n}\n\n/**\n * @param {unknown} value\n * @returns {never}\n */\nfunction invalid(value) {\n throw new Error('Cannot handle value `' + value + '`, expected node')\n}\n\n/**\n * @param {unknown} node\n * @returns {never}\n */\nfunction unknown(node) {\n // @ts-expect-error: fine.\n throw new Error('Cannot handle unknown node `' + node.type + '`')\n}\n\n/** @type {Join} */\nfunction joinDefinition(left, right) {\n // No blank line between adjacent definitions.\n if (left.type === 'definition' && left.type === right.type) {\n return 0\n }\n}\n\n/**\n * Serialize the children of a parent that contains phrasing children.\n *\n * These children will be joined flush together.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parent & {children: Array<PhrasingContent>}} parent\n * Parent of flow nodes.\n * @param {Info} info\n * Info on where we are in the document we are generating.\n * @returns {string}\n * Serialized children, joined together.\n */\nfunction containerPhrasingBound(parent, info) {\n return containerPhrasing(parent, this, info)\n}\n\n/**\n * Serialize the children of a parent that contains flow children.\n *\n * These children will typically be joined by blank lines.\n * What they are joined by exactly is defined by `Join` functions.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parent & {children: Array<FlowContent>}} parent\n * Parent of flow nodes.\n * @param {TrackFields} info\n * Info on where we are in the document we are generating.\n * @returns {string}\n * Serialized children, joined by (blank) lines.\n */\nfunction containerFlowBound(parent, info) {\n return containerFlow(parent, this, info)\n}\n\n/**\n * Make a string safe for embedding in markdown constructs.\n *\n * In markdown, almost all punctuation characters can, in certain cases,\n * result in something.\n * Whether they do is highly subjective to where they happen and in what\n * they happen.\n *\n * To solve this, `mdast-util-to-markdown` tracks:\n *\n * * Characters before and after something;\n * * What “constructs†we are in.\n *\n * This information is then used by this function to escape or encode\n * special characters.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {string | null | undefined} value\n * Raw value to make safe.\n * @param {SafeConfig} config\n * Configuration.\n * @returns {string}\n * Serialized markdown safe for embedding.\n */\nfunction safeBound(value, config) {\n return safe(this, value, config)\n}\n","/**\n * @typedef {import('../types.js').Handle} Handle\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').PhrasingContent} PhrasingContent\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * Serialize the children of a parent that contains phrasing children.\n *\n * These children will be joined flush together.\n *\n * @param {Parent & {children: Array<PhrasingContent>}} parent\n * Parent of flow nodes.\n * @param {State} state\n * Info passed around about the current state.\n * @param {Info} info\n * Info on where we are in the document we are generating.\n * @returns {string}\n * Serialized children, joined together.\n */\nexport function containerPhrasing(parent, state, info) {\n const indexStack = state.indexStack\n const children = parent.children || []\n /** @type {Array<string>} */\n const results = []\n let index = -1\n let before = info.before\n\n indexStack.push(-1)\n let tracker = state.createTracker(info)\n\n while (++index < children.length) {\n const child = children[index]\n /** @type {string} */\n let after\n\n indexStack[indexStack.length - 1] = index\n\n if (index + 1 < children.length) {\n /** @type {Handle} */\n // @ts-expect-error: hush, it’s actually a `zwitch`.\n let handle = state.handle.handlers[children[index + 1].type]\n /** @type {Handle} */\n // @ts-expect-error: hush, it’s actually a `zwitch`.\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, state, {\n before: '',\n after: '',\n ...tracker.current()\n }).charAt(0)\n : ''\n } else {\n after = info.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When we’d serialize that, in most cases that would be seen as html\n // (flow).\n // As we can’t escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15>\n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n\n // To do: does this work to reset tracker?\n tracker = state.createTracker(info)\n tracker.move(results.join(''))\n }\n\n results.push(\n tracker.move(\n state.handle(child, parent, state, {\n ...tracker.current(),\n before,\n after\n })\n )\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n indexStack.pop()\n\n return results.join('')\n}\n","import {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkStringify from 'remark-stringify'\n\nexport const remark = unified().use(remarkParse).use(remarkStringify).freeze()\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownOptions\n * @typedef {Omit<ToMarkdownOptions, 'extensions'>} Options\n */\n\nimport {toMarkdown} from 'mdast-util-to-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?]|void[], Node, string>}\n */\nexport default function remarkStringify(options) {\n /** @type {import('unified').CompilerFunction<Node, string>} */\n const compiler = (tree) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return toMarkdown(\n tree,\n Object.assign({}, settings, options, {\n // Note: this option is not in the readme.\n // The goal is for it to be set by plugins on `data` instead of being\n // passed by users.\n extensions:\n /** @type {ToMarkdownOptions['extensions']} */ (\n this.data('toMarkdownExtensions')\n ) || []\n })\n )\n }\n\n Object.assign(this, {Compiler: compiler})\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').RootContent} RootContent\n * @typedef {import('mdast').Text} Text\n */\n\n/**\n * @callback Handler\n * Transform a node.\n * @param {any} node\n * Node.\n * @returns {Array<Nodes> | Nodes | null | undefined}\n * Result.\n *\n * @typedef {Partial<Record<Nodes['type'], Handler>>} Handlers\n * Handlers.\n *\n * @typedef Options\n * Configuration.\n * @property {ReadonlyArray<Nodes['type']> | null | undefined} [keep]\n * List of node types to leave unchanged (optional).\n * @property {ReadonlyArray<readonly [Nodes['type'], Handler] | Nodes['type']> | null | undefined} [remove]\n * List of node types to remove (or replace, with handlers) (optional).\n */\n\n/**\n * Expose modifiers for available node types.\n * Node types not listed here are not changed (but their children are).\n *\n * @type {Handlers}\n */\nconst defaults = {\n blockquote: children,\n break: lineBreak,\n code: empty,\n definition: empty,\n delete: children,\n emphasis: children,\n footnoteReference: empty,\n footnoteDefinition: empty,\n heading: paragraph,\n html: empty,\n image,\n imageReference: image,\n inlineCode: text,\n list: children,\n listItem: children,\n link: children,\n linkReference: children,\n strong: children,\n table: empty,\n tableCell: empty,\n text,\n thematicBreak: empty,\n // @ts-expect-error: custom frontmatter, sometimes defined with\n // `remark-frontmatter`.\n toml: empty,\n yaml: empty\n}\n\n/** @type {Readonly<Options>} */\nconst emptyOptions = {}\n/** @type {ReadonlyArray<Nodes['type']>} */\nconst emptyTypes = []\n\n/**\n * Remove markdown formatting.\n *\n * * remove `code`, `html`, `horizontalRule`, `table`, `toml`, `yaml`, and\n * their content\n * * render everything else as simple paragraphs without formatting\n * * uses `alt` text for images\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function stripMarkdown(options) {\n const handlers = {...defaults}\n const settings = options || emptyOptions\n const keep = settings.keep || emptyTypes\n const remove = settings.remove || emptyTypes\n\n let index = -1\n\n while (++index < remove.length) {\n const value = remove[index]\n\n if (typeof value === 'string') {\n handlers[value] = empty\n } else {\n handlers[value[0]] = value[1]\n }\n }\n\n /** @type {Handlers} */\n let map = {}\n\n if (keep.length === 0) {\n map = handlers\n } else {\n /** @type {Nodes['type']} */\n let key\n\n for (key in handlers) {\n if (!keep.includes(key)) {\n map[key] = handlers[key]\n }\n }\n\n index = -1\n\n // Warn if unknown keys are turned off.\n while (++index < keep.length) {\n key = keep[index]\n\n if (!Object.hasOwn(handlers, key)) {\n throw new Error(\n 'Unknown node type `' +\n key +\n \"` in `keep`, use a replace tuple with a handle instead: `remove: [['\" +\n key +\n \"', handle]]`\"\n )\n }\n }\n }\n\n /**\n * @param {Root} tree\n * Current tree.\n * @returns {Root}\n * New tree.\n */\n return function (tree) {\n // Cast as we assume root in -> root out.\n const result = /** @type {Root} */ (one(tree))\n return result\n }\n\n /**\n * @param {Nodes} node\n * Node.\n * @returns {Array<Nodes> | Nodes | undefined}\n * Result.\n */\n function one(node) {\n /** @type {Nodes['type']} */\n const type = node.type\n /** @type {Array<Nodes> | Nodes | undefined} */\n let result = node\n\n if (Object.hasOwn(map, type)) {\n const handler = map[type]\n if (handler) result = handler(result) || undefined\n }\n\n result = Array.isArray(result) ? all(result) : result\n\n if (result && 'children' in result) {\n // @ts-expect-error: assume content models match.\n result.children = all(result.children)\n }\n\n return result\n }\n\n /**\n * @param {Array<Nodes>} nodes\n * Nodes.\n * @returns {Array<Nodes>}\n * Result.\n */\n function all(nodes) {\n let index = -1\n /** @type {Array<Nodes>} */\n const result = []\n\n while (++index < nodes.length) {\n const value = one(nodes[index])\n\n if (Array.isArray(value)) {\n result.push(...all(value))\n } else if (value) {\n result.push(value)\n }\n }\n\n return clean(result)\n }\n}\n\n/**\n * Clean nodes: merges literals.\n *\n * @param {Array<Nodes>} values\n * Nodes.\n * @returns {Array<Nodes>}\n * Results.\n */\nfunction clean(values) {\n let index = -1\n /** @type {Array<Nodes>} */\n const result = []\n /** @type {Nodes | undefined} */\n let previous\n\n while (++index < values.length) {\n const value = values[index]\n\n if (\n previous &&\n value.type === previous.type &&\n 'value' in value &&\n 'value' in previous\n ) {\n previous.value += value.value\n } else {\n result.push(value)\n previous = value\n }\n }\n\n return result\n}\n\n/**\n * @param {Image | ImageReference} node\n * Node.\n * @returns {Text | undefined}\n * Result.\n * @satisfies {Handler}\n */\nfunction image(node) {\n const title = 'title' in node ? node.title : ''\n const value = node.alt || title || ''\n return value ? {type: 'text', value} : undefined\n}\n\n/**\n * @param {InlineCode | Text} node\n * Node.\n * @returns {Text}\n * Result.\n * @satisfies {Handler}\n */\nfunction text(node) {\n return {type: 'text', value: node.value}\n}\n\n/**\n * @param {Heading | Paragraph} node\n * Node.\n * @returns {Paragraph}\n * Result.\n * @satisfies {Handler}\n */\nfunction paragraph(node) {\n return {type: 'paragraph', children: node.children}\n}\n\n/**\n * @param {Parents} node\n * Parent.\n * @returns {Array<RootContent>}\n * Node.\n * @satisfies {Handler}\n */\nfunction children(node) {\n return node.children\n}\n\n/**\n * @returns {Text}\n * Node.\n * @satisfies {Handler}\n */\nfunction lineBreak() {\n return {type: 'text', value: '\\n'}\n}\n\n/**\n * @returns {undefined}\n * Nothing.\n * @satisfies {Handler}\n */\nfunction empty() {\n return undefined\n}\n"],"names":["exports","value","val","values","input","String","empty","index","indexOf","comma","lastIndex","end","length","slice","trim","push","space","hasOwn","Object","prototype","hasOwnProperty","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","newValue","writable","getProperty","module","extend","src","copy","copyIsArray","clone","arguments","i","deep","keyList","keys","hasProp","hasElementType","Element","equal","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","$$typeof","error","message","match","number","console","warn","assign","_extends","bind","source","apply","this","forwardRef","props","ref","StyledIcon","viewBox","a11yTitle","fill","fillRule","d","displayName","Download","stroke","strokeWidth","Image","_React$Component","_inheritsLoose","render","React","Github","color","GrommetImage","Link","_React$Component2","href","theme","fontWeight","textDecoration","anchor","linkStyle","light","test","GatsbyLink","to","activeStyle","style","Anchor","components","p","component","Paragraph","size","maxWidth","img","ThemeContext","Consumer","_ref","children","pad","width","rest","Box","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","concat","map","element","arrayMerge","sourceIsArray","destination","forEach","mergeObject","all","array","Error","reduce","prev","next","global","freeSelf","self","Function","objectProto","nativeObjectToString","symToStringTag","toStringTag","undefined","isOwn","tag","unmasked","e","result","func","transform","arg","getPrototypeOf","funcProto","funcToString","objectCtorString","proto","Ctor","condition","__data__","other","splice","data","pop","ListCache","entries","clear","entry","set","get","has","type","uid","maskSrcKey","exec","IE_PROTO","reIsHostCtor","reIsNative","replace","object","Hash","MapCache","pairs","LARGE_ARRAY_SIZE","Stack","iteratee","objValue","customizer","isNew","n","propertyIsEnumerable","isArguments","freeExports","nodeType","freeModule","Buffer","isBuffer","reIsUint","typedArrayTags","freeProcess","process","types","require","binding","nodeIsTypedArray","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","isProto","allocUnsafe","buffer","isDeep","predicate","resIndex","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","offset","getSymbolsIn","keysFunc","symbolsFunc","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","ctorString","Uint8Array","arrayBuffer","byteLength","dataView","byteOffset","reFlags","regexp","symbolProto","symbolValueOf","valueOf","typedArray","objectCreate","create","baseCreate","nodeIsMap","isMap","nodeIsSet","isSet","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","isFunc","stacked","subValue","add","memoize","resolver","TypeError","memoized","args","cache","Cache","rePropName","reEscapeChar","stringToPath","string","charCodeAt","quote","subString","symbolToString","baseToString","subClass","superClass","__proto__","_objectWithoutPropertiesLoose","excluded","sourceKeys","_assertThisInitialized","ReferenceError","FormikContext","createContext","Provider","useFormikContext","formik","useContext","isEmptyArray","isInteger","Math","floor","Number","isString","isEmptyChildren","Children","count","isPromise","then","getIn","def","path","setIn","res","resVal","pathArray","currentPath","currentObj","nextPath","setNestedObjectValues","visited","response","WeakMap","_i","_Object$keys","k","emptyErrors","emptyTouched","useFormik","_ref$validateOnChange","validateOnChange","_ref$validateOnBlur","validateOnBlur","_ref$validateOnMount","validateOnMount","isInitialValid","_ref$enableReinitiali","enableReinitialize","onSubmit","initialValues","useRef","initialErrors","initialTouched","initialStatus","isMounted","fieldRegistry","useEffect","current","setIteration","useState","stateRef","errors","touched","status","isSubmitting","isValidating","submitCount","state","dispatch","useCallback","action","msg","payload","field","formikReducer","x","runValidateHandler","Promise","reject","maybePromisedErrors","validate","actualException","runValidationSchema","validationSchema","schema","promise","validateAt","sync","context","normalizedValues","prepareDataForValidation","abortEarly","validateYupSchema","err","yupError","inner","_iterator","_isArray","iterator","_ref5","done","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","filter","f","fieldValidations","fieldErrorsList","curr","runAllValidations","_ref2","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","useEventCallback","combinedErrors","resetForm","nextState","dispatchFn","onReset","maybePromisedOnReset","imperativeMethods","validateField","maybePromise","registerField","_ref3","unregisterField","setTouched","shouldValidate","setErrors","setValues","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","parsed","persist","currentTarget","id","checked","outerHTML","multiple","parseFloat","isNaN","currentValue","valueProp","Boolean","currentArrayOfValues","isValueInArray","getValueForCheckbox","from","el","selected","getSelectedValues","handleChange","eventOrPath","event","setFieldTouched","executeBlur","_e$target","handleBlur","eventOrString","setFormikState","stateOrCb","setStatus","setSubmitting","submitForm","isInstanceOfError","promiseOrUndefined","executeSubmit","_errors","handleSubmit","preventDefault","stopPropagation","reason","validateForm","handleReset","getFieldMeta","initialValue","initialError","getFieldHelpers","setValue","setError","getFieldProps","nameOrOptions","isAnObject","valueState","onChange","onBlur","is","as","dirty","useMemo","isValid","shouldClone","useIsomorphicLayoutEffect","window","document","createElement","useLayoutEffect","fn","_len","_key","_action","_useFormikContext","insert","arrayLike","copyArrayLike","maxIndex","parseInt","max","createAlterationHandler","alteration","defaultFunction","FieldArrayInner","_this","updateArrayField","alterTouched","alterErrors","_this$props","prevState","updateErrors","updateTouched","fieldError","fieldTouched","handlePush","swap","indexA","indexB","handleSwap","move","handleMove","handleInsert","handleReplace","unshift","handleUnshift","handleRemove","remove","handlePop","_proto","componentDidUpdate","prevProps","every","v","tmp","arrayHelpers","_this$props2","form","only","Component","defaultProps","errorToString","regExpToString","SYMBOL_REGEXP","printSimpleValue","quoteStrings","typeOf","printNumber","toISOString","printValue","JSON","stringify","toArray","_Symbol$toStringTag","_Symbol$hasInstance","_Symbol$toStringTag2","strReg","ValidationErrorNoStack","errorOrErrors","params","ValidationError","isError","innerErrors","hasInstance","formatError","label","_","disableStack","errorNoStack","super","captureStackTrace","inst","mixed","default","required","defined","notNull","oneOf","notOneOf","notType","originalValue","castMsg","min","matches","email","url","uuid","datetime","datetime_precision","datetime_offset","lowercase","uppercase","lessThan","moreThan","positive","negative","integer","date","isValue","noUnknown","tuple","spec","typeLen","boolean","isSchema","__isYupSchema__","Condition","fromOptions","refs","config","otherwise","check","_branch","branch","builder","base","getValue","parent","prefixes","Reference","isContext","isSibling","getter","prefix","cast","describe","isRef","__isYupRef","isAbsent","createValidation","panic","skipAbsent","disableStackTrace","item","createError","overrides","nextParams","invalid","ctx","handleResult","validOrError","handleError","_result","OPTIONS","lastPart","lastPartDebug","_part","isBracket","part","isTuple","idx","innerType","fields","parentPath","ReferenceSet","Set","description","resolveAll","merge","newItems","removeItems","delete","seen","Map","Schema","deps","tests","transforms","conditions","_mutate","internalTests","_whitelist","_blacklist","exclusiveTests","_typeCheck","withMutation","typeError","strip","strict","recursive","nullable","optional","coerce","s","nonNullable","_type","meta","before","combined","mergedSpec","prevSchema","resolveOptions","_options$strict","_options$abortEarly","_options$recursive","_options$disableStack","resolvedSchema","allowOptionality","assert","_cast","formattedValue","formattedResult","rawValue","prevValue","getDefault","_validate","_value","initialTests","runTests","runOptions","fired","panicOnce","nextOnce","nestedErrors","asNestedTest","originalParent","isIndex","testOptions","includes","_options$disableStack2","validated","validateSync","_options$disableStack3","isValidSync","_getDefault","defaultValue","isStrict","nullability","optionality","notRequired","opts","isExclusive","exclusive","when","dep","enums","whiteList","valids","resolved","join","blacklist","invalids","list","findIndex","c","method","alias","isoReg","parseDateStruct","_regexResult$7$length","_regexResult$","regexResult","year","toNumber","month","day","hour","minute","second","millisecond","substring","precision","z","plusMinus","hourOffset","minuteOffset","str","rEmail","rUrl","rUUID","rIsoDateTime","isTrimmed","objStringTag","create$6","StringSchema","_raw","strValue","t","regex","excludeEmptyString","search","allowOffset","struct","ensure","toLowerCase","toUpperCase","invalidDate","create$4","DateSchema","parse","NaN","totalMinutesOffset","UTC","parseIsoDate","INVALID_DATE","prepareParam","param","limit","Infinity","some","ii","_err$path","sortByKeyOrder","parseJson","deepPartial","partial","fieldSchema","setFields","nextArray","defaultSort","create$3","ObjectSchema","_sortErrors","_nodes","_excludedEdges","shape","_options$stripUnknown","stripUnknown","intermediateValue","innerOptions","__validating","isChanged","prop","exists","fieldValue","inputValue","fieldSpec","objectErrors","sort","nextFields","schemaOrRef","dft","_innerOptions","excludedEdges","edges","nodes","excludes","addNode","depPath","node","split","reverse","sortFields","additions","pick","picked","omit","remaining","fromGetter","newObj","normalizePath","last","deepHas","json","noAllow","unknownKeys","known","unknown","allow","transformKeys","camelCase","snakeCase","constantCase","_innerOptions2","ChatOption","FeedBackButton","handleButtonClick","styles","position","handleCustomPosition","Button","plain","icon","onClick","title","primary","PropTypes","padding","borderRadius","border","bottom","zIndex","backgroundColor","FeedbackHeader","headerText","headerBtnText","handleClose","headerStyles","headerBtnStyles","fontSize","right","background","lineHeight","height","paddingLeft","overflow","plainStyle","css","StyledTextArea","textarea","withConfig","componentId","resize","fillArg","disabled","textArea","opacity","setPrototypeOf","TextAreaPropTypes","_excluded","TextArea","_ref$focusIndicator","focusIndicator","_onBlur","_onChange","_onFocus","onFocus","onKeyDown","_formContext$useFormI","FormContext","useFormInput","_useState","focus","setFocus","Keyboard","onEsc","nativeEvent","stopImmediatePropagation","propTypes","FormNextLink","defaultMessageStyles","boxSizing","fontFamily","FeedbackBody","bodyText","feedbackFromik","selQuestion","changeQuestion","cancelQuestion","successClose","isSubmissionSuccess","emailDis","setEmailDis","ishovered","setIshovered","handleMouseEnter","button","handleMouseLeave","user","AppContext","gap","marginBottom","Text","weight","alignSelf","onMouseEnter","onMouseLeave","marginTop","paddingInline","direction","align","alt","marginInline","textAlign","FormPreviousLink","TextInput","rows","placeholder","subTitle","bodyStyles","display","showEmailInput","showMessageInput","showNameInput","numberOfStars","formStyles","nextHandler","ansQuestion","changeAnsQue","customFormStyles","Card","left","questions","Feedback","showButton","setShowButton","showForm","setShowForm","setSelQuestion","buttonText","buttonStyles","proxy","alert","yup","FeedbackForm","closeHandler","text","buttonClickHandler","Footer","setIsSubmissionSuccess","sendEmail","axios","headers","AuthService","getCurrentUser","accessToken","_response$data","log","catch","login","side","justify","margin","horizontal","vertical","flex","EmailCapture","bodyCopy2","Heading","level","rel","UserMenu","userInfo","open","setOpen","redirectURI","location","charAt","Avatar","onMenuClick","o","getInitials","Layer","modal","onClickOutside","top","boxShadow","borderBottom","ButtonLink","LinkNext","TextAlignLeft","styled","_data$platform","_data$opensource","_data$greenlake","userDetail","platforms","platform","opensource","greenlake","GreenLakeButtonLinks","column","leftColumn","rightColumn","gl","glColumns","slug","frontmatter","_toConsumableArray","PlatformButtonLinks","OpenSourceButtonLinks","os","handleHPESignIn","newUrl","history","pushState","post","code","localStorage","setItem","reload","ResponsiveContext","navLinks","DropButton","dropAlign","FormDown","dropContent","isPlatformHeaderClicked","isBlogHeaderClicked","secondary","Search","GrommetHeader","Menu","Nav","l","positions","content","isMarkdown","maxLength","chunks","sortedPositions","start","isHighlighted","results","totalLength","truncate","highlight","Main","_objectDestructuringEmpty","hpe","Grommet","basis","Header","SEO","lang","image","siteMetadata","useSiteMetadata","metaDescription","Helmet","htmlAttributes","titleTemplate","property","author","toolTip","setToolTip","Twitter","Linkedin","navigator","clipboard","writeText","tip","dropProps","Intl","DateTimeFormat","columns","Grid","link","GrommetCard","elevation","navigate","pageY","clientY","fit","category","Star","dateFormat","stars","monthly","newsletter","CardHeader","format","wrap","CardBody","card","body","CardFooter","footer","responsive","linkname","MenuPropTypes","_excluded2","ContainerBox","menu","ariaLabel","dropBackground","dropTarget","justifyContent","items","messages","MessageContext","iconColor","icons","_theme$menu$drop","drop","themeDropAlign","themeDropProps","a11y","itemCount","group","controlButtonIndex","alignControlMirror","setAlignControlMirror","initialAlignTop","dropContainerRef","buttonRefs","constants","none","tab","controlTop","controlBottom","_useState2","activeItemIndex","setActiveItemIndex","_useState3","isOpen","MenuIcon","up","down","onDropClose","onDropOpen","timer","setTimeout","optionsNode","clearTimeout","onSelectMenuItem","click","isTab","keyCode","which","onNextMenuItem","onPreviousMenuItem","menuIcon","buttonProps","menuContent","controlMirror","r","active","hoverIndicator","tabIndex","menuItem","_theme$menu$item","_theme$menu$item2","_theme$menu$item3","child","option","role","kind","close","groupIndex","_theme$menu$group","_theme$menu$group$sep","_theme$menu$group2","_theme$menu$group2$se","_theme$menu$group3","separator","container","currentIndex","onDown","onUp","onSpace","onTab","onAlign","onOpen","onClose","shiftKey","onEnter","customTheme","deepMerge","_data$ezmeralBlogsCou","_data$projectdataMapB","_data$alletraBlogsCou","_data$threeParBlogsCo","_data$nimbleBlogsCoun","_data$oneviewBlogsCou","_data$oneviewDashboar","_data$iloBlogsCount","_data$crayBlogsCount","_data$swarmBlogsCount","_data$dragonhpcCount","_data$hpeNonstopBlogs","_data$hpeOpsRampBlogs","_data$hpeMorpheusBlog","_data$kubeDirectorBlo","_data$spiffeBlogsCoun","_data$chapelBlogsCoun","_data$grommetBlogsCou","_data$determinedBlogs","_data$smartSimBlogsCo","_data$dragonhpcBlogsC","setIndex","setPlatform","previousTab","setPreviousTab","platformContent","setPlatformContent","allBlogs","openSourceContent","setOpenSourceContent","openSourceBlogs","activeBlogTab","setActiveBlogTab","platformData","setPlatformData","openSourceData","setOpenSourceData","activePlatform","setActivePlatform","activeOpenSource","setActiveOpenSource","totalAllBlogsCount","allBlogsCount","totalCount","totalOpenSourceBlogsCount","openSourceBlogsCount","totalGreenLakeBlogsCount","greenlakeBlogsCount","totalOthersBlogsCount","othersBlogsCount","URLSearchParams","ezmeralBlogs","ezmeralBlogsCount","projectDataMapBlogs","projectdataMapBlogsCount","alletraBlogs","alletraBlogsCount","threeParBlogs","threeParBlogsCount","nimbleBlogs","nimbleBlogsCount","oneviewBlogs","oneviewBlogsCount","oneviewDashboardBlogs","oneviewDashboardBlogsCount","iloBlogs","iloBlogsCount","crayBlogs","crayBlogsCount","swarmBlogs","swarmBlogsCount","dragonhpcBlogs","dragonhpcCount","hpeNonstopBlogs","hpeNonstopBlogsCount","hpeOpsRampBlogs","hpeOpsRampBlogsCount","hpeMorpheusBlogs","hpeMorpheusBlogsCount","kubeDirectorBlogs","kubeDirectorBlogsCount","spiffeBlogs","spiffeBlogsCount","chapelBlogs","chapelBlogsCount","grommetBlogs","grommetBlogsCount","determinedBlogs","determinedBlogsCount","smartSimBlogs","smartSimBlogsCount","dragonhpcBlogsCount","platformsMenuItems","openSourceMenuItems","previousTabContent","previousTabIndex","greenlakeBlogs","othersBlogs","totalAllPlatformsBlogsCount","accum","Tabs","activeIndex","onActive","nextIndex","Tab","BlogTabContent","initialPage","activeTab","BlogCard","_node$frontmatter3","_node$frontmatter4","blogPosition","setBlogPosition","useLocalStorage","_node$frontmatter","_node$frontmatter2","externalLink","sourceInstanceName","authorimage","FeaturedBlogCard","_node$frontmatter5","_node$frontmatter6","tags","markdown","remark","use","file","contents","stripMarkdown","excerpt","thumbnailimage","SectionHeader","_initialPage$collecti","latestPage","setLatestPage","blogPosts","setBlogPosts","collectionId","setCollectionId","collection","loadMoreBlogData","setLoadMoreBlogData","latestBlogPosts","removeItem","loadNextPage","async","hasNextPage","nextPageId","nextPage","withPrefix","fetch","ResponsiveGrid","blogPost","Questions","MarkdownLayout","Markdown","gridProps","small","areas","medium","mediumReverse","large","largeReverse","bases","imageScale","hover","setHover","isHackShackCard","gridWidth","cursor","onMouseOver","onMouseUp","alignItems","gridArea","cardComponents","ev","_ref4","ownKeys","enumerableOnly","symbols","sym","_objectSpread","getOwnPropertyDescriptors","defineProperties","classNameCombinations","createStyleObject","classNames","elementStyle","stylesheet","arrLength","getClassNameCombinations","className","styleObject","createClassNameString","_ref$style","useInlineStyles","properties","TagName","tagName","childrenCreator","childrenCount","createChildren","allStylesheetSelectors","classes","selector","startingClassName","astGenerator","language","listLanguages","newLineRegex","AllLineNumbers","codeString","codeStyle","_ref2$containerStyle","containerStyle","paddingRight","_ref2$numberStyle","numberStyle","startingLineNumber","lines","getAllLineNumbers","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","num","defaultLineNumberStyle","minWidth","userSelect","customLineNumberStyle","createLineElement","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","flattenCodeTree","tree","newTree","processLines","codeTree","wrapLines","lastLineBreakIndex","createLine","createWrappedLine","createUnwrappedLine","_loop","splitValue","newChild","_line","stringChild","lastLineInPreviousSpan","newElem","_line2","_line3","line","defaultRenderer","isHighlightJs","highlightAuto","defaultAstGenerator","defaultStyle","highlighter","_ref7","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","hljs","generatorClassName","preProps","whiteSpace","defaultCodeValue","_ref6","hasLanguage","checkForListedLanguage","getCodeTree","supportedLanguages","wordSpacing","wordBreak","wordWrap","MozTabSize","OTabSize","tabSize","WebkitHyphens","MozHyphens","msHyphens","hyphens","comment","prolog","doctype","cdata","punctuation","constant","deleted","char","builtin","inserted","operator","entity","variable","atrule","function","keyword","important","bold","italic","fontStyle","amp","apos","gt","lt","nbsp","quot","u","g","m","y","h","S","$","w","E","A","R","I","M","O","B","L","T","j","C","D","N","Z","F","P","G","H","q","U","V","W","Q","X","J","K","Y","tt","et","nt","rt","ot","ct","at","ut","it","st","_t","ft","dt","pt","cells","header","mt","yt","ht","kt","xt","endsWith","trimEnd","bt","decodeURIComponent","vt","St","$t","wt","zt","Et","At","Rt","It","shift","Mt","Ot","slugify","namedCodesToUnicode","forceInline","forceBlock","wrapper","forceWrapper","blockQuote","HIGH","breakLine","breakThematic","codeBlock","MAX","codeFenced","codeInline","LOW","footnote","identifier","footnoteReference","gfmTask","completed","readOnly","heading","headingSetext","htmlComment","linkAngleBraceStyleDetector","linkBareUrlDetector","linkMailtoDetector","ordered","newlineCoalescer","paragraph","refImage","refLink","fallbackContent","table","tableSeparator","MIN","textBolded","MED","textEmphasized","textEscaped","textStrikethroughed","disableParsingRawHTML","htmlBlock","attrs","noInnerParse","htmlSelfClosing","Bt","isObject","sources","output","GrommetMarkdown","Table","td","TableCell","tbody","TableBody","tfoot","TableFooter","th","thead","TableHeader","tr","TableRow","Fragment","Code","substr","SyntaxHighlighter","codestyle","hr","h1","h2","h3","h4","titleComponents","TitleMarkdown","categoryLabel","Results","searchTerm","doc","titlePos","bodyPos","tagsPos","HighlightedText","getPositions","searchResult","matchData","metadata","term","pair","nameValue","useParams","setResults","categories","setCategories","activeCategoryIndex","setActiveCategoryIndex","searchResults","searchCategories","categoryMap","query","__LUNR__","__loaded","en","store","authorPos","getSearchResults","getResults","round","SearchIcon","encodeURIComponent","emailValidation","bodyCopy1","loading","setLoading","success","setSuccess","errorMsg","setErrorMsg","userDetails","formData","setFormData","prevFormData","Form","Headers","listId","error_count","new_count","FormField","windowGlobal","storedValue","setStoredValue","getItem","valueToStore","site","useStaticQuery","logout","len","arr2","arrayLikeToArray","iter","objectWithoutPropertiesLoose","sourceSymbolKeys","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","minLen","__esModule","_react","_interopRequireWildcard","_styledComponents","_defaultProps","_utils","_getRequireWildcardCache","normalizeColor","dark","colorSpec","colors","colorStyle","colorCss","IconInner","shouldForwardProp","_size$match","_ref2$size","sizeProp","_split","scale","dimension","parseMetricToNum","unit","iconPad","extendDefaultTheme","_themes","xlarge","scaleProps","useScaleProps","_theme$icon","disableScaleDown","vectorEffect","calculatePad","iconDimension","_theme$icon2","_theme$text","_theme$text2","_props$size","desiredWidth","_pad","_StyledIcon","clipRule","strokeLinecap","strokeLinejoin","cx","cy","rx","_base","generatePrefix","now","random","_templateObject2","_taggedTemplateLiteralLoose","_templateObject","strings","raw","defaultMode","brand","control","blue","green","teal","purple","red","orange","yellow","font","family","face","radius","alignProp","edgeSize","xsmall","shadowSize","accordion","panel","calendar","daySize","checkBox","indeterminate","toggle","knob","checkBoxGroup","dataTable","xxsmall","_ref8","sortable","ascending","descending","pinned","dateInput","formField","help","info","xxlarge","layer","overlay","maskedInput","_ref9","radioButton","_ref10","_ref11","circle","radioButtonGroup","rangeInput","thumb","_ref12","track","lower","upper","select","_ref13","_ref14","tabs","_ref15","row","textInput","_ref16","rounding","spacing","freeze","StyledAnchor","defaultValidatorFn","sizeStyle","_props$theme$anchor","_props$theme$anchor$s","_props$theme$anchor$s2","colorProp","_props$theme$anchor2","_props$theme$anchor2$","_props$theme$anchor2$2","_props$theme$anchor3","_props$theme$anchor3$","_props$theme$anchor3$2","_props$theme$anchor4","_props$theme$anchor4$","_props$theme$anchor4$2","hasIcon","hasLabel","AnchorPropTypes","onClickProp","TextContext","sendAnalytics","_theme$anchor","_theme$anchor$size","_theme$anchor$size2","coloredIcon","cloneElement","anchorIcon","first","StyledAvatarText","avatar","StyledAvatar","AvatarPropTypes","_ref$align","_ref$justify","_ref$round","_ref$size","avatarSize","avatarTextSize","avatarProps","AvatarChildren","_FLEX_MAP","PULSE_SIZES","SLIDE_SIZES","JIGGLE_SIZES","ZOOM_SIZES","animationBounds","deg","normalizeTiming","time","defaultTiming","animationObjectStyle","animation","themeObj","bounds","animationTheme","animationTransition","keyframes","duration","delay","BASIS_MAP","auto","full","basisStyle","FLEX_MAP","grow","shrink","flexStyle","JUSTIFY_MAP","around","between","center","evenly","justifyStyle","WRAP_MAP","wrapStyle","wrapProp","animationItemStyle","animationObjectInitialStyle","animationAncilaries","animationStyle","interactiveStyle","_props$kindProp","kindProp","StyledBox","div","alignContent","directionProp","box","responsiveBreakpoint","breakpoint","directionStyle","heightProp","widthProp","fillProp","overflowProp","elevationProp","metric","responsiveMetric","gapStyle","StyledBoxGap","borderSize","borderMetric","borderOffset","responsiveBorderMetric","responsiveBorderOffset","adjustedBorder","_adjustedBorder","adjustedBorder2","gapGapStyle","OVERFLOW_VALUES","BoxPropTypes","backgroundProp","cssGap","_ref$direction","_ref$responsive","skeletonProp","skeleton","boxOptions","OptionsContext","announce","AnnounceContext","_skeletonProp$message","_skeletonProp$message2","focusable","clickProps","adjustedTabIndex","firstIndex","boxAs","nextSkeleton","depth","skeletonProps","_theme$skeleton","skeletonThemeColors","skeletonThemeProps","skeletonColors","SkeletonContext","nextTheme","darkChanged","ButtonPropTypes","StyledBadgeContainer","badge","Badge","containerRef","contentRef","stackRef","defaultBadgeDimension","onResize","minHeight","_contentRef$current$g","getBoundingClientRect","contentHeight","contentWidth","verticalSpace","ceil","addEventListener","removeEventListener","transformOrigin","radiusStyle","isIconOnly","basicStyle","colorValue","padStyle","hoverStyle","getHoverColor","StyledButton","primaryStyle","activeButtonStyle","disabledButtonStyle","transition","timing","fillContainer","padFromTheme","iconOnly","_themeObj$size","_themeObj$size$size","_themeObj$size$size$i","_themeObj$size3","_themeObj$size3$size","_themeObj$size3$size$","_themeObj$size2","_themeObj$size2$size","_themeObj$size2$size$","getPath","parts","adjustPadStyle","StyledButtonKind","themePaths","themePath","partStyles","adjPadStyles","kindStyle","themishObj","hoverIndicatorStyle","getIconColor","paths","baseObj","_obj","_obj$icon","_obj$icon$props","objColor","_obj2","_obj2$icon","_obj2$icon$props","_parts","getKindIcon","_obj3","getPropertyColor","_theme$button$kind","_theme$button2","_theme$button2$badge","badgeProp","kindArg","onMouseOut","reverseProp","_ref$type","_ref$a11yTitle","_theme$button$size","kindObj","onMouseOverButton","onMouseOutButton","kindIcon","buttonIcon","_iconColor","Skeleton","_theme$button","_theme$button$kind2","domTag","styledButtonResult","innerBadge","Tip","_theme$card$hover","CheckBoxPropTypes","_props$theme$checkBox","_props$theme$checkBox2","_props$theme$checkBox3","_props$theme$checkBox4","_props$theme$checkBox5","StyledCheckBoxIcon","svg","thickness","StyledCheckBoxContainer","_props$theme$checkBox6","_props$theme$checkBox7","_props$theme$checkBox8","_props$theme$checkBox9","StyledCheckBoxInput","dir","StyledCheckBoxBox","StyledCheckBoxToggle","span","StyledCheckBoxKnob","StyledCheckBox","stopLabelClick","CheckBox","checkedProp","_ref$defaultChecked","defaultChecked","focusProp","_onMouseEnter","_onMouseLeave","_onMouseOut","_onMouseOver","setChecked","hidden","themeableProps","_theme$checkBox$icons","CheckedIcon","IndeterminateIcon","borderColor","visual","preserveAspectRatio","checkBoxNode","normalizedLabel","htmlFor","dropKeyFrames","StyledDrop","marginProp","adjustedMargin","customCSS","intelligentMargin","marginStyle","getTransformOriginStyle","preventLayerClose","defaultAlign","DropContainer","_ref$overflow","restrictFocus","_ref$stretch","stretch","trapFocus","containerTarget","ContainerTargetContext","portalContext","PortalContext","portalId","nextPortalContext","dropRef","onClickDocument","clickedPortalId","composedPath","attr","getAttribute","parentNode","scrollParents","place","preserveHeight","alignControl","windowWidth","innerWidth","windowHeight","innerHeight","maxHeight","targetRect","containerRect","addScrollListeners","scrollParent","removeScrollListeners","themeContextValue","FocusedContainer","capture","ANIMATION_TYPE","ANIMATION_SHAPE","animationPropType","colorPropType","backgroundPropType","clip","repeat","rotate","MARGIN_SIZES","PAD_SIZES","elevationPropType","skeletonColorsPropType","corner","dimSizeType","DropPropTypes","Drop","inline","_ref$trapFocus","originalFocusedElement","setOriginalFocusedElement","activeElement","dropContainer","setDropContainer","containerChildNodesLength","childNodes","removeChild","createPortal","DropButtonPropTypes","defaultDropAlign","_ref$dropAlign","buttonRef","show","setShow","onClickInternal","_ref$hidden","_ref$restrictScroll","restrictScroll","bodyOverflowStyle","setBodyOverflowStyle","roots","nextRoots","setNextRoots","FormPropTypes","defaultTouched","defaultValidationResults","infos","stringToArray","arrayName","indexOfArray","arrayObjName","getValueAt","valueObject","pathArg","setValueAt","getFieldValue","isArrayField","_value$arrayName","componentValue","nextValue","_nextValue$arrayName$","rule","formValue","validateName","validationRules","validationResult","omitValid","nextErrors","nextInfos","_ref$","_ref2$errors","errorsProp","_ref2$infos","infosProp","_onReset","_onSubmit","onValidate","_ref2$validate","validateOn","formRef","setValueState","validationResults","setValidationResults","validationResultsRef","_useState4","mounted","setMounted","_useState5","pendingValidation","setPendingValidation","validationRulesRef","requiredFields","analyticsRef","buildValid","valid","filterRemovedFields","prevValidations","nextValidations","updateAnalytics","_validationResultsRef","errorFields","errorCounts","applyValidationRules","_validateForm","validatedErrors","validatedInfos","prevValidationResults","nextValidationResults","_validationResultsRef2","submitted","elapsed","formContextValue","useFormField","errorArg","infoArg","validateArg","requiredFieldIndex","inForm","_useState6","setInputValue","keyCreated","nextComponentValue","nextTouched","adjustedEvent","_validateForm2","noForm","StyledCheckBoxGroup","CheckBoxGroupPropTypes","CheckBoxGroup","disabledProp","labelKey","valueKey","optionsProp","formContext","onCheckBoxChange","optionValue","optionIndex","valueOption","optionProps","StyledRadioButtonContainer","StyledRadioButtonInput","StyledRadioButtonLabel","StyledRadioButtonIcon","StyledRadioButtonBox","_props$theme$radioBut","StyledRadioButton","RadioButtonPropTypes","RadioButton","Icon","RadioButtonGroupPropTypes","RadioButtonGroup","optionRefs","valueIndex","onNext","onPrevious","onLeft","onRight","optionDisabled","optionRest","aRef","FormFieldPropTypes","_excluded3","grommetInputNames","grommetInputPadNames","FormFieldBox","justBorder","FormFieldContentBox","StyledMessageContainer","messageType","RequiredText","ScreenReaderOnly","Message","containerProps","messageContent","Input","comp","InputComponent","extraProps","contentProps","errorProp","infoProp","_formContext$useFormF","contextOnBlur","contextOnChange","formKind","formFieldRef","formFieldTheme","themeBorder","debounce","setFunc","debounceDelay","useDebounce","wantContentPad","_formFieldTheme$check","containerRest","isFileInputComponent","labelStyle","abut","abutMargin","themeContentProps","outerBackground","outerStyle","innerProps","fileInput","mergedMargin","outerProps","requiredIndicator","showRequiredIndicator","indicator","_formFieldRef$current","root","getRootNode","contains","relatedTarget","JUSTIFY_CONTENT_MAP","justifyContentStyle","gapSizes","SIZE_MAP","normalizeSize","getRepeatSize","minFill","gaps","_size$","minSize","_size$2","maxSize","StyledGrid","a11yTitleProp","rowsProp","area","areasStyle","columnsStyle","sizes","rowsStyle","grid","GridPropTypes","_props$responsive","available","StyledGrommet","grommet","cssVars","GrommetPropTypes","FullGlobalStyle","createGlobalStyle","defaultOptions","_props$containerTarge","themeProp","_props$options","messagesProp","onAnalytics","themeMode","userAgent","stateResponsive","setResponsive","setRoots","themeBackground","matchMedia","baseBackground","nextMessages","clientWidth","deviceResponsive","deviceBreakpoints","tablet","grommetRef","RootsContext","_theme$header2","_theme$header2$sticky","sticky","headerRef","scrollTop","updateScrollDir","nextScrollTop","pageYOffset","_theme$header","_theme$header$sticky","StyledHeading","headingTheme","levelStyle","overflowWrap","breakpoints","responsiveData","HeadingPropTypes","HeadingSkeleton","overflowWrapProp","headingRef","setOverflowWrap","updateOverflowWrap","scrollWidth","offsetWidth","FIT_MAP","cover","contain","fitStyle","StyledImage","opacityProp","ImagePropTypes","fallback","onError","onLoad","isFallbackInUse","setFallbackInUse","InfiniteScrollPropTypes","calculateLastPageBound","step","InfiniteScroll","_ref$items","onMore","renderMarker","_ref$step","scrollShow","setScrollShow","lastPage","renderPageBounds","setRenderPageBounds","pageHeights","setPageHeights","pendingLength","setPendingLength","aboveMarkerRef","belowMarkerRef","evaluate","documentElement","nextBeginPage","pagesHeight","nextEndPage","showPage","sp","showIndex","showNode","scrollIntoView","rendered","nextPageHeights","lastBottom","topIndex","bottomIndex","_nextPageHeights","aboveHeight","belowHeight","marker","_marker","renderedMarker","KeyboardPropTypes","KEYS","restProps","onKeyDownHandler","callbackName","hiddenPositionStyle","StyledLayer","layerTarget","StyledOverlay","backdropFilter","getMargin","axis","marginValue","marginApplied","getBounds","KEYFRAMES","getAnimationStyle","animate","animationDuration","POSITIONS","desktopContainerStyle","intelligentRounding","roundStyle","responsiveContainerStyle","elevationStyle","StyledContainer","HiddenAnchor","LayerContainer","_ref$full","_ref$margin","_ref$modal","_ref$position","layerOptions","anchorRef","layerRef","isHidden","parentElement","updateBounds","layerRect","singleId","onMouseDown","hitResponsiveBreakpoint","LayerPropTypes","targetChildPosition","layerContainer","setLayerContainer","layerClone","cloneNode","appendChild","clonedContainer","querySelector","animationDirection","getElementById","orderedList","textMarked","unorderedList","ee","ne","te","re","ie","le","oe","ce","ae","se","de","ue","pe","fe","he","me","ge","ye","ke","xe","ve","be","simple","order","$e","Ee","we","Se","Ce","Ae","Oe","inTable","Te","Le","Re","ze","Me","Ie","Ue","je","Be","Ne","He","De","Pe","_e","Fe","We","Ge","Ze","enforceAtxHeadings","inAnchor","fallbackChildren","renderRule","MarkdownPropTypes","StyledParagraph","maxLines","maxlinesStyle","ParagraphPropTypes","ParagraphSkeleton","textContextValue","SkeletonPropTypes","StyledSkeleton","_props$theme$text","_props$theme$text$med","colorsProp","themeColors","useSkeleton","fillStyle","StyledStack","styleMap","StyledStackLayer","guiding","interactive","StackPropTypes","guidingChild","interactiveChild","prunedChildren","toChildIndex","guidingIndex","interactiveIndex","styledChildren","buildStyledChildren","tabHoverStyle","StyledTab","TabPropTypes","_useContext","TabsContext","tabsContextRef","onActivate","setActiveContent","setActiveTitle","setFocusIndex","over","setOver","normalizedTitle","tabStyles","tabRef","normalizedIcon","iconProp","withIconStyles","StyledTableCell","verticalAlign","tableContextTheme","StyledTableDataCaption","caption","StyledTableRow","StyledTableBody","StyledTableHeader","StyledTableFooter","StyledTable","TablePropTypes","TableContext","TableCellPropTypes","verticalAlignToJustify","middle","ariaDisabled","colSpan","onWidth","rowSpan","scope","tableContext","cellRef","updateHeight","cell","cellRect","mergedProps","cellProps","StyledTabsHeader","StyledTabPanel","StyledTabs","TabsPropTypes","_theme$tabs$header","alignControls","propsActiveIndex","setActiveIndex","activeContent","activeTitle","disableLeftArrow","setDisableLeftArrow","disableRightArrow","setDisableRightArrow","setOverflow","_useState7","focusIndex","isSafari","tabRefs","isVisible","_headerRef$current","tabRect","headerRect","updateArrowState","scrollTo","keyboard","amountHidden","scrollBy","behavior","checkVisible","setInterval","clearInterval","moveByArrowKey","scrolledToIndex","previous","moveBy","getTabsContext","tabsHeaderStyles","tabContentTitle","Previous","Next","weightStyle","wordBreakStyle","StyledText","TextPropTypes","TextSkeleton","tipProp","textRef","textTruncated","setTextTruncated","updateTip","styledTextResult","StyledTextInput","StyledTextInputContainer","StyledPlaceholder","StyledSuggestions","ol","suggestions","TextInputPropTypes","renderLabel","suggestion","stringLabel","dropHeight","_inputRef$current","defaultSuggestion","onSelect","onSuggestionSelect","onSuggestionsClose","onSuggestionsOpen","inputRef","suggestionsRef","showDrop","setShowDrop","handleSuggestionSelect","handleTextSelect","suggestionsAtClose","setSuggestionsAtClose","openDrop","closeDrop","clickOutside","valueSuggestionIndex","resetSuggestionIndex","activeSuggestionIndex","setActiveSuggestionIndex","mouseMovedSinceLastKey","setMouseMovedSinceLastKey","offsetTop","setValueFromSuggestion","onNextSuggestion","nextActiveIndex","onPreviousSuggestion","hasValue","showStyledPlaceholder","onMouseMove","itemRef","renderedLabel","keyboardProps","activeOptionID","comboboxProps","textInputIcon","autoComplete","TipPropTypes","tipRef","usingKeyboard","componentRef","_child$props","_child$props2","_child$props3","_child$props4","callerRef","AnalyticsContext","useAnalytics","AnalyticsProvider","lastUrlRef","observer","MutationObserver","_window","_window$location","previousUrl","observe","subtree","childList","_observer","disconnect","AnnounceContextPropTypes","mode","timeout","announcer","insertBefore","firstChild","createAnnouncer","setAttribute","innerHTML","_format","_options$id","idParts","baseId","messageObj","idPart","defaultMessage","newMessage","tokens","token","names","ResponsiveContextPropTypes","ThemeContextPropTypes","Extend","isRequired","accentColors","statusColors","critical","warning","ok","black","white","colorArray","baseSpacing","baseFontSize","fontScale","fontSizing","factor","jiggle","hair","phone","computer","controlBorderWidth","shadow","strong","weak","collapse","expand","borderWidth","slideDuration","cards","carousel","chart","clock","analog","huge","digital","collapsible","minSpeed","baseline","groupHeader","groupEnd","units","contract","diagram","dragOver","survey","pin","meter","nameValueList","nameValuePair","notification","actions","toast","iconContainer","textContainer","normal","page","wide","narrow","pageHeader","subtitle","pagination","controls","thumbsRating","spinner","rangeSelector","invert","selectMultiple","maxInline","skipLinks","starRating","video","captions","closedCaption","configure","fullScreen","pause","play","reduceVolume","volume","scrubber","interval","worldMap","continent","generate","findScrollParent","rect","scrollHeight","documentTags","findScrollParents","containsFocus","withinDropPortal","hasAttribute","isFocusable","shouldKeepFocus","getElementsByTagName","getFirstFocusableDescendant","getNewContainer","prepend","setFocusWithoutScroll","scrollX","scrollY","TABINDEX","TABINDEX_STATE","makeNodeFocusable","removeAttribute","elements","prior","autoFocusingTags","makeNodeUnfocusable","findVisibleParent","offsetParent","isNodeAfterScroll","isNodeBeforeScroll","findButtonParent","nodeName","normalizeBackground","backgroundArg","_theme$global$backgro","backgrounds","evalStyle","normalizeBackgroundColor","_theme$global$backgro2","normalizeBackgroundImage","_theme$global$backgro3","_theme$global$backgro4","_theme$global$backgro5","_theme$global$backgro6","normalized","backgroundIsDark","_color","darkContext","isDark","backgroundAndTextColors","textArg","textColor","shade","transparent","_shade","backgroundStyle","textColorArg","_backgroundAndTextCol","backgroundImage","lastIndexOf","rotateBackground","backgroundClipStyle","backgroundStyles","getHoverIndicatorStyle","responsiveBorderStyle","borderStyle","borderData","borderStyles","responsiveStyle","hexExp","rgbExp","rgbaExp","hslExp","canExtractRGBArray","getRGBArray","_parseHexToRGB","parseHexToRGB","alpha","_match$splice$map","hue2rgb","inT","hslToRGB","colorIsDark","_getRGBArray","getRGBA","_getRGBArray2","useSizedIcon","matchSize","breakpointStyle","deepFreeze","removeUndefined","useForwardedRef","innerRef","useImperativeHandle","getBreakpoint","viewportWidth","sortedBreakpoints","lastBreakpoint","find","getDeviceBreakpoint","getBreakpointStyle","breakpointSize","baseStyle","variant","controlBorderStyle","edgeStyle","horizontalVerticalEqual","focusStyles","_temp","forceOutline","outline","_color2","_size","unfocusStyles","_temp2","focusStyle","_temp3","skipSvgChildren","unfocusStyle","_temp4","adjustPad","getInputPadBySide","orientation","placeholderColor","placeholderStyle","inputStyle","_props$theme$text$pro","inputSizeStyle","inputPadForIcon","_props$theme","_props$theme$icon","_props$theme$icon2","_props$theme$icon2$si","overflowStyle","ALIGN_SELF_MAP","genericStyles","disabledStyle","componentStyle","plainInputStyle","kindPartStyles","ROUND_MAP","responsiveSize","_size2","_responsiveSize","TEXT_ALIGN_MAP","textAlignStyle","ALIGN_ITEMS_MAP","alignStyle","_ALIGN_ITEMS_MAP$prop","ALIGN_CONTENT_MAP","alignContentStyle","_ALIGN_CONTENT_MAP$pr","getSize","widthStyle","widthObjectStyle","widthStringStyle","heightStyle","heightObjectStyle","heightStringStyle","useKeyboard","setUsingKeyboard","animationEnding","selectedStyle","_colors","_mixins","setHoursWithOffset","newDate","getTimezoneOffset","getHours","setHours","translateEndAngle","polarToCartesian","baseUnit","arcCommands","POST_DECIMAL_DIGITS","centerX","centerY","angleInDegrees","angleInRadians","PI","cos","sin","startAngle","endAngle","normalizedEndAngle","arcSweep","toFixed","anglePer","_animation","_background","_border","_dates","_DOM","_graphics","_icon","_styles","_object","_pagination","_PortalContext","_refs","_responsive","_useKeyboard","getAvailableAtBadge","findAllByType","edgeToNum","availableAt","componentType","usePagination","normalizeShow","showProp","totalPages","activePage","setActivePage","itemsBeginIndex","itemsEndIndex","numberItems","_default","defaultTagName","subvalue","normalize","parseSelector","spaces","commas","caseSensitive","adjust","createAdjustMap","own","isNode","isChildren","addProperty","addChild","spaceSeparated","commaSeparated","commaOrSpaceSeparated","parsePrimitive","parsePrimitives","positiveNumber","overloadedBoolean","html","factory","character","alphabetical","decimal","characters","textContent","legacy","hexadecimal","alphanumerical","decodeEntity","settings","defaults","indent","entityCharacters","namedEntity","terminated","reference","following","begin","diff","additional","nonTerminated","handleText","handleReference","handleWarning","textContext","referenceContext","warningContext","pos","queue","parseError","noop","lineFeed","ampersand","formFeed","fromCharCode","numberSign","uppercaseX","lowercaseX","hexa","deci","semicolon","namedUnknown","namedNotTerminated","namedEmpty","attribute","equalsTo","numericNotTerminated","prohibited","numericProhibited","replacementCharacter","numericDisallowed","disallowed","numericEmpty","flush","_maxSize","_values","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","setter","safe","segments","cb","thisArg","DefinedInfo","Info","Type","dash","camelcase","datasetToProperty","cap","kebab","datasetToAttribute","$0","xlink","xml","xmlns","aria","booleanish","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","caseInsensitiveTransform","attributes","acceptcharset","classname","htmlfor","httpequiv","mustUseProperty","abbr","accept","acceptCharset","accessKey","allowFullScreen","allowPaymentRequest","allowUserMedia","autoCapitalize","autoFocus","autoPlay","charSet","cite","cols","contentEditable","controlsList","coords","crossOrigin","dateTime","decoding","defer","dirName","download","draggable","encType","enterKeyHint","formAction","formEncType","formMethod","formNoValidate","formTarget","high","hrefLang","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","itemId","itemProp","itemScope","itemType","loop","low","manifest","media","minLength","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onContextMenu","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onScroll","onSecurityPolicyViolation","onSeeked","onSeeking","onSlotChange","onStalled","onStorage","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","pattern","ping","playsInline","poster","preload","referrerPolicy","reversed","sandbox","scoped","seamless","slot","spellCheck","srcDoc","srcLang","srcSet","translate","typeMustMatch","useMap","aLink","archive","bgColor","bottomMargin","cellPadding","cellSpacing","charOff","classId","codeBase","codeType","compact","declare","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","summary","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","caseSensitiveTransform","definition","checks","checksLength","mask","mark","xtend","definitions","powers","increment","pow","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","hasMap","hasSet","hasArrayBuffer","isView","flags","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","createClass","descriptor","Constructor","protoProps","staticProps","objectWithoutProperties","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","callback","currentTime","cafPolyfill","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","head","tagNodes","querySelectorAll","indexToDelete","newElement","styleSheet","cssText","createTextNode","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","encode","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","noscript","script","HelmetExport","_class","HelmetWrapper","instance","classCallCheck","possibleConstructorReturn","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_this2","initAttributes","convertReactPropstoHtmlAttributes","_props","canUseDOM","defaultTitle","peek","rewind","mappedState","renderStatic","ex","React__default","_defineProperty","reducePropsToState","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","UNSAFE_componentWillMount","componentWillUnmount","PureComponent","getDisplayName","globalThis","restore","Prism","manual","disableWorkerMessageHandler","decode","markup","clike","js","Refractor","refract","register","grammar","languages","sup","util","registered","Token","env","stringifyAll","hooks","run","refractor","abap","lookbehind","aliases","abnf","coreRules","greedy","inside","range","terminal","repetition","actionscript","ada","agda","al","antlr4","escape","command","annotation","g4","apacheconf","refractorSql","apex","keywords","insertClassName","classNameInside","sql","trigger","apl","statement","assignment","dfn","applescript","aql","refractorCpp","arduino","ino","arff","asciidoc","quoted","interpreted","specifiers","admonition","callout","macro","replacement","copyFromAsciiDoc","adoc","asm6502","directive","asmatmel","refractorCsharp","aspnet","csharp","javascript","autohotkey","autoit","avisynth","replacements","allinternals","argument","avs","avroIdl","avdl","bash","envVars","commandAfterHeredoc","insideString","environment","shebang","toBeCopied","shell","basic","batch","parameter","bbcode","shortcode","bicep","interpolation","expression","datatype","decorator","birb","refractorC","bison","delimiter","bnf","rbnf","brainfuck","pointer","decrement","branching","brightscript","bro","bsl","oscript","cfscript","cfc","chaiscript","cpp","cil","clojure","cmake","namespace","cobol","coffeescript","coffee","concurnas","langext","conc","coq","commentSource","punct","modName","generic","refractorRuby","crystal","ruby","expansion","nested","depthLog2","keywordKinds","keywordsToPattern","words","typeDeclarationKeywords","nonTypeKeywords","nonContextualKeywords","nestedRound","genericName","typeExpressionWithoutTuple","tupleElement","typeExpression","typeInside","regularString","verbatimString","preprocessor","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolationRound","dotnet","cs","cshtml","commentLike","stringLike","square","curly","angle","tagRegion","block","razor","csp","hash","host","cssExtras","selectorInside","combinator","hexcode","addInlined","addAttribute","csv","cypher","relationship","dart","packagePrefix","generics","dataweave","dax","measure","dhall","coord","PREFIXES","unchanged","refractorMarkupTemplating","django","markupTemplating","buildPlaceholders","tokenizePlaceholders","jinja2","dnsZoneFile","docker","spaceAfterBackSlash","stringRule","commentRule","instruction","dockerfile","dot","ID","IDInside","withID","gv","ebnf","special","editorconfig","section","eiffel","ejs","eta","elixir","atom","elm","hvariable","erb","erlang","refractorLua","etlua","lua","excelFormula","sheet","comment_inside","string_inside","combinators","arrToWordsRegExp","builtins","$false","firestoreSecurityRules","flow","fortran","fsharp","ftl","FTL_EXPR","continuation","gcode","checksum","gdscript","gedcom","gherkin","tableRow","pystring","feature","scenario","git","glsl","gml","gamemakerlanguage","gn","gni","goModule","go","graphql","scalar","fragment","validTokens","startToken","inputVariables","isTokenType","getToken","definitionEnd","findClosingBracket","addAlias","mutationEnd","varToken","stackHeight","groovy","haml","filters","all_filters","handlebars","brackets","hbs","haskell","hs","haxe","reification","hcl","heredoc","hlsl","hoon","hpkp","hsts","http","headerValueOf","uri","langs","httpLanguages","suffixTypes","getSuffixPattern","contentType","suffix","ichigojam","icuMessageFormat","stringPattern","argumentSource","nestedMessage","refractorHaskell","idris","idr","iecst","address","ignore","gitignore","hgignore","npmignore","inform7","substitution","verb","ini","io","adverb","conjunction","java","classNamePrefix","refractorJava","refractorJavadoclike","javadoc","codeLinePattern","memberReference","javadoclike","addSupport","javaDocLike","docLanguage","tokenName","docCommentSupport","hashbang","javastacktrace","exceptions","more","jexl","jolie","aggregates","redirects","jq","stringInterpolation","jsExtras","withId","imports","spread","arrow","dom","maybeClassNameTokens","jsTemplates","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","getPlaceholder","counter","tokenizeWithHooks","tokenize","tokenizeInterpolationExpression","tempGrammar","tokenizeEmbedded","_tokens","placeholderCounter","placeholderMap","embeddedTokens","interpolationExpression","placeholders","walkTokens","after","afterTokens","typescript","ts","jsx","tsx","stringContent","findTemplateStrings","embedded","refractorTypescript","jsdoc","parameterPrefix","example","null","webmanifest","refractorJson","json5","jsonp","jsstacktrace","filename","braces","stringifyToken","openedTags","notTagNorBrace","openedBraces","plainText","julia","keepalived","ip","keyman","kotlin","interpolationInside","kts","kumir","nonId","wrapId","kum","kusto","latex","funcPattern","insideEqu","equation","headline","tex","refractorPhp","latte","php","markupLatte","less","refractorScheme","lilypond","schemeExpression","ly","liquid","insideRaw","tagMatch","lisp","simple_form","primitive","par","nestedPar","defvar","defun","lambda","car","varform","forms","arglist","sublist","elisp","emacs","livescript","llvm","exception","domain","lolcode","magma","generator","makefile","createInline","tableCell","tableLine","yaml","blockquote","strike","codeLang","cls","tagPattern","fromCodePoint","KNOWN_ENTITY_NAMES","plugins","autoloader","loadLanguages","ele","md","placeholderPattern","replaceFilter","tokenStack","includedCdataInside","attrName","mathml","ssml","rss","matlab","maxscript","mel","flag","mermaid","mizar","mongodb","operators","operatorsSource","monkey","moonscript","moon","n1ql","n4js","n4jsd","nand2tetrisHdl","naniscript","expressionDef","getTextContent","define","nani","bracket","bracketsIndex","isBracketsBalanced","nasm","neon","literal","nevod","quantifier","colon","nginx","nim","nix","antiquotation","nsis","objectivec","objc","ocaml","opencl","openqasm","qasm","oz","parigp","parser","pascal","asm","objectpascal","pascaligo","pcaxis","tlist","px","peoplecode","pcode","perl","filehandle","phpExtras","package","string_interpolation","phpdoc","plsql","powerquery","pq","mscript","powershell","processing","promql","vectorMatching","protobuf","builtinTypes","psl","pug","each","mixin","filter_pattern","puppet","pure","inlineLanguageRe","purebasic","pbfasm","purescript","purs","python","py","qml","jsString","jsComment","jsExpr","qore","qsharp","qualifiedName","interpolationExpr","qs","ellipsis","racket","rkt","specialEscape","rangeChar","groupName","backreference","alternation","rego","renpy","rpy","rip","roboconf","wildcard","robotframework","createSection","extendecInside","docTag","testNameLike","testPropertyLike","documentation","variables","tasks","robot","percentExpression","symbolName","rb","rust","multilineComment","sas","numericConstant","macroVariable","macroKeyword","equals","altformat","globalStatements","submitStatement","actionSets","casActions","datalines","sass","scala","SortedBNF","scss","refractorBash","shellSession","smali","smalltalk","smarty","smartyPattern","smartyLiteralMode","sml","word","smlnj","solidity","sol","solutionFile","guid","soy","numberPattern","soyLitteralMode","refractorTurtle","sparql","rq","splunkSpl","sqf","squirrel","stan","higherOrderFunctions","constraint","stylus","swift","nil","systemd","quotesSource","refractorT4Templating","t4Cs","t4","createT4","t4Templating","createBlock","contentAlias","insideLang","standard","refractorVbnet","t4Vb","refractorYaml","tap","fail","pass","pragma","bailout","plan","subtest","yamlish","tcl","textile","modifierRegex","parenthesesRegex","withModifier","modifierTokens","phrase","modifier","acronym","phraseInside","nestedPatterns","phraseInlineInside","phraseTableInside","toml","insertKey","tremor","extractor","troy","trickle","refractorJsx","tt2","turtle","trig","twig","typoscript","tsconfig","unrealscript","uc","uscript","uorazor","authority","port","vala","refractorBasic","vbnet","velocity","unparsed","verilog","vhdl","vim","visualBasic","vb","vba","warpscript","wasm","webIdl","wiki","emphasis","nowiki","wolfram","blank","mathematica","wl","nb","wren","xeora","xeoracube","xmlDoc","insertDocComment","docComment","slashDocComment","tickDocComment","xojo","xquery","extension","anchorOrAlias","plainKey","createValuePattern","yml","yang","zig","IDENTIFIER","ALIGN","TYPE","_self","uniqueId","plainTextGrammar","objId","deepClone","getLanguage","setLanguage","classList","currentScript","scripts","isActive","defaultActivation","no","plaintext","txt","redef","ret","newToken","old","DFS","propertyType","highlightAll","highlightAllUnder","highlightElement","insertHighlightedCode","highlightedCode","Worker","worker","onmessage","evt","postMessage","immediateClose","tokenList","LinkedList","addAfter","matchGrammar","tail","callbacks","matchedStr","matchPattern","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","currentNode","reach","removeCount","matchStr","removeFrom","removeRange","nestedRematch","newNode","highlightAutomaticallyCallback","readyState","WorkerGlobalScope","reWords","upperFirst","acc","pascalCase","kebabCase","sentenceCase","titleCase","toposort","sorted","outgoingEdges","edge","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","uniqueNodes","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isFunction","isNumber","isDate","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","getOwnPropertyNames","findKey","_global","isContextDefined","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isFormData","FormData","append","isArrayBufferView","isBoolean","isStream","pipe","caseless","assignValue","targetKey","stripBOM","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","forEachEntry","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","p1","p2","toFiniteNumber","isFinite","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","isThenable","AxiosError","request","utils","toJSON","fileName","columnNumber","customProps","axiosError","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","indexes","visitor","defaultVisitor","useBlob","Blob","convertValue","isFlatArray","exposedHelpers","build","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokensRE","parseTokens","matcher","deleteHeader","formatHeader","targets","asStrings","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","secure","cookie","toGMTString","read","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","protocol","hostname","pathname","requestURL","samplesCount","bytes","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","knownAdapters","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","unsubscribe","signal","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","paramsSerializer","onreadystatechange","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","send","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","ERR_DEPRECATED","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","_request","dummy","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","toFormData","Cancel","promises","isAxiosError","formToJSON","getAdapter","bail","trough","pipeline","middlewareIndex","middleware","called","wrapped","parameters","fnExpectsCallback","middelware","stringifyPosition","point","VFileMessage","origin","fatal","ruleId","actual","expected","note","basename","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","normalizeString","sep","proc","cwd","isUrl","fileUrlOrPath","urlToPath","URL","third","getPathFromURLPosix","VFile","stored","assertNonEmpty","assertPart","stem","encoding","unified","transformers","attachers","frozen","freezeIndex","processor","assertUnfrozen","Parser","Compiler","attacher","transformer","POSITIVE_INFINITY","addPlugin","addList","addPreset","plugin","vfile","assertParser","newable","assertCompiler","assertNode","compile","runSync","complete","assertDone","processSync","asyncName","looksLikeAVFile","emptyOptions","one","includeImageAlt","includeHtml","chunkStart","syntaxExtension","hook","constructs","existing","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","factorySpace","effects","enter","consume","exit","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","containerState","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","events","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","lazy","containerContinue","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","nok","disable","blankLine","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","tokenizer","childEvents","breaks","_gfmTasklistFirstContentOfListItem","chunkInside","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","initial","flowInitial","afterConstruct","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","bufferIndex","chunk","_index","_bufferIndex","createTokenizer","initialize","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","constructFactory","construct","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","expectedCode","startIndex","startBufferIndex","endIndex","endBufferIndex","view","sliceChunks","chunkIndex","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","resolveTo","thematicBreak","sequence","initialSize","atMarker","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","factoryWhitespace","normalizeIdentifier","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","closeStart","startBefore","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","closingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","tagOpen","declaration","commentEnd","commentClose","lineEndingBefore","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","codeText","tailExitIndex","headEnterIndex","extensions","combineExtensions","decodeNumericCharacterReference","characterEscapeOrReference","decodeString","$1","$2","hex","fromMarkdown","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","resume","setData","getData","listStack","prepareList","handler","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","referenceType","ancestor","compiler","postprocess","atCarriageReturn","endPosition","preprocess","patternInScope","listInScope","inConstruct","notInConstruct","_1","unsafe","formatCodeAsIndented","fences","checkQuote","checkEmphasis","tracker","createTracker","containerPhrasing","convert","castFactory","typeFactory","any","anyFactory","propsFactory","CONTINUE","EXIT","visitParents","parents","subresult","grandparents","toResult","formatHeadingAsSetext","literalWithBreak","setext","subexit","imageReference","associationId","patternCompile","_compiled","inlineCode","formatLinkAsAutolink","resourceLink","linkReference","checkBullet","bullet","checkBulletOrdered","bulletOrdered","checkRule","phrasing","checkStrong","handle","indentLines","containerFlow","break","fence","checkFence","longestStreak","rank","closeAtx","bulletCurrent","bulletOther","bulletOrderedOther","checkBulletOrderedOther","checkBulletOther","bulletLastUsed","useDifferentMarker","firstListItem","indexStack","listItemIndent","checkListItemIndent","incrementListMarker","ruleSpaces","ruleRepetition","checkRuleRepetition","fullPhrasingSpans","association","eol","numerical","escapeBackslashes","whole","lineShift","toMarkdown","containerPhrasingBound","containerFlowBound","safeBound","tightDefinitions","joinDefinition","zwitch","footnoteDefinition","emptyTypes","keep","clean"],"sourceRoot":""}