{"version":3,"file":"static/js/main.85fa1466.js","mappings":"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AAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,M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,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,0CCJ9uvE,IAAA/8F,EAAAijE,EAAAA,MAAAA,QAAAtiE,EAAAsiE,EAAAA,MAAAA,QAEPyhB,EAAUzhB,EAAQ,MAClBwhB,EAAMxhB,EAAQ,MAGdoF,EAAIqc,EAAQlM,YAQZ8b,EAAY,WACd,SAAAA,IAAct0F,EAAA,KAAAs0F,GACVl/F,KAAKyuB,KAAO,KAEZzuB,KAAKgK,KAAO,EACZhK,KAAK21C,YAAc,EACnB31C,KAAK41C,aAAe,EAEpB51C,KAAK61C,SAAW,GAEhB71C,KAAK81C,iBAAkB,EAEvB91C,KAAK+1C,kBAAmB,EACxB/1C,KAAKg2C,eAAgB,EACrBh2C,KAAK4nG,gBAnBoB,KAoB7B,CA8HC,OA9HAr8F,EAAA2zF,EAAA,EAAAvhG,IAAA,OAAAE,MAED,WACI,GACH,CAAAF,IAAA,UAAAE,MAED,WACImC,KAAK61C,SAAS5yC,KAAKjD,KAAK21C,YACxB31C,KAAK21C,WAAa31C,KAAKgK,GAC3B,GAAC,CAAArM,IAAA,oBAAAE,MAED,SAAkB+nF,GAEd,GAAI5lF,KAAKgK,MAAQhK,KAAK41C,YAAa,CAC/B,IAAMgxD,EAAS5mG,KAAKyuB,KAAK5iB,WAAW7L,KAAKgK,IAAM,GAE/C,GAAIslF,EAAQzJ,gBAAgB+gB,GAOxB,OALA5mG,KAAKgK,MAGLhK,KAAK6nG,UAEEvY,EAAQxJ,0BAA0BF,EAAIghB,EAErD,MAGK,IAAK5mG,KAAK+1C,iBAEX,OADA/1C,KAAKg2C,eAAgB,EACdi9B,EAAEoQ,IAMb,OAFArjF,KAAKymF,KAAK4I,EAAI5/B,wBAEPm2B,CACX,GAAC,CAAAjoF,IAAA,kBAAAE,MAED,WACQmC,KAAKgK,IAAMhK,KAAK4nG,kBAChB5nG,KAAK41C,aAAe51C,KAAKgK,IACzBhK,KAAKyuB,KAAOzuB,KAAKyuB,KAAK4tB,UAAUr8C,KAAKgK,KACrChK,KAAKgK,IAAM,EACXhK,KAAK21C,YAAc,EACnB31C,KAAK61C,SAAW,GAExB,GAAC,CAAAl4C,IAAA,QAAAE,MAED,SAAM2f,EAAOkoF,GACL1lG,KAAKyuB,KACLzuB,KAAKyuB,MAAQjR,EAEbxd,KAAKyuB,KAAOjR,EAGhBxd,KAAK41C,YAAc51C,KAAKyuB,KAAKjrB,OAAS,EACtCxD,KAAKg2C,eAAgB,EACrBh2C,KAAK+1C,iBAAmB2vD,CAC5B,GAAC,CAAA/nG,IAAA,yBAAAE,MAED,SAAuB2f,GACnBxd,KAAKyuB,KAAOzuB,KAAKyuB,KAAK4tB,UAAU,EAAGr8C,KAAKgK,IAAM,GAAKwT,EAAQxd,KAAKyuB,KAAK4tB,UAAUr8C,KAAKgK,IAAM,EAAGhK,KAAKyuB,KAAKjrB,QAEvGxD,KAAK41C,YAAc51C,KAAKyuB,KAAKjrB,OAAS,EACtCxD,KAAKg2C,eAAgB,CACzB,GAAC,CAAAr4C,IAAA,UAAAE,MAED,WAGI,GAFAmC,KAAKgK,MAEDhK,KAAKgK,IAAMhK,KAAK41C,YAEhB,OADA51C,KAAKg2C,eAAiBh2C,KAAK+1C,iBACpBk9B,EAAEoQ,IAGb,IAAIuC,EAAK5lF,KAAKyuB,KAAK5iB,WAAW7L,KAAKgK,KAInC,OAAIhK,KAAK81C,iBAAmB8vC,IAAO3S,EAAEwQ,WACjCzjF,KAAK81C,iBAAkB,EACvB91C,KAAK6nG,UACE7nG,KAAK4rF,WAIZhG,IAAO3S,EAAEuQ,iBACTxjF,KAAK81C,iBAAkB,EAChBm9B,EAAEwQ,YAGbzjF,KAAK81C,iBAAkB,EAEnBw5C,EAAQ3J,YAAYC,KACpBA,EAAK5lF,KAAK8nG,kBAAkBliB,IAO3BA,EAAK,IAAQA,EAAK,KAASA,IAAO3S,EAAEwQ,WAAamC,IAAO3S,EAAEuQ,iBAAoBoC,EAAK,KAAQA,EAAK,OAGjG5lF,KAAK+nG,+BAA+BniB,GAGjCA,EACX,GAAC,CAAAjoF,IAAA,iCAAAE,MAED,SAA+B+nF,GACvB0J,EAAQrJ,mBAAmBL,GAC3B5lF,KAAKymF,KAAK4I,EAAIviC,+BACPwiC,EAAQpJ,qBAAqBN,IACpC5lF,KAAKymF,KAAK4I,EAAIhgC,0BAEtB,GAAC,CAAA1xD,IAAA,UAAAE,MAED,WACQmC,KAAKgK,MAAQhK,KAAK21C,aAClB31C,KAAK21C,WAAa31C,KAAK61C,SAASlxC,MAChC3E,KAAKgK,OAGThK,KAAKgK,KACT,KAACk1F,CAAA,CA7Ia,GAgJlBzxB,EAAOtwE,QAAU+hG,qCC5JjB,IAAQptB,EAAkBjE,EAAQ,MAA1BiE,cAGR30E,EAAQy5C,eAAiB,WACrB,MAAO,CACHjE,SAAU,YACVE,KAAMi/B,EAAcc,UACpB9/B,WAAY,GAEpB,EAEA31C,EAAQ+3F,uBAAyB,WAC7B,MAAO,CACHviD,SAAU,qBACVG,WAAY,GAEpB,EAEA31C,EAAQ6oD,cAAgB,SAASphC,EAASsuB,EAAcC,GACpD,MAAO,CACHR,SAAU/tB,EACVA,QAASA,EACTuuB,MAAOA,EACPD,aAAcA,EACdJ,WAAY,GACZ0B,WAAY,KAEpB,EAEAr3C,EAAQw5F,kBAAoB,SAASjoF,GACjC,MAAO,CACHikC,SAAU,WACVjkC,KAAMA,EACN8lC,WAAY,KAEpB,EAEA,IAAMwzD,EAAiB,SAASnqG,GAC5B,MAAO,CACH80C,SAAU,QACV90C,MAAOA,EACP22C,WAAY,KAEpB,EAGM8R,EAAenpD,EAAQmpD,YAAc,SAAS9R,EAAYyzD,GAC5DzzD,EAAW1B,WAAW7vC,KAAKglG,GAC3BA,EAAQzzD,WAAaA,CACzB,EAEMwjD,EAAgB76F,EAAQ66F,aAAe,SAASxjD,EAAYyzD,EAASC,GACvE,IAAMpJ,EAAetqD,EAAW1B,WAAWnrC,QAAQugG,GAEnD1zD,EAAW1B,WAAWt+B,OAAOsqF,EAAc,EAAGmJ,GAC9CA,EAAQzzD,WAAaA,CACzB,EAEAr3C,EAAQu5F,mBAAqB,SAASyR,EAAiBC,GACnDD,EAAgBhxF,QAAUixF,CAC9B,EAEAjrG,EAAQwsF,mBAAqB,SAASwe,GAClC,OAAOA,EAAgBhxF,OAC3B,EAEAha,EAAQo5F,gBAAkB,SAAS1+E,EAAU9T,EAAM2wC,EAAUC,GAGzD,IAFA,IAAI0zD,EAAc,KAET5kG,EAAI,EAAGA,EAAIoU,EAASi7B,WAAWtvC,OAAQC,IAC5C,GAAwC,kBAApCoU,EAASi7B,WAAWrvC,GAAGkvC,SAA8B,CACrD01D,EAAcxwF,EAASi7B,WAAWrvC,GAClC,KACJ,CAGA4kG,GACAA,EAAYtkG,KAAOA,EACnBskG,EAAY3zD,SAAWA,EACvB2zD,EAAY1zD,SAAWA,GAEvB2R,EAAYzuC,EAAU,CAClB86B,SAAU,gBACV5uC,KAAMA,EACN2wC,SAAUA,EACVC,SAAUA,GAGtB,EAEAx3C,EAAQ00F,gBAAkB,SAASh6E,EAAUg7B,GACzCh7B,EAASg7B,KAAOA,CACpB,EAEA11C,EAAQs1E,gBAAkB,SAAS56D,GAC/B,OAAOA,EAASg7B,IACpB,EAEA11C,EAAQ45F,WAAa,SAAS7jF,GAC1B,GAAIA,EAAKshC,WAAY,CACjB,IAAM2J,EAAMjrC,EAAKshC,WAAW1B,WAAWnrC,QAAQuL,GAE/CA,EAAKshC,WAAW1B,WAAWt+B,OAAO2pC,EAAK,GACvCjrC,EAAKshC,WAAa,IACtB,CACJ,EAEAr3C,EAAQ+nE,WAAa,SAAS1wB,EAAYz3B,GACtC,GAAIy3B,EAAW1B,WAAWtvC,OAAQ,CAC9B,IAAM8kG,EAAW9zD,EAAW1B,WAAW0B,EAAW1B,WAAWtvC,OAAS,GAEtE,GAA0B,UAAtB8kG,EAAS31D,SAET,YADA21D,EAASzqG,OAASkf,EAG1B,CAEAupC,EAAY9R,EAAYwzD,EAAejrF,GAC3C,EAEA5f,EAAQ86F,iBAAmB,SAASzjD,EAAYz3B,EAAMmrF,GAClD,IAAMI,EAAW9zD,EAAW1B,WAAW0B,EAAW1B,WAAWnrC,QAAQugG,GAAiB,GAElFI,GAAkC,UAAtBA,EAAS31D,SACrB21D,EAASzqG,OAASkf,EAElBi7E,EAAaxjD,EAAYwzD,EAAejrF,GAAOmrF,EAEvD,EAEA/qG,EAAQk+F,gBAAkB,SAASvE,EAAW3jD,GAG1C,IAFA,IAAMo1D,EAAoB,GAEjB9kG,EAAI,EAAGA,EAAIqzF,EAAU3jD,MAAM3vC,OAAQC,IACxC8kG,EAAkBtlG,KAAK6zF,EAAU3jD,MAAM1vC,GAAGM,MAG9C,IAAK,IAAIkpF,EAAI,EAAGA,EAAI95C,EAAM3vC,OAAQypF,KACoB,IAA9Csb,EAAkB5gG,QAAQwrC,EAAM85C,GAAGlpF,OACnC+yF,EAAU3jD,MAAMlwC,KAAKkwC,EAAM85C,GAGvC,EAGA9vF,EAAQ83F,cAAgB,SAAS/hF,GAC7B,OAAOA,EAAK4/B,WAAW,EAC3B,EAEA31C,EAAQ+rF,cAAgB,SAASh2E,GAC7B,OAAOA,EAAK4/B,UAChB,EAEA31C,EAAQg5F,cAAgB,SAASjjF,GAC7B,OAAOA,EAAKshC,UAChB,EAEAr3C,EAAQmvF,YAAc,SAAS94C,GAC3B,OAAOA,EAAQL,KACnB,EAGAh2C,EAAQkrF,WAAa,SAAS70C,GAC1B,OAAOA,EAAQ5uB,OACnB,EAEAznB,EAAQsvF,gBAAkB,SAASj5C,GAC/B,OAAOA,EAAQN,YACnB,EAEA/1C,EAAQqrG,mBAAqB,SAASne,GAClC,OAAOA,EAASxsF,KACpB,EAEAV,EAAQsrG,sBAAwB,SAAS5e,GACrC,OAAOA,EAAYn7E,IACvB,EAEAvR,EAAQurG,wBAA0B,SAASL,GACvC,OAAOA,EAAYtkG,IACvB,EAEA5G,EAAQwrG,4BAA8B,SAASN,GAC3C,OAAOA,EAAY3zD,QACvB,EAEAv3C,EAAQyrG,4BAA8B,SAASP,GAC3C,OAAOA,EAAY1zD,QACvB,EAGAx3C,EAAQ0rG,WAAa,SAAS31F,GAC1B,MAAyB,UAAlBA,EAAKy/B,QAChB,EAEAx1C,EAAQ2rG,cAAgB,SAAS51F,GAC7B,MAAyB,aAAlBA,EAAKy/B,QAChB,EAEAx1C,EAAQisF,mBAAqB,SAASl2E,GAClC,MAAyB,kBAAlBA,EAAKy/B,QAChB,EAEAx1C,EAAQ4rG,cAAgB,SAAS71F,GAC7B,QAASA,EAAK0R,OAClB,EAGAznB,EAAQ+qF,0BAA4B,SAASh1E,EAAMw/B,GAC/Cx/B,EAAKmgC,mBAAqBX,CAC9B,EAEAv1C,EAAQirF,0BAA4B,SAASl1E,GACzC,OAAOA,EAAKmgC,kBAChB,EAEAl2C,EAAQqrF,6BAA+B,SAASt1E,EAAM81F,GAClD91F,EAAKmgC,mBAAqBh2C,OAAO6J,OAAOgM,EAAKmgC,mBAAoB21D,EACrE,iCC1NAv7B,EAAOtwE,QAAU,SAAsB8rG,EAAU16F,GAG7C,MAAO,CAAC06F,EAFR16F,EAAUA,GAAWlR,OAAO8B,OAAO,OAER26C,QAAO,SAACovD,EAAQC,GAKvC,OAJA9rG,OAAOkH,KAAK4kG,GAAQ5oG,SAAQ,SAAA5C,GACxBurG,EAAOvrG,GAAOwrG,EAAOxrG,EACzB,IAEOurG,CACX,GAAG7rG,OAAO8B,OAAO,MACrB,qCCZa,IAAAyL,EAAAijE,EAAAA,MAAAA,QAAAtiE,EAAAsiE,EAAAA,MAAAA,QAEPgZ,EAAK,WACP,SAAAA,EAAYR,GAAMz7E,EAAA,KAAAi8E,GAId,IAHA,IAAMuiB,EAAkB,CAAC,EACnBC,EAAoBrpG,KAAKspG,sBAAsBtpG,KAAMopG,GAE3D5iG,EAAA,EAAA+iG,EAAkBlsG,OAAOkH,KAAK8kG,GAAkB7iG,EAAA+iG,EAAA/lG,OAAAgD,IAAE,CAA7C,IAAM7I,EAAG4rG,EAAA/iG,GAC4B,oBAA3B6iG,EAAkB1rG,KACzByrG,EAAgBzrG,GAAO0oF,EAAK1oF,GAC5B0oF,EAAK1oF,GAAO0rG,EAAkB1rG,GAEtC,CACJ,CAIC,OAJA4N,EAAAs7E,EAAA,EAAAlpF,IAAA,wBAAAE,MAED,WACI,MAAM,IAAI2D,MAAM,kBACpB,KAACqlF,CAAA,CAfM,GAkBXA,EAAMM,QAAU,SAASd,EAAMmjB,EAAMljB,GAC5BD,EAAKvvC,WACNuvC,EAAKvvC,SAAW,IAGpB,IAAK,IAAIrzC,EAAI,EAAGA,EAAI4iF,EAAKvvC,SAAStzC,OAAQC,IACtC,GAAI4iF,EAAKvvC,SAASrzC,GAAGK,cAAgB0lG,EACjC,OAAOnjB,EAAKvvC,SAASrzC,GAI7B,IAAMgmG,EAAQ,IAAID,EAAKnjB,EAAMC,GAI7B,OAFAD,EAAKvvC,SAAS7zC,KAAKwmG,GAEZA,CACX,EAEAh8B,EAAOtwE,QAAU0pF,mCC7BJ,SAAS1rC,EAAEpyC,EAAE49B,GAAG,IAAI2U,EAAEvyC,EAAEvF,OAAOuF,EAAE9F,KAAK0jC,GAAG59B,EAAE,KAAK,EAAEuyC,GAAG,CAAC,IAAI5mB,EAAE4mB,EAAE,IAAI,EAAEL,EAAElyC,EAAE2rB,GAAG,KAAG,EAAEknB,EAAEX,EAAEtU,IAA0B,MAAM59B,EAA7BA,EAAE2rB,GAAGiS,EAAE59B,EAAEuyC,GAAGL,EAAEK,EAAE5mB,CAAc,CAAC,CAAC,SAAS0e,EAAErqC,GAAG,OAAO,IAAIA,EAAEvF,OAAO,KAAKuF,EAAE,EAAE,CAAC,SAASs4B,EAAEt4B,GAAG,GAAG,IAAIA,EAAEvF,OAAO,OAAO,KAAK,IAAImjC,EAAE59B,EAAE,GAAGuyC,EAAEvyC,EAAEpE,MAAM,GAAG22C,IAAI3U,EAAE,CAAC59B,EAAE,GAAGuyC,EAAEvyC,EAAE,IAAI,IAAI2rB,EAAE,EAAEumB,EAAElyC,EAAEvF,OAAOu4C,EAAEd,IAAI,EAAEvmB,EAAEqnB,GAAG,CAAC,IAAIX,EAAE,GAAG1mB,EAAE,GAAG,EAAEu6E,EAAElmG,EAAEqyC,GAAGG,EAAEH,EAAE,EAAEinB,EAAEt5D,EAAEwyC,GAAG,GAAG,EAAEK,EAAEqzD,EAAE3zD,GAAGC,EAAEN,GAAG,EAAEW,EAAEymB,EAAE4sC,IAAIlmG,EAAE2rB,GAAG2tC,EAAEt5D,EAAEwyC,GAAGD,EAAE5mB,EAAE6mB,IAAIxyC,EAAE2rB,GAAGu6E,EAAElmG,EAAEqyC,GAAGE,EAAE5mB,EAAE0mB,OAAQ,MAAGG,EAAEN,GAAG,EAAEW,EAAEymB,EAAE/mB,IAA0B,MAAMvyC,EAA7BA,EAAE2rB,GAAG2tC,EAAEt5D,EAAEwyC,GAAGD,EAAE5mB,EAAE6mB,CAAc,EAAC,CAAC,OAAO5U,CAAC,CAC3c,SAASiV,EAAE7yC,EAAE49B,GAAG,IAAI2U,EAAEvyC,EAAEmmG,UAAUvoE,EAAEuoE,UAAU,OAAO,IAAI5zD,EAAEA,EAAEvyC,EAAE6tB,GAAG+P,EAAE/P,EAAE,CAAC,GAAG,kBAAkBu4E,aAAa,oBAAoBA,YAAY31F,IAAI,CAAC,IAAIkiC,EAAEyzD,YAAYhyG,EAAQiyG,aAAa,WAAW,OAAO1zD,EAAEliC,KAAK,CAAC,KAAK,CAAC,IAAIshC,EAAEu0D,KAAKlC,EAAEryD,EAAEthC,MAAMrc,EAAQiyG,aAAa,WAAW,OAAOt0D,EAAEthC,MAAM2zF,CAAC,CAAC,CAAC,IAAInyD,EAAE,GAAGK,EAAE,GAAGH,EAAE,EAAE9Z,EAAE,KAAKya,EAAE,EAAEyzD,GAAE,EAAGvwB,GAAE,EAAGpF,GAAE,EAAG41B,EAAE,oBAAoB5rD,WAAWA,WAAW,KAAK6rD,EAAE,oBAAoBC,aAAaA,aAAa,KAAKC,EAAE,qBAAqBC,aAAaA,aAAa,KACnT,SAASC,EAAE7mG,GAAG,IAAI,IAAI49B,EAAEyM,EAAEiI,GAAG,OAAO1U,GAAG,CAAC,GAAG,OAAOA,EAAE32B,SAASqxB,EAAEga,OAAQ,MAAG1U,EAAEkpE,WAAW9mG,GAAgD,MAA9Cs4B,EAAEga,GAAG1U,EAAEuoE,UAAUvoE,EAAEmpE,eAAe30D,EAAEH,EAAErU,EAAa,CAACA,EAAEyM,EAAEiI,EAAE,CAAC,CAAC,SAAS00D,EAAEhnG,GAAa,GAAV4wE,GAAE,EAAGi2B,EAAE7mG,IAAOg2E,EAAE,GAAG,OAAO3rC,EAAE4H,GAAG+jC,GAAE,EAAG/D,EAAEg1B,OAAO,CAAC,IAAIrpE,EAAEyM,EAAEiI,GAAG,OAAO1U,GAAGspE,EAAEF,EAAEppE,EAAEkpE,UAAU9mG,EAAE,CAAC,CACra,SAASinG,EAAEjnG,EAAE49B,GAAGo4C,GAAE,EAAGpF,IAAIA,GAAE,EAAG61B,EAAEU,GAAGA,GAAG,GAAGZ,GAAE,EAAG,IAAIh0D,EAAEO,EAAE,IAAS,IAAL+zD,EAAEjpE,GAAOvF,EAAEgS,EAAE4H,GAAG,OAAO5Z,MAAMA,EAAE0uE,eAAenpE,IAAI59B,IAAIonG,MAAM,CAAC,IAAIz7E,EAAE0M,EAAEpxB,SAAS,GAAG,oBAAoB0kB,EAAE,CAAC0M,EAAEpxB,SAAS,KAAK6rC,EAAEza,EAAEgvE,cAAc,IAAIn1D,EAAEvmB,EAAE0M,EAAE0uE,gBAAgBnpE,GAAGA,EAAExpC,EAAQiyG,eAAe,oBAAoBn0D,EAAE7Z,EAAEpxB,SAASirC,EAAE7Z,IAAIgS,EAAE4H,IAAI3Z,EAAE2Z,GAAG40D,EAAEjpE,EAAE,MAAMtF,EAAE2Z,GAAG5Z,EAAEgS,EAAE4H,EAAE,CAAC,GAAG,OAAO5Z,EAAE,IAAI2a,GAAE,MAAO,CAAC,IAAIX,EAAEhI,EAAEiI,GAAG,OAAOD,GAAG60D,EAAEF,EAAE30D,EAAEy0D,UAAUlpE,GAAGoV,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQ3a,EAAE,KAAKya,EAAEP,EAAEg0D,GAAE,CAAE,CAAC,CAD1a,qBAAqBe,gBAAW,IAASA,UAAUC,iBAAY,IAASD,UAAUC,WAAWC,gBAAgBF,UAAUC,WAAWC,eAAeppG,KAAKkpG,UAAUC,YAC2Q,IACzP30B,EAD6Pr/B,GAAE,EAAGk0D,EAAE,KAAKN,GAAG,EAAE10B,EAAE,EAAEi1B,GAAG,EACvc,SAASN,IAAI,QAAOhzG,EAAQiyG,eAAeqB,EAAEj1B,EAAO,CAAC,SAASk1B,IAAI,GAAG,OAAOF,EAAE,CAAC,IAAIznG,EAAE5L,EAAQiyG,eAAeqB,EAAE1nG,EAAE,IAAI49B,GAAE,EAAG,IAAIA,EAAE6pE,GAAE,EAAGznG,EAAE,CAAC,QAAQ49B,EAAEg1C,KAAKr/B,GAAE,EAAGk0D,EAAE,KAAK,CAAC,MAAMl0D,GAAE,CAAE,CAAO,GAAG,oBAAoBozD,EAAE/zB,EAAE,WAAW+zB,EAAEgB,EAAE,OAAO,GAAG,qBAAqBC,eAAe,CAAC,IAAIC,EAAE,IAAID,eAAev0B,EAAEw0B,EAAEC,MAAMD,EAAEE,MAAMC,UAAUL,EAAE/0B,EAAE,WAAWS,EAAE40B,YAAY,KAAK,CAAC,MAAMr1B,EAAE,WAAW4zB,EAAEmB,EAAE,EAAE,EAAE,SAAS11B,EAAEjyE,GAAGynG,EAAEznG,EAAEuzC,IAAIA,GAAE,EAAGq/B,IAAI,CAAC,SAASs0B,EAAElnG,EAAE49B,GAAGupE,EAAEX,GAAE,WAAWxmG,EAAE5L,EAAQiyG,eAAe,GAAEzoE,EAAE,CAC5dxpC,EAAQ8zG,sBAAsB,EAAE9zG,EAAQ+zG,2BAA2B,EAAE/zG,EAAQg0G,qBAAqB,EAAEh0G,EAAQi0G,wBAAwB,EAAEj0G,EAAQk0G,mBAAmB,KAAKl0G,EAAQm0G,8BAA8B,EAAEn0G,EAAQo0G,wBAAwB,SAASxoG,GAAGA,EAAEiH,SAAS,IAAI,EAAE7S,EAAQq0G,2BAA2B,WAAWzyB,GAAGuwB,IAAIvwB,GAAE,EAAG/D,EAAEg1B,GAAG,EAC1U7yG,EAAQs0G,wBAAwB,SAAS1oG,GAAG,EAAEA,GAAG,IAAIA,EAAEo5B,QAAQ/gC,MAAM,mHAAmHo6E,EAAE,EAAEzyE,EAAEwrB,KAAKm9E,MAAM,IAAI3oG,GAAG,CAAC,EAAE5L,EAAQw0G,iCAAiC,WAAW,OAAO91D,CAAC,EAAE1+C,EAAQy0G,8BAA8B,WAAW,OAAOx+D,EAAE4H,EAAE,EAAE79C,EAAQ00G,cAAc,SAAS9oG,GAAG,OAAO8yC,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIlV,EAAE,EAAE,MAAM,QAAQA,EAAEkV,EAAE,IAAIP,EAAEO,EAAEA,EAAElV,EAAE,IAAI,OAAO59B,GAAG,CAAC,QAAQ8yC,EAAEP,CAAC,CAAC,EAAEn+C,EAAQ20G,wBAAwB,WAAW,EAC9f30G,EAAQ40G,sBAAsB,WAAW,EAAE50G,EAAQ60G,yBAAyB,SAASjpG,EAAE49B,GAAG,OAAO59B,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIuyC,EAAEO,EAAEA,EAAE9yC,EAAE,IAAI,OAAO49B,GAAG,CAAC,QAAQkV,EAAEP,CAAC,CAAC,EAChMn+C,EAAQ80G,0BAA0B,SAASlpG,EAAE49B,EAAE2U,GAAG,IAAI5mB,EAAEv3B,EAAQiyG,eAA8F,OAA/E,kBAAkB9zD,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAE42D,QAA6B,EAAE52D,EAAE5mB,EAAE4mB,EAAE5mB,EAAG4mB,EAAE5mB,EAAS3rB,GAAG,KAAK,EAAE,IAAIkyC,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzMlyC,EAAE,CAAC6tB,GAAGskB,IAAIlrC,SAAS22B,EAAEypE,cAAcrnG,EAAE8mG,UAAUv0D,EAAEw0D,eAAvD70D,EAAEK,EAAEL,EAAoEi0D,WAAW,GAAG5zD,EAAE5mB,GAAG3rB,EAAEmmG,UAAU5zD,EAAEH,EAAEE,EAAEtyC,GAAG,OAAOqqC,EAAE4H,IAAIjyC,IAAIqqC,EAAEiI,KAAKs+B,GAAG61B,EAAEU,GAAGA,GAAG,GAAGv2B,GAAE,EAAGs2B,EAAEF,EAAEz0D,EAAE5mB,MAAM3rB,EAAEmmG,UAAUj0D,EAAEE,EAAEH,EAAEjyC,GAAGg2E,GAAGuwB,IAAIvwB,GAAE,EAAG/D,EAAEg1B,KAAYjnG,CAAC,EACne5L,EAAQg1G,qBAAqBhC,EAAEhzG,EAAQi1G,sBAAsB,SAASrpG,GAAG,IAAI49B,EAAEkV,EAAE,OAAO,WAAW,IAAIP,EAAEO,EAAEA,EAAElV,EAAE,IAAI,OAAO59B,EAAExB,MAAMvH,KAAKqH,UAAU,CAAC,QAAQw0C,EAAEP,CAAC,CAAC,CAAC,qCCf7JmyB,EAAOtwE,QAAU,EAAjBswE,4BCHF,IAAI76D,EAAQi7D,EAAQ,MAapB,SAASwkC,EAAc/xE,EAAOriC,GAC5B,IAKIysB,EALAxa,EAAS,KACb,IAAKowB,GAA0B,kBAAVA,EACnB,OAAOpwB,EAST,IALA,IAEIgvB,EACArhC,EAHAktG,EAAen4F,EAAM0tB,GACrBgyE,EAAkC,oBAAbr0G,EAIhBwF,EAAI,EAAGwtE,EAAM85B,EAAavnG,OAAQC,EAAIwtE,EAAKxtE,IAElDy7B,GADAxU,EAAcqgF,EAAatnG,IACJy7B,SACvBrhC,EAAQ6sB,EAAY7sB,MAEhBy0G,EACFr0G,EAASihC,EAAUrhC,EAAO6sB,GACjB7sB,IACTqS,IAAWA,EAAS,CAAC,GACrBA,EAAOgvB,GAAYrhC,GAIvB,OAAOqS,CACT,CAEAu9D,EAAOtwE,QAAUk1G,EACjB5kC,EAAOtwE,QAAPswE,QAAyB4kC,sBC1CzB,IAAIvjG,EAAM,CACT,oBAAqB,CACpB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,yBAA0B,CACzB,KACA,KAED,iBAAkB,CACjB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,4BAA6B,CAC5B,GACA,KAED,mBAAoB,CACnB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,mBAAoB,CACnB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,2BAA4B,CAC3B,KACA,KAED,sBAAuB,CACtB,KACA,KAED,kBAAmB,CAClB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,mBAAoB,CACnB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,oBAAqB,CACpB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,mBAAoB,CACnB,IACA,KAED,qBAAsB,CACrB,KACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,KACA,KAED,mBAAoB,CACnB,KACA,KAED,kBAAmB,CAClB,IACA,KAED,wBAAyB,CACxB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,2BAA4B,CAC3B,KACA,KAED,sBAAuB,CACtB,KACA,KAED,yBAA0B,CACzB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,mBAAoB,CACnB,IACA,KAED,yBAA0B,CACzB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,qBAAsB,CACrB,IACA,KAED,mBAAoB,CACnB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,iBAAkB,CACjB,KACA,KAED,qBAAsB,CACrB,IACA,KAED,qBAAsB,CACrB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,gCAAiC,CAChC,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,kBAAmB,CAClB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,kBAAmB,CAClB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,6BAA8B,CAC7B,IACA,KAED,mBAAoB,CACnB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,mBAAoB,CACnB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,0BAA2B,CA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Il+C,OAAOC,UAAU+L,SAAS1J,KAAKo7C,GAAGh2C,MAAM,GAAI,GAEpD,MADU,WAANw2C,GAAkBR,EAAEj3C,cAAay3C,EAAIR,EAAEj3C,YAAYC,MAC7C,QAANw3C,GAAqB,QAANA,EAAoBn1C,MAAMyO,KAAKkmC,GACxC,cAANQ,GAAqB,2CAA2ChlC,KAAKglC,IAAW,OAAiBR,EAAG+5D,QAAxG,CALc,CAMhB,qECHO,IAAMz0C,EAA0B,CACrC,QACA,MACA,SACA,QACA,SACA,QACA,SACA,OACA,OACA,SACA,MACA,SACA,QACA,SACA,OACA,KACA,SACA,QACA,SACA,OACA,KACA,SACA,SACA,QACA,SACA,SACA,SACA,OACA,OACA,MACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,QACA,QACA,SACA,MACA,QACA,SACA,OACA,SACA,SACA,QACA,OACA,OACA,SACA,MACA,SACA,SACA,QACA,SACA,MACA,OACA,SACA,SACA,SACA,KACA,SACA,QACA,QACA,SACA,SACA,OACA,QACA,KACA,OACA,QACA,SACA,OACA,MACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,MACA,OACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,MACA,OACA,SACA,MACA,gHCzFK,SAASztD,EAAM/U,GASpB,IAPA,IAAMw3G,EAAS,GACTl1E,EAAQltB,OAAOpV,GAAS,IAC1BgM,EAAQs2B,EAAMx4B,QAAQ,KACtBsC,EAAQ,EAERC,GAAM,GAEFA,GAAK,EACI,IAAXL,IACFA,EAAQs2B,EAAM38B,OACd0G,GAAM,GAGR,IAAMyN,EAAQwoB,EAAMp7B,MAAMkF,EAAOJ,GAAO40B,QAEpC9mB,GAAUzN,GACZmrG,EAAOpyG,KAAK0U,GAGd1N,EAAQJ,EAAQ,EAChBA,EAAQs2B,EAAMx4B,QAAQ,IAAKsC,EAC7B,CAEA,OAAOorG,CACT,CAYO,SAAS9nG,EAAUnN,EAAQmO,GAChC,IAAM2D,EAAW3D,GAAW,CAAC,EAK7B,OA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","sources":["../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-to-markdown/lib/util/association.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/util/safe.js","../node_modules/mdast-util-to-markdown/lib/util/track.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/remark-gfm/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/mdast-util-gfm/lib/index.js","../node_modules/hastscript/lib/svg.js","../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/web-namespaces/index.js","../node_modules/hast-util-from-parse5/lib/index.js","../node_modules/vfile-location/lib/index.js","../node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/rehype-raw/index.js","../node_modules/github-slugger/regex.js","../node_modules/github-slugger/index.js","../node_modules/hast-util-has-property/lib/index.js","../node_modules/hast-util-heading-rank/lib/index.js","../node_modules/hast-util-to-string/index.js","../node_modules/rehype-slug/index.js","../node_modules/hast-util-is-element/index.js","../node_modules/rehype-autolink-headings/lib/index.js","../node_modules/rehype-attr/src/utils.ts","../node_modules/rehype-attr/src/index.ts","../node_modules/rehype-ignore/src/index.ts","../node_modules/unist-util-filter/lib/index.js","../../src/generator.js","../../src/all.js","../../src/common.js","../node_modules/direction/index.js","../node_modules/hast-util-select/lib/enter-state.js","../node_modules/hast-util-select/lib/attribute.js","../node_modules/bcp-47-match/index.js","../https:/raw.githubusercontent.com/fb55/nth-check/639fd2a4000b69f82350aad8c34cb43f77e483ba/src/parse.ts","../https:/raw.githubusercontent.com/fb55/nth-check/639fd2a4000b69f82350aad8c34cb43f77e483ba/src/index.ts","../https:/raw.githubusercontent.com/fb55/nth-check/639fd2a4000b69f82350aad8c34cb43f77e483ba/src/compile.ts","../node_modules/hast-util-select/lib/pseudo.js","../node_modules/hast-util-select/lib/test.js","../node_modules/hast-util-select/lib/name.js","../node_modules/hast-util-select/lib/class-name.js","../node_modules/hast-util-select/lib/id.js","../node_modules/hast-util-select/lib/walk.js","../node_modules/hast-util-select/lib/parse.js","../node_modules/hast-util-select/lib/index.js","../node_modules/rehype-rewrite/src/index.ts","../node_modules/@uiw/react-markdown-preview/esm/nodes/octiconLink.js","../node_modules/@uiw/react-markdown-preview/esm/plugins/useCopied.js","../node_modules/@uiw/react-markdown-preview/esm/plugins/reservedMeta.js","../node_modules/@uiw/react-markdown-preview/esm/index.js","../node_modules/@uiw/react-markdown-preview/esm/nodes/copy.js","../node_modules/@uiw/github-corners/src/index.ts","../node_modules/@uiw/react-github-corners/src/index.tsx","../node_modules/@uiw/react-loader/src/index.tsx","../node_modules/@uiw/react-back-to-top/esm/index.js","../node_modules/rehype-parse/lib/errors.js","../node_modules/rehype-parse/lib/index.js","../node_modules/stringify-entities/lib/core.js","../node_modules/stringify-entities/lib/util/to-named.js","../node_modules/character-entities-html4/index.js","../node_modules/stringify-entities/lib/constant/dangerous.js","../node_modules/stringify-entities/lib/util/format-smart.js","../node_modules/stringify-entities/lib/util/to-hexadecimal.js","../node_modules/stringify-entities/lib/util/to-decimal.js","../node_modules/stringify-entities/lib/index.js","../node_modules/hast-util-to-html/lib/omission/util/siblings.js","../node_modules/hast-util-to-html/lib/omission/omission.js","../node_modules/hast-util-to-html/lib/omission/closing.js","../node_modules/hast-util-to-html/lib/omission/opening.js","../node_modules/hast-util-to-html/lib/handle/element.js","../node_modules/hast-util-to-html/lib/handle/text.js","../node_modules/hast-util-to-html/lib/handle/index.js","../node_modules/hast-util-to-html/lib/handle/comment.js","../node_modules/hast-util-to-html/lib/handle/doctype.js","../node_modules/hast-util-to-html/lib/handle/raw.js","../node_modules/hast-util-to-html/lib/handle/root.js","../node_modules/hast-util-to-html/lib/index.js","../node_modules/rehype/index.js","../node_modules/rehype-stringify/lib/index.js","../esm/utils.js","../esm/SelectionText.js","../esm/styles.js","../esm/index.js","../esm/shortcuts.js","App.tsx","../README.md","index.tsx","../../src/main.js","../node_modules/@wcj/dark-mode/dist/dark-mode.min.js","../node_modules/boolbase/index.js","../node_modules/css-selector-parser/lib/index.js","../node_modules/css-selector-parser/lib/parser-context.js","../node_modules/css-selector-parser/lib/render.js","../node_modules/css-selector-parser/lib/utils.js","../node_modules/extend/index.js","../node_modules/hast-util-raw/node_modules/parse5/lib/common/doctype.js","../node_modules/hast-util-raw/node_modules/parse5/lib/common/error-codes.js","../node_modules/hast-util-raw/node_modules/parse5/lib/common/foreign-content.js","../node_modules/hast-util-raw/node_modules/parse5/lib/common/html.js","../node_modules/hast-util-raw/node_modules/parse5/lib/common/unicode.js","../node_modules/hast-util-raw/node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/hast-util-raw/node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/hast-util-raw/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/hast-util-raw/node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/hast-util-raw/node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/hast-util-raw/node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/hast-util-raw/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/hast-util-raw/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/hast-util-raw/node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/hast-util-raw/node_modules/parse5/lib/parser/index.js","../node_modules/hast-util-raw/node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/hast-util-raw/node_modules/parse5/lib/tokenizer/index.js","../node_modules/hast-util-raw/node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/hast-util-raw/node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/hast-util-raw/node_modules/parse5/lib/tree-adapters/default.js","../node_modules/hast-util-raw/node_modules/parse5/lib/utils/merge-options.js","../node_modules/hast-util-raw/node_modules/parse5/lib/utils/mixin.js","../node_modules/inline-style-parser/index.js","../node_modules/is-buffer/index.js","../node_modules/parse-numeric-range/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/rehype-parse/node_modules/parse5/lib/common/doctype.js","../node_modules/rehype-parse/node_modules/parse5/lib/common/error-codes.js","../node_modules/rehype-parse/node_modules/parse5/lib/common/foreign-content.js","../node_modules/rehype-parse/node_modules/parse5/lib/common/html.js","../node_modules/rehype-parse/node_modules/parse5/lib/common/unicode.js","../node_modules/rehype-parse/node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/rehype-parse/node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/rehype-parse/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/rehype-parse/node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/rehype-parse/node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/rehype-parse/node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/rehype-parse/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/rehype-parse/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/rehype-parse/node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/rehype-parse/node_modules/parse5/lib/parser/index.js","../node_modules/rehype-parse/node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/rehype-parse/node_modules/parse5/lib/tokenizer/index.js","../node_modules/rehype-parse/node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/rehype-parse/node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/rehype-parse/node_modules/parse5/lib/tree-adapters/default.js","../node_modules/rehype-parse/node_modules/parse5/lib/utils/merge-options.js","../node_modules/rehype-parse/node_modules/parse5/lib/utils/mixin.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","../node_modules/code-example/txt|/home/runner/work/react-textarea-code-editor/react-textarea-code-editor/node_modules/code-example/txt|lazy|/^/.//sample/..*/.txt$/|groupOptions: {}|namespace object","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/construct.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/get.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeFunction.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/character-entities-legacy/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/hast-util-parse-selector/lib/index.js","../node_modules/hastscript/lib/core.js","../node_modules/hastscript/lib/html.js","../node_modules/character-reference-invalid/index.js","../node_modules/is-decimal/index.js","../node_modules/is-hexadecimal/index.js","../node_modules/is-alphanumerical/index.js","../node_modules/is-alphabetical/index.js","../node_modules/parse-entities/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/space-separated-tokens/index.js","../webpack/bootstrap","../webpack/runtime/chunk loaded","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/startup"],"sourcesContent":["import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\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 | 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// .\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// .\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} 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// .\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: \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","/// \n\nimport {isUrl} from './minurl.shared.js'\n\n// See: \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 & {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: \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 | 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 * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} 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 | 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} 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} 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}\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}\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","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\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","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array} */\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} 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`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\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} 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 instanceof Promise) {\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 * @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('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} */\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} [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|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} 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|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|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} 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} 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} */\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} 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} 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} */\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} list\n * List to operate on.\n * @param {Array} items\n * Items to add to `list`.\n * @returns {Array}\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} 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} */\n const left = maybe || (all[hook] = {})\n /** @type {Record | 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} existing\n * @param {Array} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array} */\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} 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} */\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} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record} */\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} */\n let parameters\n /** @type {Array} */\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} events\n * @param {number} eventIndex\n * @returns {Record}\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} */\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} */\n const gaps = {}\n /** @type {Array} */\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} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\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 | 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} */\n const columnStart = {}\n /** @type {Array} */\n const resolveAllConstructs = []\n /** @type {Array} */\n let chunks = []\n /** @type {Array} */\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 | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\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} 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} chunks\n * @param {Pick} token\n * @returns {Array}\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} */\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} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\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} */\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 * \n * b>\n * \n * \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 (`` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (``).\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 * > | \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 * > | \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 * > | \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 * > | \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} */\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} */\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 * .\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 * .\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 * > | \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 * > | \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 * > | \n * ^\n * > | \n * ^\n * > | \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 ` | \n * ^\n * > | \n * ^\n * > | &<]]>\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 ` | \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 ` | &<]]>\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 ` | \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 * > | \n * ^^\n * > | \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 * > |
\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 * > | \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 * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \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 * > | \n * ^\n * > | \n * ^\n * > | \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 * > | \n * ^\n * > | \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 * > | \n * ^\n * > | \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 * > | \n * ^\n * > | \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 * > | \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 * > | \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 * > | \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 * > | \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 * > | \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 * > | \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 * > | \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 * | \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 * > | \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 * > | \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 ` | \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 * > | &<]]>\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 * > | \n * ^\n * > | \n * ^\n * > | &<]]>\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 * > | \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 * > | \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 * > |
\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} */\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","/**\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} */\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 * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\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} */\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} */\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 * > | ab\n * ^\n * > | ab\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 * > | ab\n * ^\n * > | ab\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 * > | ab\n * ^\n * > | ab\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 * > | ab\n * ^\n * > | ab\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 * > | ab\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 * > | ab\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 * > | ab\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 * > | ab\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 * > | ab\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 | 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 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 c\n * ^\n * > | a c\n * ^\n * > | a 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 ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> 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 ` | a 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 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 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 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 ` | a &<]]> 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 &<]]> 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 &<]]> 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 &<]]> 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 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 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 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 ` | a 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 ` | a 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 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 ` | a 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 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 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 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 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 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 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 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 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 \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 \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 \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').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}\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} */\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('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} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} 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} 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} 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} 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} 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} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(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 {(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> | 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} 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} */\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} */\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} 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} */\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>} 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} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\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('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} */\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","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} 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 | TestFunctionPredicate | Array | TestFunctionPredicate>} 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 * ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * ((node: unknown, test: PredicateTest, 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 * ((test: PredicateTest) => AssertPredicate) &\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} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\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} 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} 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} 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, Check>, Extract, 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: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, 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 // @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} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\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} */\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>} 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,\n * Extract\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,\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: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, 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} 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('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\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 * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * \n// * \n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node’s positional info.\n * @property {(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array} all\n *   Transform the children of an mdast parent to hast.\n * @property {(nodes: Array, loose?: boolean | null | undefined) => Array} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array} */\n  state.footnoteOrder = []\n  /** @type {Record} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: .\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it’s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that’s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that’s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * 

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array} [allowedElements]\n * @property {Array} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n\n return undefined\n })\n }\n }\n}\n","/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {unknown} thing\n * Thing to check (typically `Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`).\n * If a node is passed it must be a `Text` node, whose `value` field is\n * checked.\n */\nexport function whitespace(thing) {\n /** @type {string} */\n const value =\n // @ts-expect-error looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text'\n ? // @ts-expect-error looks like a text.\n thing.value || ''\n : thing\n\n // HTML whitespace expression.\n // See .\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","import StyleToObject from './index.js';\n\nexport default StyleToObject;\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType} ComponentType\n */\n\n/**\n * @template {import('react').ElementType} T\n * @typedef {import('react').ComponentPropsWithoutRef} ComponentPropsWithoutRef\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record, isHeader: false}} TableDataCellProps\n * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record, isHeader: true}} TableHeaderCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType} CodeComponent\n * @typedef {ComponentType} HeadingComponent\n * @typedef {ComponentType} LiComponent\n * @typedef {ComponentType} OrderedListComponent\n * @typedef {ComponentType} TableDataCellComponent\n * @typedef {ComponentType} TableHeaderCellComponent\n * @typedef {ComponentType} TableRowComponent\n * @typedef {ComponentType} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableDataCellComponent|ReactMarkdownNames} td\n * @property {TableHeaderCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {uriTransformer} from './uri-transformer.js'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: .\n // See: .\n // See: .\n // See: .\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n !whitespace(child)\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const transform =\n options.transformLinkUri === undefined\n ? uriTransformer\n : options.transformLinkUri\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Record} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = index\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && transform) {\n properties.href = transform(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Record} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record}\n */\nfunction parseStyle(value) {\n /** @type {Record} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map(String)\n .join('')\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record} */\nconst deprecated = {\n plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n .use(options.remarkPlugins || [])\n .use(remarkRehype, {\n ...options.remarkRehypeOptions,\n allowDangerousHtml: true\n })\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Previous} Previous\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 asciiControl,\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n}\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n}\nconst path = {\n tokenize: tokenizePath,\n partial: true\n}\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n}\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n}\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n}\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n}\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n}\n\n/** @type {ConstructRecord} */\nconst text = {}\n\n// To do: next major: expose functions that yields extension.\n\n/**\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n *\n * @type {Extension}\n */\nexport const gfmAutolinkLiteral = {\n text\n}\n\n/** @type {Code} */\nlet code = 48\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n if (code === 58) code = 65\n else if (code === 91) code = 97\n}\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, protocolAutolink]\ntext[104] = [emailAutolink, protocolAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean | undefined} */\n let dot\n /** @type {boolean} */\n let data\n return start\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n if (code === 64) {\n effects.consume(code)\n return emailDomain\n }\n return nok(code)\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: \n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code)\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true\n effects.consume(code)\n return emailDomain\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code)\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code)\n dot = true\n return emailDomain\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: .\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n return wwwStart\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (\n (code !== 87 && code !== 119) ||\n !previousWww.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code)\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this\n let buffer = ''\n let seen = false\n return protocolStart\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if (\n (code === 72 || code === 104) &&\n previousProtocol.call(self, self.previous) &&\n !previousUnbalanced(self.events)\n ) {\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n return nok(code)\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase()\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code)\n return protocolSlashesInside\n }\n }\n return nok(code)\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code)\n if (seen) {\n return afterProtocol\n }\n seen = true\n return protocolSlashesInside\n }\n return nok(code)\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null ||\n asciiControl(code) ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code)\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0\n return wwwPrefixInside\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++\n effects.consume(code)\n return wwwPrefixInside\n }\n if (code === 46 && size === 3) {\n effects.consume(code)\n return wwwPrefixAfter\n }\n return nok(code)\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code)\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment\n /** @type {boolean | undefined} */\n let seen\n return domainInside\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code)\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: .\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 && unicodePunctuation(code))\n ) {\n return domainAfter(code)\n }\n seen = true\n effects.consume(code)\n return domainInside\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment\n underscoreInLastSegment = undefined\n }\n effects.consume(code)\n return domainInside\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // \n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code)\n }\n return ok(code)\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0\n let sizeClose = 0\n return pathInside\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++\n effects.consume(code)\n return pathInside\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code)\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (\n code === 33 ||\n code === 34 ||\n code === 38 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 60 ||\n code === 63 ||\n code === 93 ||\n code === 95 ||\n code === 126\n ) {\n return effects.check(trail, ok, pathAtPunctuation)(code)\n }\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n effects.consume(code)\n return pathInside\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++\n }\n effects.consume(code)\n return pathInside\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (\n code === 33 ||\n code === 34 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 63 ||\n code === 95 ||\n code === 126\n ) {\n effects.consume(code)\n return trail\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code)\n return trailCharRefStart\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // .\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code)\n return trailBracketAfter\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (\n code === null ||\n code === 40 ||\n code === 91 ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n return trail(code)\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharRefInside(code) : nok(code)\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code)\n return trail\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return trailCharRefInside\n }\n\n // It’s not a trail.\n return nok(code)\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code)\n return after\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code)\n }\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return (\n code === null ||\n code === 40 ||\n code === 42 ||\n code === 95 ||\n code === 91 ||\n code === 93 ||\n code === 126 ||\n markdownLineEndingOrSpace(code)\n )\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code)\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: .\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code))\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return (\n code === 43 ||\n code === 45 ||\n code === 46 ||\n code === 95 ||\n asciiAlphanumeric(code)\n )\n}\n\n/**\n * @param {Array} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n while (index--) {\n const token = events[index][1]\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n return result\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Extension} Extension\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 {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n }\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {Token} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1]\n if (token.type === 'labelImage') {\n labelStart = token\n break\n }\n\n // Exit if we’ve walked far enough.\n if (\n token.type === 'gfmFootnoteCall' ||\n token.type === 'labelLink' ||\n token.type === 'label' ||\n token.type === 'image' ||\n token.type === 'link'\n ) {\n break\n }\n }\n return start\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code)\n }\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code)\n }\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return ok(code)\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length\n /** @type {Token | undefined} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n if (\n events[index][1].type === 'labelImage' &&\n events[index][0] === 'enter'\n ) {\n labelStart = events[index][1]\n break\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = 'data'\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n }\n // Increment the end 1 character.\n marker.end.column++\n marker.end.offset++\n marker.end._bufferIndex++\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n }\n /** @type {Token} */\n const chunk = {\n type: 'chunkString',\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n }\n\n /** @type {Array} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n ['enter', call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n ['enter', marker, context],\n ['exit', marker, context],\n // Everything in between.\n ['enter', string, context],\n ['enter', chunk, context],\n ['exit', chunk, context],\n ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n ['exit', call, context]\n ]\n events.splice(index, events.length - index + 1, ...replacement)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n let size = 0\n /** @type {boolean} */\n let data\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall')\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return callStart\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code)\n effects.enter('gfmFootnoteCallMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallMarker')\n effects.enter('gfmFootnoteCallString')\n effects.enter('chunkString').contentType = 'string'\n return callData\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n (code === 93 && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null ||\n code === 91 ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteCallString')\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code)\n }\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n effects.exit('gfmFootnoteCall')\n return ok\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n size++\n effects.consume(code)\n return code === 92 ? callEscape : callData\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return callData\n }\n return callData(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {string} */\n let identifier\n let size = 0\n /** @type {boolean | undefined} */\n let data\n return start\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true\n effects.enter('gfmFootnoteDefinitionLabel')\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n return labelAtMarker\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionMarker')\n effects.enter('gfmFootnoteDefinitionLabelString')\n effects.enter('chunkString').contentType = 'string'\n return labelInside\n }\n return nok(code)\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n (code === 93 && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null ||\n code === 91 ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteDefinitionLabelString')\n identifier = normalizeIdentifier(self.sliceSerialize(token))\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n effects.exit('gfmFootnoteDefinitionLabel')\n return labelAfter\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n size++\n effects.consume(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > \n *\n * ```markdown\n * > | [^a\\*b]: c\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 * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n if (!defined.includes(identifier)) {\n defined.push(identifier)\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(\n effects,\n whitespaceAfter,\n 'gfmFootnoteDefinitionWhitespace'\n )\n }\n return nok(code)\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition')\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'gfmFootnoteDefinitionIndent',\n 4 + 1\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 === 'gfmFootnoteDefinitionIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === 4\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\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 * @typedef Options\n * Configuration (optional).\n * @property {boolean} [singleTilde=true]\n * Whether to support strikethrough with a single tilde.\n *\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\n\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {}\n let single = options_.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n if (single === null || single === undefined) {\n single = true\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n }\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n let 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 === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n\n // Opening.\n /** @type {Array} */\n const nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n const insideSpan = context.parser.constructs.insideSpan.null\n if (insideSpan) {\n // Between.\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan, events.slice(open + 1, index), context)\n )\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n return events\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (\n previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape'\n ) {\n return nok(code)\n }\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous)\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open = !after || (after === 2 && Boolean(before))\n token._close = !before || (before === 2 && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array}\n */\n this.map = []\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {void}\n */\n add(index, remove, add) {\n addImpl(this, index, remove, add)\n }\n\n // To do: not used here.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {void}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {void}\n */\n consume(events) {\n this.map.sort((a, b) => a[0] - b[0])\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length\n /** @type {Array>} */\n const vecs = []\n while (index > 0) {\n index -= 1\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]))\n // eslint-disable-next-line unicorn/no-array-push-push\n vecs.push(this.map[index][2])\n\n // Truncate rest.\n events.length = this.map[index][0]\n }\n vecs.push([...events])\n events.length = 0\n let slice = vecs.pop()\n while (slice) {\n events.push(...slice)\n slice = vecs.pop()\n }\n\n // Truncate everything.\n this.map.length = 0\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array} add\n * @returns {void}\n */\nfunction addImpl(editMap, at, remove, add) {\n let index = 0\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove\n\n // To do: before not used.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add)\n // }\n\n return\n }\n index += 1\n }\n editMap.map.push([at, remove, add])\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array} events\n// * @param {Array} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// console.log('to do: links?', add, rmCurr)\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef {'left' | 'center' | 'right' | 'none'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Array} events\n * @param {number} index\n * @returns {Array}\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false\n /** @type {Array} */\n const align = []\n while (index < events.length) {\n const event = events[index]\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(\n events[index + 1][1].type === 'tableDelimiterMarker'\n ? 'left'\n : 'none'\n )\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true\n }\n index += 1\n }\n return align\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\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\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {EditMap} from './edit-map.js'\nimport {gfmTableAlign} from './infer.js'\n\n// To do: next major: expose functions.\n\n/**\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n *\n * @type {Extension}\n */\nexport const gfmTable = {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n let size = 0\n let sizeB = 0\n /** @type {boolean | undefined} */\n let seen\n return start\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1\n while (index > -1) {\n const type = self.events[index][1].type\n if (\n type === 'lineEnding' ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === 'linePrefix'\n )\n index--\n else break\n }\n const tail = index > -1 ? self.events[index][1].type : null\n const next =\n tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n return next(code)\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead')\n effects.enter('tableRow')\n return headRowStart(code)\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code)\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1\n return headRowBreak(code)\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true\n effects.exit('tableRow')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return headDelimiterStart\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, 'whitespace')(code)\n }\n sizeB += 1\n if (seen) {\n seen = false\n // Header cell count.\n size += 1\n }\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n // Whether a delimiter was seen.\n seen = true\n return headRowBreak\n }\n\n // Anything else is cell data.\n effects.enter('data')\n return headRowData(code)\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('data')\n return headRowBreak(code)\n }\n effects.consume(code)\n return code === 92 ? headRowEscape : headRowData\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return headRowData\n }\n return headRowData(code)\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n effects.enter('tableDelimiterRow')\n // Track if we’ve seen a `:` or `|`.\n seen = false\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return headDelimiterBefore(code)\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code)\n }\n if (code === 124) {\n seen = true\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return headDelimiterCellBefore\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code)\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, 'whitespace')(code)\n }\n return headDelimiterValueBefore(code)\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1\n seen = true\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterLeftAlignmentAfter\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code)\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code)\n }\n return headDelimiterNok(code)\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n return headDelimiterFiller(code)\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code)\n return headDelimiterFiller\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true\n effects.exit('tableDelimiterFiller')\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterRightAlignmentAfter\n }\n effects.exit('tableDelimiterFiller')\n return headDelimiterRightAlignmentAfter(code)\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, 'whitespace')(code)\n }\n return headDelimiterCellAfter(code)\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code)\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code)\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow')\n effects.exit('tableHead')\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code)\n }\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow')\n return bodyRowBreak(code)\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return bodyRowBreak\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow')\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, 'whitespace')(code)\n }\n\n // Anything else is cell content.\n effects.enter('data')\n return bodyRowData(code)\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('data')\n return bodyRowBreak(code)\n }\n effects.consume(code)\n return code === 92 ? bodyRowEscape : bodyRowData\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return bodyRowData\n }\n return bodyRowData(code)\n }\n}\n\n/** @type {Resolver} */\n// eslint-disable-next-line complexity\nfunction resolveTable(events, context) {\n let index = -1\n let inFirstCellAwaitingPipe = true\n /** @type {RowKind} */\n let rowKind = 0\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0]\n /** @type {Range} */\n let cell = [0, 0, 0, 0]\n let afterHeadAwaitingFirstBodyRow = false\n let lastTableEnd = 0\n /** @type {Token | undefined} */\n let currentTable\n /** @type {Token | undefined} */\n let currentBody\n /** @type {Token | undefined} */\n let currentCell\n const map = new EditMap()\n while (++index < events.length) {\n const event = events[index]\n const token = event[1]\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n currentBody = undefined\n lastTableEnd = 0\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentTable, context]])\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n inFirstCellAwaitingPipe = true\n currentCell = undefined\n lastCell = [0, 0, 0, 0]\n cell = [0, index + 1, 0, 0]\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentBody, context]])\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1\n }\n // Cell data.\n else if (\n rowKind &&\n (token.type === 'data' ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n inFirstCellAwaitingPipe = false\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n lastCell = [0, 0, 0, 0]\n }\n cell[2] = index\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n }\n lastCell = cell\n cell = [lastCell[1], index, 0, 0]\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true\n lastTableEnd = index\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n lastTableEnd = index\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n )\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell)\n }\n rowKind = 0\n } else if (\n rowKind &&\n (token.type === 'data' ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n cell[3] = index\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n }\n map.consume(context.events)\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1\n while (++index < context.events.length) {\n const event = context.events[index]\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index)\n }\n }\n return events\n}\n\n/// Generate a cell.\n/**\n *\n * @param {EditMap} map\n * @param {TokenizeContext} context\n * @param {Range} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName =\n rowKind === 1\n ? 'tableHeader'\n : rowKind === 2\n ? 'tableDelimiter'\n : 'tableData'\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent'\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]))\n map.add(range[0], 0, [['exit', previousCell, context]])\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1])\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n }\n map.add(range[1], 0, [['enter', previousCell, context]])\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2])\n const relatedEnd = getPoint(context.events, range[3])\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n }\n map.add(range[2], 0, [['enter', valueToken, context]])\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]]\n const end = context.events[range[3]]\n start[1].end = Object.assign({}, end[1].end)\n start[1].type = 'chunkText'\n start[1].contentType = 'text'\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1\n const b = range[3] - range[2] - 1\n map.add(a, b, [])\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]])\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd))\n map.add(rowEnd, 0, [['exit', previousCell, context]])\n previousCell = undefined\n }\n return previousCell\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {EditMap} map\n * @param {TokenizeContext} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array} */\n const exits = []\n const related = getPoint(context.events, index)\n if (tableBody) {\n tableBody.end = Object.assign({}, related)\n exits.push(['exit', tableBody, context])\n }\n table.end = Object.assign({}, related)\n exits.push(['exit', table, context])\n map.add(index + 1, 0, exits)\n}\n\n/**\n * @param {Array} events\n * @param {number} index\n * @returns {readonly Point}\n */\nfunction getPoint(events, index) {\n const event = events[index]\n const side = event[0] === 'enter' ? 'start' : 'end'\n return event[1][side]\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\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 markdownLineEndingOrSpace,\n markdownLineEnding,\n markdownSpace\n} from 'micromark-util-character'\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n}\n\n// To do: next major: expose function to make extension.\n\n/**\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM task list items syntax.\n *\n * @type {Extension}\n */\nexport const gfmTaskListItem = {\n text: {\n [91]: tasklistCheck\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n return open\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n return nok(code)\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return after\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code)\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )(code)\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, 'whitespace')\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code)\n }\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Content | Root} Node\n * @typedef {Extract} Parent\n * @typedef {Exclude} ContentParent\n *\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[Root, ...Array, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array | PhrasingContent | string | false | undefined | null}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array`, replace with those nodes\n *\n * @typedef {string | RegExp} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array} FindAndReplaceList\n * Several find and replaces, in array form.\n * @typedef {Record} FindAndReplaceSchema\n * Several find and replaces, in object form.\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * Find and replace in tuple form.\n * @typedef {string | ReplaceFunction} Replace\n * Thing to replace with.\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n * @typedef {Array} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore.\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param tree\n * Tree to change.\n * @param find\n * Patterns to find.\n * @param replace\n * Things to replace with (when `find` is `Find`) or configuration.\n * @param options\n * Configuration (when `find` is not `Find`).\n * @returns\n * Given, modified, tree.\n */\n// To do: next major: remove `find` & `replace` combo, remove schema.\nexport const findAndReplace =\n /**\n * @type {(\n * ((tree: Tree, find: Find, replace?: Replace | null | undefined, options?: Options | null | undefined) => Tree) &\n * ((tree: Tree, schema: FindAndReplaceSchema | FindAndReplaceList, options?: Options | null | undefined) => Tree)\n * )}\n **/\n (\n /**\n * @template {Node} Tree\n * @param {Tree} tree\n * @param {Find | FindAndReplaceSchema | FindAndReplaceList} find\n * @param {Replace | Options | null | undefined} [replace]\n * @param {Options | null | undefined} [options]\n * @returns {Tree}\n */\n function (tree, find, replace, options) {\n /** @type {Options | null | undefined} */\n let settings\n /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n let schema\n\n if (typeof find === 'string' || find instanceof RegExp) {\n // @ts-expect-error don’t expect options twice.\n schema = [[find, replace]]\n settings = options\n } else {\n schema = find\n // @ts-expect-error don’t expect replace twice.\n settings = replace\n }\n\n if (!settings) {\n settings = {}\n }\n\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(schema)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n // To do next major: don’t return the given tree.\n return tree\n\n /** @type {import('unist-util-visit-parents/complex-types.js').BuildVisitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parent | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n\n if (\n ignored(\n parent,\n // @ts-expect-error: TS doesn’t understand but it’s perfect.\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n // @ts-expect-error: TS is wrong, some of these children can be text.\n const index = parent.children.indexOf(node)\n let change = false\n /** @type {Array} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n // @ts-expect-error: stack is fine.\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value !== false) {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n }\n )\n\n/**\n * Turn a schema into pairs.\n *\n * @param {FindAndReplaceSchema | FindAndReplaceList} schema\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(schema) {\n /** @type {Pairs} */\n const result = []\n\n if (typeof schema !== 'object') {\n throw new TypeError('Expected array or object as schema')\n }\n\n if (Array.isArray(schema)) {\n let index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n /** @type {string} */\n let key\n\n for (key in schema) {\n if (own.call(schema, key)) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n */\n\nimport {ccount} from 'ccount'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n// To do: next major: expose functions instead of extensions.\n\n/**\n * Extension for `mdast-util-from-markdown` to enable GFM autolink literals.\n *\n * @type {FromMarkdownExtension}\n */\nexport const gfmAutolinkLiteralFromMarkdown = {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n}\n\n/**\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n *\n * @type {ToMarkdownExtension}\n */\nexport const gfmAutolinkLiteralToMarkdown = {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {character: ':', before: '[ps]', after: '\\\\/', inConstruct, notInConstruct}\n ]\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = /** @type {Link} */ (this.stack[this.stack.length - 1])\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Link | Array | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\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 * .\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}} 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} */\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} */\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').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('../types.js').Unsafe} Unsafe\n * @typedef {import('../types.js').ConstructName} ConstructName\n */\n\n/**\n * @param {Array} 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} 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('../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} */\n const positions = []\n /** @type {Array} */\n const result = []\n /** @type {Record} */\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} */\n const positions = []\n /** @type {Array} */\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('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n */\n\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {association} from 'mdast-util-to-markdown/lib/util/association.js'\nimport {containerFlow} from 'mdast-util-to-markdown/lib/util/container-flow.js'\nimport {indentLines} from 'mdast-util-to-markdown/lib/util/indent-lines.js'\nimport {safe} from 'mdast-util-to-markdown/lib/util/safe.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n// To do: next major: rename `context` -> `state`, `safeOptions` to `info`, use\n// utilities on `state`.\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteReference')\n const subexit = context.enter('reference')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\nfunction footnoteDefinition(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteDefinition')\n const subexit = context.enter('label')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n indentLines(containerFlow(node, context, tracker.current()), map)\n )\n exit()\n\n return value\n}\n\n/** @type {Map} */\nfunction map(line, index, blank) {\n if (index === 0) {\n return line\n }\n\n return (blank ? '' : ' ') + line\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}} 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} */\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: \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","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n// To do: next major: expose functions.\n// To do: next major: use `state`, state utilities.\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: \n *\n * @type {Array}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n *\n * @type {FromMarkdownExtension}\n */\nexport const gfmStrikethroughFromMarkdown = {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n}\n\n/**\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n *\n * @type {ToMarkdownExtension}\n */\nexport const gfmStrikethroughToMarkdown = {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n const exit = context.enter('strikethrough')\n let value = tracker.move('~~')\n value += containerPhrasing(node, context, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\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 Options\n * Configuration (optional).\n * @property {string|null|ReadonlyArray} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').InlineCode} InlineCode\n *\n * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext\n * @typedef {import('mdast-util-to-markdown').SafeOptions} SafeOptions\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells.\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters.\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {inlineCode} from 'mdast-util-to-markdown/lib/handle/inline-code.js'\nimport {markdownTable} from 'markdown-table'\n\n// To do: next major: use `state` and `state` utilities from `mdast-util-to-markdown`.\n// To do: next major: use `defaultHandlers.inlineCode`.\n// To do: next major: expose functions.\n\n/**\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n *\n * @type {FromMarkdownExtension}\n */\nexport const gfmTableFromMarkdown = {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n /** @type {Array<'left' | 'right' | 'center' | 'none'>} */\n // @ts-expect-error: `align` is custom.\n const align = token._align\n this.enter(\n {\n type: 'table',\n align: align.map((d) => (d === 'none' ? null : d)),\n children: []\n },\n token\n )\n this.setData('inTable', true)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1])\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, context, safeOptions) {\n return serializeData(\n handleTableAsData(node, context, safeOptions),\n node.align\n )\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, context, safeOptions) {\n const row = handleTableRowAsData(node, context, safeOptions)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, context, safeOptions) {\n const exit = context.enter('tableCell')\n const subexit = context.enter('phrasing')\n const value = containerPhrasing(node, context, {\n ...safeOptions,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = context.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(\n children[index],\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableRowAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = context.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(\n children[index],\n node,\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, context) {\n let value = inlineCode(node, parent, context)\n\n if (context.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\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}\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('../types.js').State} State\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\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('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\n/**\n * @typedef {Extract} Parents\n */\n\nimport {listItem} from 'mdast-util-to-markdown/lib/handle/list-item.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n// To do: next major: rename `context` -> `state`, `safeOptions` -> `info`, use\n// `track` from `state`.\n// To do: next major: replace exports with functions.\n// To do: next major: use `defaulthandlers.listItem`.\n\n/**\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n *\n * @type {FromMarkdownExtension}\n */\nexport const gfmTaskListItemFromMarkdown = {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n}\n\n/**\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n *\n * @type {ToMarkdownExtension}\n */\nexport const gfmTaskListItemToMarkdown = {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n const node = /** @type {ListItem} */ (this.stack[this.stack.length - 2])\n // We’re always in a paragraph, in a list item.\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = /** @type {Parents} */ (this.stack[this.stack.length - 2])\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = /** @type {Paragraph} */ (this.stack[this.stack.length - 1])\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, context, safeOptions) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = track(safeOptions)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = listItem(node, parent, context, {\n ...safeOptions,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options\n */\n\nimport {gfm} from 'micromark-extension-gfm'\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\n\n/**\n * Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function remarkGfm(options = {}) {\n const data = this.data()\n\n add('micromarkExtensions', gfm(options))\n add('fromMarkdownExtensions', gfmFromMarkdown())\n add('toMarkdownExtensions', gfmToMarkdown(options))\n\n /**\n * @param {string} field\n * @param {unknown} value\n */\n function add(field, value) {\n const list = /** @type {unknown[]} */ (\n // Other extensions\n /* c8 ignore next 2 */\n data[field] ? data[field] : (data[field] = [])\n )\n\n list.push(value)\n }\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral,\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable,\n gfmTaskListItem\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration.\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml,\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml,\n gfmTableHtml,\n gfmTagfilterHtml,\n gfmTaskListItemHtml\n ])\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n * Configuration.\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown,\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown,\n gfmTableFromMarkdown,\n gfmTaskListItemFromMarkdown\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown,\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown,\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown\n ]\n }\n}\n","/**\n * @typedef {import('./core.js').HChild} Child\n * Acceptable child value.\n * @typedef {import('./core.js').HProperties} Properties\n * Acceptable value for element properties.\n * @typedef {import('./core.js').HResult} Result\n * Result from a `h` (or `s`) call.\n *\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * Map of web namespaces.\n *\n * @type {Record}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n * @typedef {import('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {import('parse5').Token.ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Token.Location} P5Location\n */\n\n/**\n * @typedef {Content | Root} Node\n * @typedef {DefaultTreeAdapterMap['document']} P5Document\n * @typedef {DefaultTreeAdapterMap['documentFragment']} P5DocumentFragment\n * @typedef {DefaultTreeAdapterMap['documentType']} P5DocumentType\n * @typedef {DefaultTreeAdapterMap['commentNode']} P5Comment\n * @typedef {DefaultTreeAdapterMap['textNode']} P5Text\n * @typedef {DefaultTreeAdapterMap['element']} P5Element\n * @typedef {DefaultTreeAdapterMap['node']} P5Node\n * @typedef {DefaultTreeAdapterMap['template']} P5Template\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in.\n *\n * When an `` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n * @property {VFile | null | undefined} [file]\n * File used to add positional info to nodes.\n *\n * If given, the file should represent the original HTML source.\n * @property {boolean} [verbose=false]\n * Whether to add extra positional info about starting tags, closing tags,\n * and attributes to elements.\n *\n * > 👉 **Note**: only used when `file` is given.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {Schema} schema\n * Current schema.\n * @property {VFile | undefined} file\n * Corresponding file.\n * @property {boolean | undefined} verbose\n * Add extra positional info.\n * @property {boolean} location\n * Whether location info was found.\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n/** @type {unknown} */\n// type-coverage:ignore-next-line\nconst proto = Object.prototype\n\n/**\n * Transform a `parse5` AST to hast.\n *\n * @param {P5Node} tree\n * `parse5` tree to transform.\n * @param {Options | VFile | null | undefined} [options]\n * Configuration.\n * @returns {Node}\n * hast tree.\n */\nexport function fromParse5(tree, options) {\n const options_ = options || {}\n /** @type {Options} */\n let settings\n /** @type {VFile | undefined} */\n let file\n\n if (isFile(options_)) {\n file = options_\n settings = {}\n } else {\n file = options_.file || undefined\n settings = options_\n }\n\n return one(\n {\n schema: settings.space === 'svg' ? svg : html,\n file,\n verbose: settings.verbose,\n location: false\n },\n tree\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Node} node\n * p5 node.\n * @returns {Node}\n * hast node.\n */\nfunction one(state, node) {\n /** @type {Node} */\n let result\n\n switch (node.nodeName) {\n case '#comment': {\n const reference = /** @type {P5Comment} */ (node)\n result = {type: 'comment', value: reference.data}\n patch(state, reference, result)\n return result\n }\n\n case '#document':\n case '#document-fragment': {\n const reference = /** @type {P5Document | P5DocumentFragment} */ (node)\n const quirksMode =\n 'mode' in reference\n ? reference.mode === 'quirks' || reference.mode === 'limited-quirks'\n : false\n\n result = {\n type: 'root',\n children: all(state, node.childNodes),\n data: {quirksMode}\n }\n\n if (state.file && state.location) {\n const doc = String(state.file)\n const loc = location(doc)\n const start = loc.toPoint(0)\n const end = loc.toPoint(doc.length)\n // @ts-expect-error: always defined as we give valid input.\n result.position = {start, end}\n }\n\n return result\n }\n\n case '#documentType': {\n const reference = /** @type {P5DocumentType} */ (node)\n // @ts-expect-error Types are out of date.\n result = {type: 'doctype'}\n patch(state, reference, result)\n return result\n }\n\n case '#text': {\n const reference = /** @type {P5Text} */ (node)\n result = {type: 'text', value: reference.value}\n patch(state, reference, result)\n return result\n }\n\n // Element.\n default: {\n const reference = /** @type {P5Element} */ (node)\n result = element(state, reference)\n return result\n }\n }\n}\n\n/**\n * Transform children.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Array} nodes\n * Nodes.\n * @returns {Array}\n * hast nodes.\n */\nfunction all(state, nodes) {\n let index = -1\n /** @type {Array} */\n const result = []\n\n while (++index < nodes.length) {\n // @ts-expect-error Assume no roots in `nodes`.\n result[index] = one(state, nodes[index])\n }\n\n return result\n}\n\n/**\n * Transform an element.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Element} node\n * `parse5` node to transform.\n * @returns {Element}\n * hast node.\n */\nfunction element(state, node) {\n const schema = state.schema\n\n state.schema = node.namespaceURI === webNamespaces.svg ? svg : html\n\n // Props.\n let index = -1\n /** @type {Record} */\n const props = {}\n\n while (++index < node.attrs.length) {\n const attribute = node.attrs[index]\n const name =\n (attribute.prefix ? attribute.prefix + ':' : '') + attribute.name\n if (!own.call(proto, name)) {\n props[name] = attribute.value\n }\n }\n\n // Build.\n const fn = state.schema.space === 'svg' ? s : h\n const result = fn(node.tagName, props, all(state, node.childNodes))\n patch(state, node, result)\n\n // Switch content.\n if (result.tagName === 'template') {\n const reference = /** @type {P5Template} */ (node)\n const pos = reference.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n /** @type {Root} */\n // @ts-expect-error Types are wrong.\n const content = one(state, reference.content)\n\n if (startTag && endTag && state.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n state.schema = schema\n\n return result\n}\n\n/**\n * Patch positional info from `from` onto `to`.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Node} from\n * p5 node.\n * @param {Node} to\n * hast node.\n * @returns {void}\n * Nothing.\n */\nfunction patch(state, from, to) {\n if ('sourceCodeLocation' in from && from.sourceCodeLocation && state.file) {\n const position = createLocation(state, to, from.sourceCodeLocation)\n\n if (position) {\n state.location = true\n to.position = position\n }\n }\n}\n\n/**\n * Create clean positional information.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Node} node\n * hast node.\n * @param {P5ElementLocation} location\n * p5 location info.\n * @returns {Position | undefined}\n * Position, or nothing.\n */\nfunction createLocation(state, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: .\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (state.verbose) {\n /** @type {Record} */\n const props = {}\n /** @type {string} */\n let key\n\n if (location.attrs) {\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n props[find(state.schema, key).property] = position(\n location.attrs[key]\n )\n }\n }\n }\n\n node.data = {\n position: {\n // @ts-expect-error: assume not `undefined`.\n opening: position(location.startTag),\n closing: location.endTag ? position(location.endTag) : null,\n properties: props\n }\n }\n }\n }\n\n return result\n}\n\n/**\n * Turn a p5 location into a position.\n *\n * @param {P5Location} loc\n * Location.\n * @returns {Position | undefined}\n * Position or nothing.\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n // @ts-expect-error `undefined` is fine.\n return start || end ? {start, end} : undefined\n}\n\n/**\n * Filter out invalid points.\n *\n * @param {Point} point\n * Point with potentially `undefined` values.\n * @returns {Point | undefined}\n * Point or nothing.\n */\nfunction point(point) {\n return point.line && point.column ? point : undefined\n}\n\n/**\n * Check if something is a file.\n *\n * @param {VFile | Options} value\n * File or options.\n * @returns {value is VFile}\n * Whether `value` is a file.\n */\nfunction isFile(value) {\n return 'messages' in value\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('vfile').Value} Value\n */\n\n/**\n * @typedef Point\n * unist point, where `line` and `column` can be `undefined`.\n * @property {number | undefined} line\n * Line.\n * @property {number | undefined} column\n * Column.\n * @property {number | undefined} [offset]\n * Offset.\n *\n * @typedef PointLike\n * unist point, allowed as input.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @callback ToPoint\n * Get a line/column-based `point` from `offset`.\n * @param {number | null | undefined} [offset]\n * Something that should be an `offset.\n * @returns {Point}\n * Point, line/column are undefined for invalid or out of bounds input.\n *\n * @callback ToOffset\n * Get an offset from a line/column-based `point`.\n * @param {Point | null | undefined} [point]\n * Something that should be a `point.\n * @returns {number}\n * Offset or `-1` for invalid or out of bounds input.\n *\n * @typedef Location\n * Accessors for index.\n * @property {ToPoint} toPoint\n * Get a line/column-based `point` from `offset`.\n * @property {ToOffset} toOffset\n * Get an offset from a line/column-based `point`.\n */\n\n/**\n * Index the given document so you can translate between line/column and offset\n * based positional info.\n *\n * @param {VFile | Value} file\n * File to index.\n * @returns {Location}\n * Accessors for index.\n */\nexport function location(file) {\n const value = String(file)\n /** @type {Array} */\n const indices = []\n const search = /\\r?\\n|\\r/g\n\n while (search.test(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {toPoint, toOffset}\n\n /** @type {ToPoint} */\n function toPoint(offset) {\n let index = -1\n\n if (\n typeof offset === 'number' &&\n offset > -1 &&\n offset < indices[indices.length - 1]\n ) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n offset\n }\n }\n }\n }\n\n return {line: undefined, column: undefined, offset: undefined}\n }\n\n /** @type {ToOffset} */\n function toOffset(point) {\n const line = point && point.line\n const column = point && point.column\n\n if (\n typeof line === 'number' &&\n typeof column === 'number' &&\n !Number.isNaN(line) &&\n !Number.isNaN(column) &&\n line - 1 in indices\n ) {\n const offset = (indices[line - 2] || 0) + column - 1 || 0\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n return offset\n }\n }\n\n return -1\n }\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} [Handlers=Record]\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} [Handlers=Record]\n * @param {string} key\n * Field to switch on.\n * @param {Options} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters): ReturnType, (...parameters: Parameters): ReturnType}}\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('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {DefaultTreeAdapterMap['document']} P5Document\n * @typedef {DefaultTreeAdapterMap['documentFragment']} P5Fragment\n * @typedef {DefaultTreeAdapterMap['element']} P5Element\n * @typedef {DefaultTreeAdapterMap['node']} P5Node\n * @typedef {DefaultTreeAdapterMap['documentType']} P5Doctype\n * @typedef {DefaultTreeAdapterMap['commentNode']} P5Comment\n * @typedef {DefaultTreeAdapterMap['textNode']} P5Text\n * @typedef {DefaultTreeAdapterMap['parentNode']} P5Parent\n * @typedef {import('parse5').Token.Attribute} P5Attribute\n * @typedef {Exclude} P5Child\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n */\n\n/**\n * @typedef {Content | Root} Node\n * @typedef {'html' | 'svg'} Space\n *\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in.\n *\n * When an `` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {html, svg, find} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst own = {}.hasOwnProperty\n\n/** @type {(from: Node, schema: Schema) => P5Node} */\nconst one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a hast tree to Parse5’s AST.\n *\n * @param {Node} tree\n * Tree to transform.\n * @param {Options | Space | null | undefined} [options]\n * Configuration.\n * @returns {P5Node}\n * `parse5` node.\n */\nexport function toParse5(tree, options) {\n const space = options && typeof options === 'object' ? options.space : options\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @param {Root} node\n * @param {Schema} schema\n * Current schema.\n * @returns {P5Document}\n */\nfunction root(node, schema) {\n /** @type {P5Document} */\n const result = {\n nodeName: '#document',\n // @ts-expect-error: `parse5` uses enums, which are actually strings.\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Root} node\n * @param {Schema} schema\n * Current schema.\n * @returns {P5Fragment}\n */\nfunction fragment(node, schema) {\n /** @type {P5Fragment} */\n const result = {nodeName: '#document-fragment', childNodes: []}\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Doctype} node\n * @returns {P5Doctype}\n */\nfunction doctype(node) {\n /** @type {P5Doctype} */\n const result = {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n // @ts-expect-error: change to `null` in a major?\n parentNode: undefined\n }\n\n patch(node, result)\n return result\n}\n\n/**\n * @param {Text} node\n * @returns {P5Text}\n */\nfunction text(node) {\n /** @type {P5Text} */\n const result = {\n nodeName: '#text',\n value: node.value,\n // @ts-expect-error: no `parentNode`\n parentNode: undefined\n }\n patch(node, result)\n return result\n}\n\n/**\n * @param {Comment} node\n * @returns {P5Comment}\n */\nfunction comment(node) {\n /** @type {P5Comment} */\n const result = {\n nodeName: '#comment',\n data: node.value,\n // @ts-expect-error: no `parentNode`\n parentNode: undefined\n }\n\n patch(node, result)\n\n return result\n}\n\n/**\n * @param {Element} node\n * @param {Schema} schema\n * Current schema.\n * @returns {P5Element}\n * `parse5` node.\n */\nfunction element(node, schema) {\n const parentSchema = schema\n let currentSchema = parentSchema\n\n if (\n node.type === 'element' &&\n node.tagName.toLowerCase() === 'svg' &&\n parentSchema.space === 'html'\n ) {\n currentSchema = svg\n }\n\n /** @type {Array} */\n const attrs = []\n /** @type {string} */\n let prop\n\n if (node.properties) {\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(\n currentSchema,\n prop,\n node.properties[prop]\n )\n\n if (result) {\n attrs.push(result)\n }\n }\n }\n }\n\n /** @type {P5Element} */\n const result = {\n nodeName: node.tagName,\n tagName: node.tagName,\n attrs,\n // @ts-expect-error: html and svg both have a space.\n namespaceURI: webNamespaces[currentSchema.space],\n childNodes: [],\n // @ts-expect-error: no `parentNode`\n parentNode: undefined\n }\n result.childNodes = all(node.children, result, currentSchema)\n patch(node, result)\n\n if (node.tagName === 'template' && node.content) {\n // @ts-expect-error: `parse5` types are wrong.\n result.content = fragment(node.content, currentSchema)\n }\n\n return result\n}\n\n/**\n * Handle a property.\n *\n * @param {Schema} schema\n * Current schema.\n * @param {string} prop\n * Key.\n * @param {Array | string | number | boolean | null | undefined} value\n * hast property value.\n * @returns {P5Attribute | void}\n * Field for runtime, optional.\n */\nfunction createProperty(schema, prop, value) {\n const info = find(schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === undefined ||\n value === null ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (!value && info.boolean)\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n /** @type {P5Attribute} */\n const attribute = {\n name: info.attribute,\n value: value === true ? '' : String(value)\n }\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n const index = attribute.name.indexOf(':')\n\n if (index < 0) {\n attribute.prefix = ''\n } else {\n attribute.name = attribute.name.slice(index + 1)\n attribute.prefix = info.attribute.slice(0, index)\n }\n\n attribute.namespace = webNamespaces[info.space]\n }\n\n return attribute\n}\n\n/**\n * Transform all hast nodes.\n *\n * @param {Array} children\n * List of children.\n * @param {P5Parent} parentNode\n * `parse5` parent node.\n * @param {Schema} schema\n * Current schema.\n * @returns {Array}\n * Transformed children.\n */\nfunction all(children, parentNode, schema) {\n let index = -1\n /** @type {Array} */\n const results = []\n\n if (children) {\n while (++index < children.length) {\n /** @type {P5Child} */\n // @ts-expect-error assume no document.\n const child = one(children[index], schema)\n\n child.parentNode = parentNode\n\n results.push(child)\n }\n }\n\n return results\n}\n\n/**\n * Add position info from `from` to `to`.\n *\n * @param {Node} from\n * hast node.\n * @param {P5Node} to\n * `parse5` node.\n * @returns {void}\n * Nothing.\n */\nfunction patch(from, to) {\n const position = from.position\n\n if (position && position.start && position.end) {\n to.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n // @ts-expect-error assume this is set.\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n // @ts-expect-error assume this is set.\n endOffset: position.end.offset\n }\n }\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'isindex',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'nextid',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {Omit} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {Omit & {startOffset: number|undefined, endOffset: number|undefined}} P5Location\n * @typedef {import('parse5').ParserOptions} P5ParserOptions\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {import('../complex-types').Raw} Raw\n *\n * @typedef {Omit & {value: {stitch: Node}}} Stitch\n *\n * @typedef Options\n * @property {Array} [passThrough]\n * List of custom hast node types to pass through (keep) in hast.\n * If the passed through nodes have children, those children are expected to\n * be hast and will be handled.\n *\n * @typedef HiddenTokenizer\n * @property {Array} __mixins\n * Way too simple, but works for us.\n * @property {HiddenPreprocessor} preprocessor\n * @property {(value: string) => void} write\n * @property {() => number} _consume\n * @property {Array} tokenQueue\n * @property {string} state\n * @property {string} returnState\n * @property {number} charRefCode\n * @property {Array} tempBuff\n * @property {Function} _flushCodePointsConsumedAsCharacterReference\n * @property {string} lastStartTagName\n * @property {number} consumedAfterSnapshot\n * @property {boolean} active\n * @property {HiddenToken|undefined} currentCharacterToken\n * @property {HiddenToken|undefined} currentToken\n * @property {unknown} currentAttr\n * @property {Function} NAMED_CHARACTER_REFERENCE_STATE\n * @property {Function} NUMERIC_CHARACTER_REFERENCE_END_STATE\n *\n * @typedef {Record & {location: P5Location}} HiddenToken\n *\n * @typedef HiddenPreprocessor\n * @property {string|undefined} html\n * @property {number} pos\n * @property {number} lastGapPos\n * @property {number} lastCharPos\n * @property {Array} gapStack\n * @property {boolean} skipNextNewLine\n * @property {boolean} lastChunkWritten\n * @property {boolean} endOfChunkHit\n *\n * @typedef HiddenLocationTracker\n * @property {P5Location|undefined} currentAttrLocation\n * @property {P5Location} ctLoc\n * @property {HiddenPosTracker} posTracker\n *\n * @typedef HiddenPosTracker\n * @property {boolean} isEol\n * @property {number} lineStartPos\n * @property {number} droppedBufferSize\n * @property {number} offset\n * @property {number} col\n * @property {number} line\n */\n\n// @ts-expect-error: untyped.\nimport Parser from 'parse5/lib/parser/index.js'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst inTemplateMode = 'IN_TEMPLATE_MODE'\nconst dataState = 'DATA_STATE'\nconst characterToken = 'CHARACTER_TOKEN'\nconst startTagToken = 'START_TAG_TOKEN'\nconst endTagToken = 'END_TAG_TOKEN'\nconst commentToken = 'COMMENT_TOKEN'\nconst doctypeToken = 'DOCTYPE_TOKEN'\n\n/** @type {P5ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Given a hast tree and an optional vfile (for positional info), return a new\n * parsed-again hast tree.\n *\n * @param tree\n * Original hast tree.\n * @param file\n * Virtual file for positional info, optional.\n * @param options\n * Configuration.\n */\nexport const raw =\n /**\n * @type {(\n * ((tree: Node, file: VFile|undefined, options?: Options) => Node) &\n * ((tree: Node, options?: Options) => Node)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {VFile} [file]\n * @param {Options} [options]\n */\n function (tree, file, options) {\n let index = -1\n const parser = new Parser(parseOptions)\n const one = zwitch('type', {\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n // @ts-expect-error: hush.\n unknown\n })\n /** @type {boolean|undefined} */\n let stitches\n /** @type {HiddenTokenizer|undefined} */\n let tokenizer\n /** @type {HiddenPreprocessor|undefined} */\n let preprocessor\n /** @type {HiddenPosTracker|undefined} */\n let posTracker\n /** @type {HiddenLocationTracker|undefined} */\n let locationTracker\n\n if (isOptions(file)) {\n options = file\n file = undefined\n }\n\n if (options && options.passThrough) {\n while (++index < options.passThrough.length) {\n // @ts-expect-error: hush.\n one.handlers[options.passThrough[index]] = stitch\n }\n }\n\n const result = fromParse5(\n documentMode(tree) ? document() : fragment(),\n file\n )\n\n if (stitches) {\n visit(result, 'comment', (node, index, parent) => {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent !== null && index !== null) {\n // @ts-expect-error: assume the stitch is allowed.\n parent.children[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n tree.type !== 'root' &&\n result.type === 'root' &&\n result.children.length === 1\n ) {\n return result.children[0]\n }\n\n return result\n\n /**\n * @returns {P5Fragment}\n */\n function fragment() {\n /** @type {P5Element} */\n const context = {\n nodeName: 'template',\n tagName: 'template',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Element} */\n const mock = {\n nodeName: 'documentmock',\n tagName: 'documentmock',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Fragment} */\n const doc = {nodeName: '#document-fragment', childNodes: []}\n\n parser._bootstrap(mock, context)\n parser._pushTmplInsertionMode(inTemplateMode)\n parser._initTokenizerForFragmentParsing()\n parser._insertFakeRootElement()\n parser._resetInsertionMode()\n parser._findFormInFragmentContext()\n\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n resetTokenizer()\n\n parser._adoptNodes(mock.childNodes[0], doc)\n\n return doc\n }\n\n /**\n * @returns {P5Document}\n */\n function document() {\n /** @type {P5Document} */\n const doc = parser.treeAdapter.createDocument()\n\n parser._bootstrap(doc, undefined)\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n resetTokenizer()\n\n return doc\n }\n\n /**\n * @param {Array} nodes\n * @returns {void}\n */\n function all(nodes) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n one(nodes[index])\n }\n }\n }\n\n /**\n * @param {Root} node\n * @returns {void}\n */\n function root(node) {\n all(node.children)\n }\n\n /**\n * @param {Element} node\n * @returns {void}\n */\n function element(node) {\n resetTokenizer()\n parser._processInputToken(startTag(node))\n\n all(node.children)\n\n if (!htmlVoidElements.includes(node.tagName)) {\n resetTokenizer()\n parser._processInputToken(endTag(node))\n }\n }\n\n /**\n * @param {Text} node\n * @returns {void}\n */\n function text(node) {\n resetTokenizer()\n parser._processInputToken({\n type: characterToken,\n chars: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Doctype} node\n * @returns {void}\n */\n function doctype(node) {\n resetTokenizer()\n parser._processInputToken({\n type: doctypeToken,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Comment|Stitch} node\n * @returns {void}\n */\n function comment(node) {\n resetTokenizer()\n parser._processInputToken({\n type: commentToken,\n data: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Raw} node\n * @returns {void}\n */\n function handleRaw(node) {\n const start = pointStart(node)\n const line = start.line || 1\n const column = start.column || 1\n const offset = start.offset || 0\n\n /* c8 ignore next 4 */\n if (!preprocessor) throw new Error('Expected `preprocessor`')\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n if (!locationTracker) throw new Error('Expected `locationTracker`')\n\n // Reset preprocessor:\n // See: .\n preprocessor.html = undefined\n preprocessor.pos = -1\n preprocessor.lastGapPos = -1\n preprocessor.lastCharPos = -1\n preprocessor.gapStack = []\n preprocessor.skipNextNewLine = false\n preprocessor.lastChunkWritten = false\n preprocessor.endOfChunkHit = false\n\n // Reset preprocessor mixin:\n // See: .\n posTracker.isEol = false\n posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n posTracker.droppedBufferSize = offset\n posTracker.offset = 0\n posTracker.col = 1\n posTracker.line = line\n\n // Reset location tracker:\n // See: .\n locationTracker.currentAttrLocation = undefined\n locationTracker.ctLoc = createParse5Location(node)\n\n // See the code for `parse` and `parseFragment`:\n // See: .\n tokenizer.write(node.value)\n parser._runParsingLoop(null)\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n if (\n tokenizer.state === 'NAMED_CHARACTER_REFERENCE_STATE' ||\n tokenizer.state === 'NUMERIC_CHARACTER_REFERENCE_END_STATE'\n ) {\n preprocessor.lastChunkWritten = true\n tokenizer[tokenizer.state](tokenizer._consume())\n }\n }\n\n /**\n * @param {Node} node\n */\n function stitch(node) {\n stitches = true\n\n /** @type {Node} */\n let clone\n\n // Recurse, because to somewhat handle `[]` (where `[]` denotes the\n // passed through node).\n if ('children' in node) {\n clone = {\n ...node,\n children: raw(\n {type: 'root', children: node.children},\n file,\n options\n // @ts-expect-error Assume a given parent yields a parent.\n ).children\n }\n } else {\n clone = {...node}\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}})\n }\n\n function resetTokenizer() {\n /* c8 ignore next 2 */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n\n // Process final characters if they’re still there after hibernating.\n // Similar to:\n // See: .\n const token = tokenizer.currentCharacterToken\n\n if (token) {\n token.location.endLine = posTracker.line\n token.location.endCol = posTracker.col + 1\n token.location.endOffset = posTracker.offset + 1\n parser._processInputToken(token)\n }\n\n // Reset tokenizer:\n // See: .\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n tokenizer.tokenQueue = []\n tokenizer.state = dataState\n tokenizer.returnState = ''\n tokenizer.charRefCode = -1\n tokenizer.tempBuff = []\n tokenizer.lastStartTagName = ''\n tokenizer.consumedAfterSnapshot = -1\n tokenizer.active = false\n tokenizer.currentCharacterToken = undefined\n tokenizer.currentToken = undefined\n tokenizer.currentAttr = undefined\n }\n }\n )\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction startTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: startTagToken,\n tagName: node.tagName,\n selfClosing: false,\n attrs: attributes(node),\n location\n }\n}\n\n/**\n * @param {Element} node\n * @returns {Array}\n */\nfunction attributes(node) {\n return toParse5({\n tagName: node.tagName,\n type: 'element',\n properties: node.properties,\n children: []\n // @ts-expect-error Assume element.\n }).attrs\n}\n\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction endTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: endTagToken,\n tagName: node.tagName,\n attrs: [],\n location\n }\n}\n\n/**\n * @param {Node} node\n */\nfunction unknown(node) {\n throw new Error('Cannot compile `' + node.type + '` node')\n}\n\n/**\n * @param {Node} node\n * @returns {boolean}\n */\nfunction documentMode(node) {\n const head = node.type === 'root' ? node.children[0] : node\n return Boolean(\n head &&\n (head.type === 'doctype' ||\n (head.type === 'element' && head.tagName === 'html'))\n )\n}\n\n/**\n * @param {Node|Stitch} node\n * @returns {P5Location}\n */\nfunction createParse5Location(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n return {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n}\n\n/**\n * @param {VFile|Options|undefined} value\n * @return {value is Options}\n */\nfunction isOptions(value) {\n return Boolean(value && !('message' in value && 'messages' in value))\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} Options\n * @typedef {import('hast-util-raw')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Plugin to parse the tree again (and raw nodes).\n * Keeping positional info OK. 🙌\n *\n * @type {import('unified').Plugin<[Options?] | Array, Root>}\n */\nexport default function rehypeRaw(options = {}) {\n return (tree, file) => {\n // Assume that when a root was given, it’s also returned.\n const result = /** @type {Root} */ (raw(tree, file, options))\n return result\n }\n}\n","// This module is generated by `script/`.\n/* eslint-disable no-control-regex, no-misleading-character-class, no-useless-escape */\nexport const regex = /[\\0-\\x1F!-,\\.\\/:-@\\[-\\^`\\{-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0378\\u0379\\u037E\\u0380-\\u0385\\u0387\\u038B\\u038D\\u03A2\\u03F6\\u0482\\u0530\\u0557\\u0558\\u055A-\\u055F\\u0589-\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05EB-\\u05EE\\u05F3-\\u060F\\u061B-\\u061F\\u066A-\\u066D\\u06D4\\u06DD\\u06DE\\u06E9\\u06FD\\u06FE\\u0700-\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07F6-\\u07F9\\u07FB\\u07FC\\u07FE\\u07FF\\u082E-\\u083F\\u085C-\\u085F\\u086B-\\u089F\\u08B5\\u08C8-\\u08D2\\u08E2\\u0964\\u0965\\u0970\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09F2-\\u09FB\\u09FD\\u09FF\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF0-\\u0AF8\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B54\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B70\\u0B72-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BF0-\\u0BFF\\u0C0D\\u0C11\\u0C29\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5B-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C7F\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0CFF\\u0D0D\\u0D11\\u0D45\\u0D49\\u0D4F-\\u0D53\\u0D58-\\u0D5E\\u0D64\\u0D65\\u0D70-\\u0D79\\u0D80\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DE5\\u0DF0\\u0DF1\\u0DF4-\\u0E00\\u0E3B-\\u0E3F\\u0E4F\\u0E5A-\\u0E80\\u0E83\\u0E85\\u0E8B\\u0EA4\\u0EA6\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F01-\\u0F17\\u0F1A-\\u0F1F\\u0F2A-\\u0F34\\u0F36\\u0F38\\u0F3A-\\u0F3D\\u0F48\\u0F6D-\\u0F70\\u0F85\\u0F98\\u0FBD-\\u0FC5\\u0FC7-\\u0FFF\\u104A-\\u104F\\u109E\\u109F\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u10FB\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u1360-\\u137F\\u1390-\\u139F\\u13F6\\u13F7\\u13FE-\\u1400\\u166D\\u166E\\u1680\\u169B-\\u169F\\u16EB-\\u16ED\\u16F9-\\u16FF\\u170D\\u1715-\\u171F\\u1735-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17D4-\\u17D6\\u17D8-\\u17DB\\u17DE\\u17DF\\u17EA-\\u180A\\u180E\\u180F\\u181A-\\u181F\\u1879-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191F\\u192C-\\u192F\\u193C-\\u1945\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DA-\\u19FF\\u1A1C-\\u1A1F\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1AA6\\u1AA8-\\u1AAF\\u1AC1-\\u1AFF\\u1B4C-\\u1B4F\\u1B5A-\\u1B6A\\u1B74-\\u1B7F\\u1BF4-\\u1BFF\\u1C38-\\u1C3F\\u1C4A-\\u1C4C\\u1C7E\\u1C7F\\u1C89-\\u1C8F\\u1CBB\\u1CBC\\u1CC0-\\u1CCF\\u1CD3\\u1CFB-\\u1CFF\\u1DFA\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FBD\\u1FBF-\\u1FC1\\u1FC5\\u1FCD-\\u1FCF\\u1FD4\\u1FD5\\u1FDC-\\u1FDF\\u1FED-\\u1FF1\\u1FF5\\u1FFD-\\u203E\\u2041-\\u2053\\u2055-\\u2070\\u2072-\\u207E\\u2080-\\u208F\\u209D-\\u20CF\\u20F1-\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F-\\u215F\\u2189-\\u24B5\\u24EA-\\u2BFF\\u2C2F\\u2C5F\\u2CE5-\\u2CEA\\u2CF4-\\u2CFF\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D70-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E00-\\u2E2E\\u2E30-\\u3004\\u3008-\\u3020\\u3030\\u3036\\u3037\\u303D-\\u3040\\u3097\\u3098\\u309B\\u309C\\u30A0\\u30FB\\u3100-\\u3104\\u3130\\u318F-\\u319F\\u31C0-\\u31EF\\u3200-\\u33FF\\u4DC0-\\u4DFF\\u9FFD-\\u9FFF\\uA48D-\\uA4CF\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA62C-\\uA63F\\uA673\\uA67E\\uA6F2-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA7C0\\uA7C1\\uA7CB-\\uA7F4\\uA828-\\uA82B\\uA82D-\\uA83F\\uA874-\\uA87F\\uA8C6-\\uA8CF\\uA8DA-\\uA8DF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA954-\\uA95F\\uA97D-\\uA97F\\uA9C1-\\uA9CE\\uA9DA-\\uA9DF\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A-\\uAA5F\\uAA77-\\uAA79\\uAAC3-\\uAADA\\uAADE\\uAADF\\uAAF0\\uAAF1\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F\\uAB5B\\uAB6A-\\uAB6F\\uABEB\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uD7FF\\uE000-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB29\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBB2-\\uFBD2\\uFD3E-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFC-\\uFDFF\\uFE10-\\uFE1F\\uFE30-\\uFE32\\uFE35-\\uFE4C\\uFE50-\\uFE6F\\uFE75\\uFEFD-\\uFF0F\\uFF1A-\\uFF20\\uFF3B-\\uFF3E\\uFF40\\uFF5B-\\uFF65\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFFF]|\\uD800[\\uDC0C\\uDC27\\uDC3B\\uDC3E\\uDC4E\\uDC4F\\uDC5E-\\uDC7F\\uDCFB-\\uDD3F\\uDD75-\\uDDFC\\uDDFE-\\uDE7F\\uDE9D-\\uDE9F\\uDED1-\\uDEDF\\uDEE1-\\uDEFF\\uDF20-\\uDF2C\\uDF4B-\\uDF4F\\uDF7B-\\uDF7F\\uDF9E\\uDF9F\\uDFC4-\\uDFC7\\uDFD0\\uDFD6-\\uDFFF]|\\uD801[\\uDC9E\\uDC9F\\uDCAA-\\uDCAF\\uDCD4-\\uDCD7\\uDCFC-\\uDCFF\\uDD28-\\uDD2F\\uDD64-\\uDDFF\\uDF37-\\uDF3F\\uDF56-\\uDF5F\\uDF68-\\uDFFF]|\\uD802[\\uDC06\\uDC07\\uDC09\\uDC36\\uDC39-\\uDC3B\\uDC3D\\uDC3E\\uDC56-\\uDC5F\\uDC77-\\uDC7F\\uDC9F-\\uDCDF\\uDCF3\\uDCF6-\\uDCFF\\uDD16-\\uDD1F\\uDD3A-\\uDD7F\\uDDB8-\\uDDBD\\uDDC0-\\uDDFF\\uDE04\\uDE07-\\uDE0B\\uDE14\\uDE18\\uDE36\\uDE37\\uDE3B-\\uDE3E\\uDE40-\\uDE5F\\uDE7D-\\uDE7F\\uDE9D-\\uDEBF\\uDEC8\\uDEE7-\\uDEFF\\uDF36-\\uDF3F\\uDF56-\\uDF5F\\uDF73-\\uDF7F\\uDF92-\\uDFFF]|\\uD803[\\uDC49-\\uDC7F\\uDCB3-\\uDCBF\\uDCF3-\\uDCFF\\uDD28-\\uDD2F\\uDD3A-\\uDE7F\\uDEAA\\uDEAD-\\uDEAF\\uDEB2-\\uDEFF\\uDF1D-\\uDF26\\uDF28-\\uDF2F\\uDF51-\\uDFAF\\uDFC5-\\uDFDF\\uDFF7-\\uDFFF]|\\uD804[\\uDC47-\\uDC65\\uDC70-\\uDC7E\\uDCBB-\\uDCCF\\uDCE9-\\uDCEF\\uDCFA-\\uDCFF\\uDD35\\uDD40-\\uDD43\\uDD48-\\uDD4F\\uDD74\\uDD75\\uDD77-\\uDD7F\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDFF\\uDE12\\uDE38-\\uDE3D\\uDE3F-\\uDE7F\\uDE87\\uDE89\\uDE8E\\uDE9E\\uDEA9-\\uDEAF\\uDEEB-\\uDEEF\\uDEFA-\\uDEFF\\uDF04\\uDF0D\\uDF0E\\uDF11\\uDF12\\uDF29\\uDF31\\uDF34\\uDF3A\\uDF45\\uDF46\\uDF49\\uDF4A\\uDF4E\\uDF4F\\uDF51-\\uDF56\\uDF58-\\uDF5C\\uDF64\\uDF65\\uDF6D-\\uDF6F\\uDF75-\\uDFFF]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A-\\uDC5D\\uDC62-\\uDC7F\\uDCC6\\uDCC8-\\uDCCF\\uDCDA-\\uDD7F\\uDDB6\\uDDB7\\uDDC1-\\uDDD7\\uDDDE-\\uDDFF\\uDE41-\\uDE43\\uDE45-\\uDE4F\\uDE5A-\\uDE7F\\uDEB9-\\uDEBF\\uDECA-\\uDEFF\\uDF1B\\uDF1C\\uDF2C-\\uDF2F\\uDF3A-\\uDFFF]|\\uD806[\\uDC3B-\\uDC9F\\uDCEA-\\uDCFE\\uDD07\\uDD08\\uDD0A\\uDD0B\\uDD14\\uDD17\\uDD36\\uDD39\\uDD3A\\uDD44-\\uDD4F\\uDD5A-\\uDD9F\\uDDA8\\uDDA9\\uDDD8\\uDDD9\\uDDE2\\uDDE5-\\uDDFF\\uDE3F-\\uDE46\\uDE48-\\uDE4F\\uDE9A-\\uDE9C\\uDE9E-\\uDEBF\\uDEF9-\\uDFFF]|\\uD807[\\uDC09\\uDC37\\uDC41-\\uDC4F\\uDC5A-\\uDC71\\uDC90\\uDC91\\uDCA8\\uDCB7-\\uDCFF\\uDD07\\uDD0A\\uDD37-\\uDD39\\uDD3B\\uDD3E\\uDD48-\\uDD4F\\uDD5A-\\uDD5F\\uDD66\\uDD69\\uDD8F\\uDD92\\uDD99-\\uDD9F\\uDDAA-\\uDEDF\\uDEF7-\\uDFAF\\uDFB1-\\uDFFF]|\\uD808[\\uDF9A-\\uDFFF]|\\uD809[\\uDC6F-\\uDC7F\\uDD44-\\uDFFF]|[\\uD80A\\uD80B\\uD80E-\\uD810\\uD812-\\uD819\\uD824-\\uD82B\\uD82D\\uD82E\\uD830-\\uD833\\uD837\\uD839\\uD83D\\uD83F\\uD87B-\\uD87D\\uD87F\\uD885-\\uDB3F\\uDB41-\\uDBFF][\\uDC00-\\uDFFF]|\\uD80D[\\uDC2F-\\uDFFF]|\\uD811[\\uDE47-\\uDFFF]|\\uD81A[\\uDE39-\\uDE3F\\uDE5F\\uDE6A-\\uDECF\\uDEEE\\uDEEF\\uDEF5-\\uDEFF\\uDF37-\\uDF3F\\uDF44-\\uDF4F\\uDF5A-\\uDF62\\uDF78-\\uDF7C\\uDF90-\\uDFFF]|\\uD81B[\\uDC00-\\uDE3F\\uDE80-\\uDEFF\\uDF4B-\\uDF4E\\uDF88-\\uDF8E\\uDFA0-\\uDFDF\\uDFE2\\uDFE5-\\uDFEF\\uDFF2-\\uDFFF]|\\uD821[\\uDFF8-\\uDFFF]|\\uD823[\\uDCD6-\\uDCFF\\uDD09-\\uDFFF]|\\uD82C[\\uDD1F-\\uDD4F\\uDD53-\\uDD63\\uDD68-\\uDD6F\\uDEFC-\\uDFFF]|\\uD82F[\\uDC6B-\\uDC6F\\uDC7D-\\uDC7F\\uDC89-\\uDC8F\\uDC9A-\\uDC9C\\uDC9F-\\uDFFF]|\\uD834[\\uDC00-\\uDD64\\uDD6A-\\uDD6C\\uDD73-\\uDD7A\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDE41\\uDE45-\\uDFFF]|\\uD835[\\uDC55\\uDC9D\\uDCA0\\uDCA1\\uDCA3\\uDCA4\\uDCA7\\uDCA8\\uDCAD\\uDCBA\\uDCBC\\uDCC4\\uDD06\\uDD0B\\uDD0C\\uDD15\\uDD1D\\uDD3A\\uDD3F\\uDD45\\uDD47-\\uDD49\\uDD51\\uDEA6\\uDEA7\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3\\uDFCC\\uDFCD]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85-\\uDE9A\\uDEA0\\uDEB0-\\uDFFF]|\\uD838[\\uDC07\\uDC19\\uDC1A\\uDC22\\uDC25\\uDC2B-\\uDCFF\\uDD2D-\\uDD2F\\uDD3E\\uDD3F\\uDD4A-\\uDD4D\\uDD4F-\\uDEBF\\uDEFA-\\uDFFF]|\\uD83A[\\uDCC5-\\uDCCF\\uDCD7-\\uDCFF\\uDD4C-\\uDD4F\\uDD5A-\\uDFFF]|\\uD83B[\\uDC00-\\uDDFF\\uDE04\\uDE20\\uDE23\\uDE25\\uDE26\\uDE28\\uDE33\\uDE38\\uDE3A\\uDE3C-\\uDE41\\uDE43-\\uDE46\\uDE48\\uDE4A\\uDE4C\\uDE50\\uDE53\\uDE55\\uDE56\\uDE58\\uDE5A\\uDE5C\\uDE5E\\uDE60\\uDE63\\uDE65\\uDE66\\uDE6B\\uDE73\\uDE78\\uDE7D\\uDE7F\\uDE8A\\uDE9C-\\uDEA0\\uDEA4\\uDEAA\\uDEBC-\\uDFFF]|\\uD83C[\\uDC00-\\uDD2F\\uDD4A-\\uDD4F\\uDD6A-\\uDD6F\\uDD8A-\\uDFFF]|\\uD83E[\\uDC00-\\uDFEF\\uDFFA-\\uDFFF]|\\uD869[\\uDEDE-\\uDEFF]|\\uD86D[\\uDF35-\\uDF3F]|\\uD86E[\\uDC1E\\uDC1F]|\\uD873[\\uDEA2-\\uDEAF]|\\uD87A[\\uDFE1-\\uDFFF]|\\uD87E[\\uDE1E-\\uDFFF]|\\uD884[\\uDF4B-\\uDFFF]|\\uDB40[\\uDC00-\\uDCFF\\uDDF0-\\uDFFF]/g\n","import { regex } from './regex.js'\n\nconst own = Object.hasOwnProperty\n\n/**\n * Slugger.\n */\nexport default class BananaSlug {\n /**\n * Create a new slug class.\n */\n constructor () {\n /** @type {Record} */\n // eslint-disable-next-line no-unused-expressions\n this.occurrences\n\n this.reset()\n }\n\n /**\n * Generate a unique slug.\n *\n * Tracks previously generated slugs: repeated calls with the same value\n * will result in different slugs.\n * Use the `slug` function to get same slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\n slug (value, maintainCase) {\n const self = this\n let result = slug(value, maintainCase === true)\n const originalSlug = result\n\n while (own.call(self.occurrences, result)) {\n self.occurrences[originalSlug]++\n result = originalSlug + '-' + self.occurrences[originalSlug]\n }\n\n self.occurrences[result] = 0\n\n return result\n }\n\n /**\n * Reset - Forget all previous slugs\n *\n * @return void\n */\n reset () {\n this.occurrences = Object.create(null)\n }\n}\n\n/**\n * Generate a slug.\n *\n * Does not track previously generated slugs: repeated calls with the same value\n * will result in the exact same slug.\n * Use the `GithubSlugger` class to get unique slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\nexport function slug (value, maintainCase) {\n if (typeof value !== 'string') return ''\n if (!maintainCase) value = value.toLowerCase()\n return value.replace(regex, '').replace(/ /g, '-')\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n */\n\n/**\n * @typedef {Root | Content} Node\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Check if `node`is an element and has a `field` property.\n *\n * @param {unknown} node\n * Thing to check (typically `Element`).\n * @param {unknown} field\n * Field name to check (typically `string`).\n * @returns {boolean}\n * Whether `node` is an element that has a `field` property.\n */\nexport function hasProperty(node, field) {\n const value =\n typeof field === 'string' &&\n isNode(node) &&\n node.type === 'element' &&\n node.properties &&\n own.call(node.properties, field) &&\n node.properties[field]\n\n return value !== null && value !== undefined && value !== false\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction isNode(value) {\n return Boolean(value && typeof value === 'object' && 'type' in value)\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n */\n\n/**\n * @typedef {Root | Content} Node\n */\n\n// To do next major: return `undefined`.\n/**\n * Get the rank (`1` to `6`) of headings (`h1` to `h6`).\n *\n * @param {Node} node\n * Node to check.\n * @returns {number | null}\n * Rank of the heading or `null` if not a heading.\n */\nexport function headingRank(node) {\n const name =\n (node && node.type === 'element' && node.tagName.toLowerCase()) || ''\n const code =\n name.length === 2 && name.charCodeAt(0) === 104 /* `h` */\n ? name.charCodeAt(1)\n : 0\n return code > 48 /* `0` */ && code < 55 /* `7` */ ? code - 48 /* `0` */ : null\n}\n","/**\n * @fileoverview\n * Get the plain-text value of a hast node.\n * @longdescription\n * ## Use\n *\n * ```js\n * import {h} from 'hastscript'\n * import {toString} from 'hast-util-to-string'\n *\n * toString(h('p', 'Alpha'))\n * //=> 'Alpha'\n * toString(h('div', [h('b', 'Bold'), ' and ', h('i', 'italic'), '.']))\n * //=> 'Bold and italic.'\n * ```\n *\n * ## API\n *\n * ### `toString(node)`\n *\n * Transform a node to a string.\n */\n\n/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {Root|Root['children'][number]} Node\n */\n\n/**\n * Get the plain-text value of a hast node.\n *\n * @param {Node} node\n * @returns {string}\n */\nexport function toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.”\n if ('children' in node) {\n return all(node)\n }\n\n // “Context object’s data.”\n return 'value' in node ? node.value : ''\n}\n\n/**\n * @param {Node} node\n * @returns {string}\n */\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return 'children' in node ? all(node) : ''\n}\n\n/**\n * @param {Root|Element} node\n * @returns {string}\n */\nfunction all(node) {\n let index = -1\n /** @type {string[]} */\n const result = []\n\n while (++index < node.children.length) {\n result[index] = one(node.children[index])\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('hast').Root} Root\n */\n\n/**\n * @typedef Options\n * Configuration (optional).\n * @property {string} [prefix='']\n * Prefix to add in front of `id`s.\n */\n\nimport Slugger from 'github-slugger'\nimport {hasProperty} from 'hast-util-has-property'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {toString} from 'hast-util-to-string'\nimport {visit} from 'unist-util-visit'\n\nconst slugs = new Slugger()\n\n/**\n * Plugin to add `id`s to headings.\n *\n * @type {import('unified').Plugin<[Options?]|Array, Root>}\n */\nexport default function rehypeSlug(options = {}) {\n const prefix = options.prefix || ''\n\n return (tree) => {\n slugs.reset()\n\n visit(tree, 'element', (node) => {\n if (headingRank(node) && node.properties && !hasProperty(node, 'id')) {\n node.properties.id = prefix + slugs.slug(toString(node))\n }\n })\n }\n}\n","/**\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('hast').Element} Element\n */\n\n/**\n * @typedef {null | undefined | string | TestFunctionAnything | Array} Test\n * Check for an arbitrary element, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if an element passes a test, unaware of TypeScript inferral.\n * @param {Element} element\n * An element.\n * @param {number | null | undefined} [index]\n * The element’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The element’s parent.\n * @returns {boolean | void}\n * Whether this element passes the test.\n */\n\n/**\n * @template {Element} T\n * Element type.\n * @typedef {T['tagName'] | TestFunctionPredicate | Array>} PredicateTest\n * Check for an element that can be inferred by TypeScript.\n */\n\n/**\n * Check if an element passes a certain node test.\n *\n * @template {Element} T\n * Element type.\n * @callback TestFunctionPredicate\n * Complex test function for an element that can be inferred by TypeScript.\n * @param {Element} element\n * An element.\n * @param {number | null | undefined} [index]\n * The element’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The element’s parent.\n * @returns {element is T}\n * Whether this element passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is an element, 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 an element and passes a test.\n */\n\n/**\n * Check if a node is an element and passes a certain node test\n *\n * @template {Element} T\n * Element type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific element, 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 T}\n * Whether this is an element and passes a test.\n */\n\n/**\n * Check if `node` is an `Element` 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 element.\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 an element and passes a test.\n */\nexport const isElement =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test?: PredicateTest, index?: number, parent?: Parent, context?: unknown) => node is T) &\n * ((node: unknown, test: Test, index?: number, parent?: Parent, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test | undefined} [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 (node, test, index, parent, context) {\n const check = convertElement(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 for child node')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n // @ts-expect-error Looks like a node.\n if (!node || !node.type || typeof node.type !== 'string') {\n return false\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 return check.call(context, node, index, parent)\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 an `Element`.\n * * When `string`, works like passing `(element) => element.tagName === test`.\n * * When `function` checks if function passed the element is true.\n * * When `array`, checks any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convertElement =\n /**\n * @type {(\n * ((test: T['tagName'] | TestFunctionPredicate) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as test')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array} 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)) {\n return true\n }\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain tag name.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction tagNameFactory(check) {\n return tagName\n\n /**\n * @param {unknown} node\n * @returns {boolean}\n */\n function tagName(node) {\n return element(node) && node.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element 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} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n // @ts-expect-error: fine.\n return element(node) && Boolean(check.call(this, node, ...parameters))\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} node\n * @returns {node is Element}\n */\nfunction element(node) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n // @ts-expect-error Looks like a node.\n node.type === 'element' &&\n // @ts-expect-error Looks like an element.\n typeof node.tagName === 'string'\n )\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast-util-is-element').Test} Test\n *\n * @typedef {'prepend'|'append'|'wrap'|'before'|'after'} Behavior\n *\n * @callback Build\n * @param {Element} node\n * @returns {ElementChild|ElementChild[]}\n *\n * @typedef Options\n * Configuration.\n * @property {Behavior} [behavior='prepend']\n * How to create links.\n * @property {Behavior} [behaviour]\n * Please use `behavior` instead\n * @property {Properties} [properties]\n * Extra properties to set on the link when injecting.\n * Defaults to `{ariaHidden: true, tabIndex: -1}` when `'prepend'` or\n * `'append'`.\n * @property {ElementChild|ElementChild[]|Build} [content={type: 'element', tagName: 'span', properties: {className: ['icon', 'icon-link']}, children: []}]\n * hast nodes to insert in the link.\n * @property {ElementChild|ElementChild[]|Build} [group]\n * hast node to wrap the heading and link with, if `behavior` is `'before'` or\n * `'after'`.\n * There is no default.\n * @property {Test} [test]\n * Test to define which heading elements are linked.\n * Any test that can be given to `hast-util-is-element` is supported.\n * The default (no test) is to link all headings.\n * Can be used to link only h1-h3, or for example all except h1.\n */\n\nimport extend from 'extend'\nimport {hasProperty} from 'hast-util-has-property'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {convertElement} from 'hast-util-is-element'\nimport {visit, SKIP} from 'unist-util-visit'\n\n/** @type {Element} */\nconst contentDefaults = {\n type: 'element',\n tagName: 'span',\n properties: {className: ['icon', 'icon-link']},\n children: []\n}\n\n/**\n * Plugin to automatically add links to headings (h1-h6).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function rehypeAutolinkHeadings(options = {}) {\n let props = options.properties\n const behavior = options.behaviour || options.behavior || 'prepend'\n const content = options.content || contentDefaults\n const group = options.group\n const is = convertElement(options.test)\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n let method\n\n if (behavior === 'wrap') {\n method = wrap\n } else if (behavior === 'before' || behavior === 'after') {\n method = around\n } else {\n if (!props) {\n props = {ariaHidden: 'true', tabIndex: -1}\n }\n\n method = inject\n }\n\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n if (\n headingRank(node) &&\n hasProperty(node, 'id') &&\n is(node, index, parent)\n ) {\n return method(node, index, parent)\n }\n })\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function inject(node) {\n node.children[behavior === 'prepend' ? 'unshift' : 'push'](\n create(node, extend(true, {}, props), toChildren(content, node))\n )\n\n return [SKIP]\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function around(node, index, parent) {\n // Uncommon.\n /* c8 ignore next */\n if (typeof index !== 'number' || !parent) return\n\n const link = create(\n node,\n extend(true, {}, props),\n toChildren(content, node)\n )\n let nodes = behavior === 'before' ? [link, node] : [node, link]\n\n if (group) {\n const grouping = toNode(group, node)\n\n if (grouping && !Array.isArray(grouping) && grouping.type === 'element') {\n grouping.children = nodes\n nodes = [grouping]\n }\n }\n\n parent.children.splice(index, 1, ...nodes)\n\n return [SKIP, index + nodes.length]\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function wrap(node) {\n node.children = [create(node, extend(true, {}, props), node.children)]\n return [SKIP]\n }\n\n /**\n * @param {ElementChild|ElementChild[]|Build} value\n * @param {Element} node\n * @returns {ElementChild[]}\n */\n function toChildren(value, node) {\n const result = toNode(value, node)\n return Array.isArray(result) ? result : [result]\n }\n\n /**\n * @param {ElementChild|ElementChild[]|Build} value\n * @param {Element} node\n * @returns {ElementChild|ElementChild[]}\n */\n function toNode(value, node) {\n if (typeof value === 'function') return value(node)\n return extend(true, Array.isArray(value) ? [] : {}, value)\n }\n\n /**\n * @param {Element} node\n * @param {Properties} props\n * @param {ElementChild[]} children\n * @returns {Element}\n */\n function create(node, props, children) {\n return {\n type: 'element',\n tagName: 'a',\n properties: Object.assign({}, props, {\n // Fix hast types and make them required.\n /* c8 ignore next */\n href: '#' + (node.properties || {}).id\n }),\n children\n }\n }\n}\n","import { Element, Comment, Literal, ElementContent, RootContent, Properties } from 'hast';\nimport { RehypeAttrsOptions } from './';\n\nexport const getURLParameters = (url: string = '') =>\n ((url.match(/([^?=&]+)(=([^&]*))/g) || []) as string[]).reduce(\n (a: Record, v: string) => (\n (a[v.slice(0, v.indexOf('=')) as keyof typeof a] = v.slice(v.indexOf('=') + 1)), a\n ),\n {}\n )\n\nexport const prevChild = (data: Literal[] = [], index: number): Comment | undefined => {\n let i = index;\n while (i > -1) {\n i--;\n if (!data[i]) return\n if ((data[i] && data[i].value && (data[i].value as string).replace(/(\\n|\\s)/g, '') !== '') || data[i].type !== 'text') {\n if (!/^rehype:/.test(data[i].value as string) || (data[i].type as string) !== 'comment') return;\n return data[i] as unknown as Comment;\n }\n }\n return;\n}\n\nexport const nextChild = (data: RootContent[] | ElementContent[] = [], index: number, tagName?: string, codeBlockParames?: boolean): ElementContent | undefined => {\n let i = index;\n while (i < data.length) {\n i++;\n if (tagName) {\n const element = data[i] as Literal & Element;\n if (element && element.value && (element.value as string).replace(/(\\n|\\s)/g, '') !== '' || data[i] && (data[i].type as string) === 'element') {\n return element.tagName === tagName ? element : undefined\n }\n } else {\n const element = data[i] as ElementContent & Literal;\n if (!element || element.type === 'element') return;\n if (element.type === 'text' && element.value.replace(/(\\n|\\s)/g, '') !== '') return;\n if (element.type && /^(comment|raw)$/ig.test(element.type)) {\n if (element.value && !/^rehype:/.test(element.value.replace(/^(\\s+)?/, '$2') || '')) {\n return\n };\n if (codeBlockParames) {\n const nextNode = nextChild(data, i, 'pre', codeBlockParames)\n if (nextNode) return;\n element.value = (element.value || '').replace(/^(\\n|\\s)+/, '')\n return element;\n } else {\n element.value = (element.value || '').replace(/^(\\n|\\s)+/, '')\n return element;\n }\n }\n }\n }\n return\n}\n\n/**\n * 获取代码注视的位置\n * @param data 数据\n * @param index 当前数据所在的位置\n * @returns 返回 当前参数数据 Object,`{}`\n */\nexport const getCommentObject = ({ value = '' }: Comment): Properties => {\n const param = getURLParameters(value.replace(/^/, '$1').replace(/^rehype:/, ''));\n Object.keys(param).forEach((keyName: string) => {\n if (param[keyName] === 'true') {\n param[keyName] = true;\n }\n if (param[keyName] === 'false') {\n param[keyName] = false;\n }\n if (typeof param[keyName] === 'string' && !/^0/.test(param[keyName] as string) && !isNaN(+param[keyName])) {\n param[keyName] = +param[keyName];\n }\n })\n return param;\n}\n\nexport type DataConfig = {\n 'data-config': Properties\n}\n\nexport const propertiesHandle = (defaultAttrs?: Properties | null, attrs?: Properties, type?: RehypeAttrsOptions['properties']): Properties | DataConfig => {\n if (type === 'string') {\n return { ...defaultAttrs, 'data-config': JSON.stringify({ ...attrs, rehyp: true })}\n } else if (type === 'attr') {\n return { ...defaultAttrs, ...attrs}\n }\n return { ...defaultAttrs, 'data-config': { ...attrs, rehyp: true }}\n}","import { Plugin } from 'unified';\nimport { Root, Element, Comment, Properties, Literal } from 'hast';\nimport { visit } from 'unist-util-visit';\nimport { propertiesHandle, nextChild, prevChild, getCommentObject } from './utils';\n\nexport type RehypeAttrsOptions = {\n /**\n * ## `data`\n * \n * ```markdown\n * text\n * \n * ```\n * 👇👇👇👇👇\n * ```html\n *

text

\n * ```\n * \n * ## `string`\n * \n * ```markdown\n * text\n * \n * ```\n * \n * 👇👇👇👇👇\n * \n * ```html\n *

text

\n * ```\n * \n * ## attr\n * \n * ```markdown\n * text\n * \n * ```\n * 👇👇👇👇👇\n * ```html\n *

text

\n * ```\n * @default `data`\n */\n properties?: 'data' | 'string' | 'attr';\n /**\n * Code block passing parameters\n */\n codeBlockParames?: boolean;\n}\n\nconst rehypeAttrs: Plugin<[RehypeAttrsOptions?], Root> = (options = {}) => {\n const { properties = 'data', codeBlockParames = true } = options;\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n if (codeBlockParames && node.tagName === 'pre' && node && Array.isArray(node.children) && parent && Array.isArray(parent.children) && parent.children.length > 1) {\n const firstChild = node.children[0] as Element;\n if (firstChild && firstChild.tagName === 'code' && typeof index === 'number') {\n const child = prevChild(parent.children as Literal[], index);\n if (child) {\n const attr = getCommentObject(child);\n if (Object.keys(attr).length > 0) {\n node.properties = { ...node.properties, ...{ 'data-type': 'rehyp' } }\n firstChild.properties = propertiesHandle(firstChild.properties, attr, properties) as Properties\n }\n }\n }\n }\n\n if (/^(em|strong|b|a|i|p|pre|kbd|blockquote|h(1|2|3|4|5|6)|code|table|img|del|ul|ol)$/.test(node.tagName) && parent && Array.isArray(parent.children) && typeof index === 'number') {\n const child = nextChild(parent.children, index, '', codeBlockParames)\n if (child) {\n const attr = getCommentObject(child as Comment)\n if (Object.keys(attr).length > 0) {\n node.properties = propertiesHandle(node.properties, attr, properties) as Properties\n }\n }\n }\n });\n }\n}\n\n\nexport default rehypeAttrs\n","import type { Plugin } from 'unified';\nimport type { Root, RootContent, Literal } from 'hast';\nimport { visit } from 'unist-util-visit';\n\n/**\n * Raw string of HTML embedded into HTML AST.\n */\nexport interface Raw extends Literal {\n /**\n * Node type.\n */\n type: 'raw'\n}\n\n// Register nodes in content.\ndeclare module 'hast' {\n interface RootContentMap {\n /**\n * Raw string of HTML embedded into HTML AST.\n */\n raw: Raw\n }\n interface ElementContentMap {\n /**\n * Raw string of HTML embedded into HTML AST.\n */\n raw: Raw\n }\n}\n\n\nexport type RehypeIgnoreOptions = {\n /**\n * Character to use for opening delimiter, by default `rehype:ignore:start`\n */\n openDelimiter?: string;\n /**\n * Character to use for closing delimiter, by default `rehype:ignore:end`\n */\n closeDelimiter?: string;\n}\n\nconst rehypeIgnore: Plugin<[RehypeIgnoreOptions?], Root> = (options = {}) => {\n const { openDelimiter = 'rehype:ignore:start', closeDelimiter = 'rehype:ignore:end' } = options;\n return (tree) => {\n visit(tree, (node: Root | RootContent, index, parent) => {\n if (node.type === 'element' || node.type === 'root') {\n // const start = node.children.findIndex((item) => item.type === 'comment' && item.value === openDelimiter);\n // const end = node.children.findIndex((item) => item.type === 'comment' && item.value === closeDelimiter);\n // if (start > -1 && end > -1) {\n // node.children = node.children.filter((_, idx) => idx < start || idx > end);\n // }\n let start = false;\n node.children = node.children.filter((item) => {\n if (item.type === 'raw' || item.type === 'comment') {\n let str = (item.value || '').trim();\n str = str.replace(/^/, '$1')\n if (str === openDelimiter) {\n start = true;\n return false;\n }\n if (str === closeDelimiter) {\n start = false;\n return false;\n }\n }\n \n return !start;\n })\n }\n });\n }\n}\n\nexport default rehypeIgnore;\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [cascade=true]\n * Whether to drop parent nodes if they had children, but all their children\n * were filtered out.\n */\n\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create a new `tree` of copies of all nodes that pass `test`.\n *\n * The tree is walked in *preorder* (NLR), visiting the node itself, then its\n * head, etc.\n *\n * @param tree\n * Tree to filter.\n * @param options\n * Configuration (optional).\n * @param test\n * `unist-util-is` compatible test.\n * @returns\n * New filtered tree.\n *\n * `null` is returned if `tree` itself didn’t pass the test, or is cascaded\n * away.\n */\nexport const filter =\n /**\n * @type {(\n * ((node: Tree, options: Options | null | undefined, test: Check | null | undefined) => import('./complex-types.js').Matches) &\n * ((node: Tree, test: Check) => import('./complex-types.js').Matches) &\n * ((node: Tree, options?: Options | null | undefined) => Tree)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Options | Test | null | undefined} [options]\n * @param {Test | null | undefined} [test]\n * @returns {Node | null}\n */\n function (tree, options, test) {\n const is = convert(test || options)\n /** @type {boolean | null | undefined} */\n const cascadeRaw =\n options && typeof options === 'object' && 'cascade' in options\n ? /** @type {boolean | null | undefined} */ (options.cascade)\n : undefined\n const cascade =\n cascadeRaw === undefined || cascadeRaw === null ? true : cascadeRaw\n\n return preorder(tree)\n\n /**\n * @param {Node} node\n * Current node.\n * @param {number | undefined} [index]\n * Index of `node` in `parent`.\n * @param {Parent | undefined} [parent]\n * Parent node.\n * @returns {Node | null}\n * Shallow copy of `node`.\n */\n function preorder(node, index, parent) {\n /** @type {Array} */\n const children = []\n\n if (!is(node, index, parent)) return null\n\n // @ts-expect-error: Looks like a parent.\n if (node.children) {\n let childIndex = -1\n\n // @ts-expect-error Looks like a parent.\n while (++childIndex < node.children.length) {\n // @ts-expect-error Looks like a parent.\n const result = preorder(node.children[childIndex], childIndex, node)\n\n if (result) {\n children.push(result)\n }\n }\n\n // @ts-expect-error Looks like a parent.\n if (cascade && node.children.length > 0 && children.length === 0)\n return null\n }\n\n // Create a shallow clone, using the new children.\n /** @type {typeof node} */\n // @ts-expect-error all the fields will be copied over.\n const next = {}\n /** @type {string} */\n let key\n\n for (key in node) {\n if (own.call(node, key)) {\n // @ts-expect-error: Looks like a record.\n next[key] = key === 'children' ? children : node[key]\n }\n }\n\n return next\n }\n }\n )\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef Options options\n * Configuration.\n * @property {boolean} [showLineNumbers]\n * Set `showLineNumbers` to `true` to always display line number\n * @property {boolean} [ignoreMissing]\n * Set `ignoreMissing` to `true` to ignore unsupported languages and line highlighting when no language is specified\n */\n\nimport { visit } from 'unist-util-visit'\nimport { toString } from 'hast-util-to-string'\nimport { filter } from 'unist-util-filter'\nimport rangeParser from 'parse-numeric-range'\n\n/**\n * @param {Element} node\n * @return {string|null}\n */\nconst getLanguage = (node) => {\n const className = node.properties.className\n //@ts-ignore\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === 'language-') {\n return classListItem.slice(9).toLowerCase()\n }\n }\n return null\n}\n\n/**\n * Create a closure that determines if we have to highlight the given index\n *\n * @param {string} meta\n * @return { (index:number) => boolean }\n */\nconst calculateLinesToHighlight = (meta) => {\n const RE = /{([\\d,-]+)}/\n // Remove space between {} e.g. {1, 3}\n const parsedMeta = meta\n .split(',')\n .map((str) => str.trim())\n .join()\n if (RE.test(parsedMeta)) {\n const strlineNumbers = RE.exec(parsedMeta)[1]\n const lineNumbers = rangeParser(strlineNumbers)\n return (index) => lineNumbers.includes(index + 1)\n } else {\n return () => false\n }\n}\n\n/**\n * Check if we want to start the line numbering from a given number or 1\n * showLineNumbers=5, will start the numbering from 5\n * @param {string} meta\n * @returns {number}\n */\nconst calculateStartingLine = (meta) => {\n const RE = /showLineNumbers=(?\\d+)/i\n // pick the line number after = using a named capturing group\n if (RE.test(meta)) {\n const {\n groups: { lines },\n } = RE.exec(meta)\n return Number(lines)\n }\n return 1\n}\n\n/**\n * Create container AST for node lines\n *\n * @param {number} number\n * @return {Element[]}\n */\nconst createLineNodes = (number) => {\n const a = new Array(number)\n for (let i = 0; i < number; i++) {\n a[i] = {\n type: 'element',\n tagName: 'span',\n properties: { className: [] },\n children: [],\n }\n }\n return a\n}\n\n/**\n * Split multiline text nodes into individual nodes with positioning\n * Add a node start and end line position information for each text node\n *\n * @return { (ast:Element['children']) => Element['children'] }\n *\n */\nconst addNodePositionClosure = () => {\n let startLineNum = 1\n /**\n * @param {Element['children']} ast\n * @return {Element['children']}\n */\n const addNodePosition = (ast) => {\n return ast.reduce((result, node) => {\n if (node.type === 'text') {\n const value = /** @type {string} */ (node.value)\n const numLines = (value.match(/\\n/g) || '').length\n if (numLines === 0) {\n node.position = {\n // column: 1 is needed to avoid error with @next/mdx\n // https://github.com/timlrx/rehype-prism-plus/issues/44\n start: { line: startLineNum, column: 1 },\n end: { line: startLineNum, column: 1 },\n }\n result.push(node)\n } else {\n const lines = value.split('\\n')\n for (const [i, line] of lines.entries()) {\n result.push({\n type: 'text',\n value: i === lines.length - 1 ? line : line + '\\n',\n position: {\n start: { line: startLineNum + i, column: 1 },\n end: { line: startLineNum + i, column: 1 },\n },\n })\n }\n }\n startLineNum = startLineNum + numLines\n\n return result\n }\n\n if (Object.prototype.hasOwnProperty.call(node, 'children')) {\n const initialLineNum = startLineNum\n // @ts-ignore\n node.children = addNodePosition(node.children, startLineNum)\n result.push(node)\n node.position = {\n start: { line: initialLineNum, column: 1 },\n end: { line: startLineNum, column: 1 },\n }\n return result\n }\n\n result.push(node)\n return result\n }, [])\n }\n return addNodePosition\n}\n\n/**\n * Rehype prism plugin generator that highlights code blocks with refractor (prismjs)\n *\n * Pass in your own refractor object with the required languages registered:\n * https://github.com/wooorm/refractor#refractorregistersyntax\n *\n * @param {import('refractor/lib/core').Refractor} refractor\n * @return {import('unified').Plugin<[Options?], Root>}\n */\nconst rehypePrismGenerator = (refractor) => {\n return (options = {}) => {\n return (tree) => {\n visit(tree, 'element', visitor)\n }\n\n /**\n * @param {Element} node\n * @param {number} index\n * @param {Element} parent\n */\n function visitor(node, index, parent) {\n if (!parent || parent.tagName !== 'pre' || node.tagName !== 'code') {\n return\n }\n\n let meta = node.data && node.data.meta ? /** @type {string} */ (node.data.meta) : ''\n // Coerce className to array\n if (node.properties.className) {\n if (typeof node.properties.className === 'boolean') {\n node.properties.className = []\n } else if (!Array.isArray(node.properties.className)) {\n node.properties.className = [node.properties.className]\n }\n } else {\n node.properties.className = []\n }\n node.properties.className.push('code-highlight')\n const lang = getLanguage(node)\n\n /** @type {Element} */\n let refractorRoot\n\n // Syntax highlight\n if (lang) {\n try {\n let rootLang\n if (lang?.includes('diff-')){\n rootLang=lang.split('-')[1]\n } else{\n rootLang=lang\n }\n // @ts-ignore\n refractorRoot = refractor.highlight(toString(node), rootLang)\n // @ts-ignore className is already an array\n parent.properties.className = (parent.properties.className || []).concat(\n 'language-' + rootLang\n )\n } catch (err) {\n if (options.ignoreMissing && /Unknown language/.test(err.message)) {\n refractorRoot = node\n } else {\n throw err\n }\n }\n } else {\n refractorRoot = node\n }\n\n refractorRoot.children = addNodePositionClosure()(refractorRoot.children)\n\n // Add position info to root\n if (refractorRoot.children.length > 0) {\n refractorRoot.position = {\n start: { line: refractorRoot.children[0].position.start.line, column: 0 },\n end: {\n line: refractorRoot.children[refractorRoot.children.length - 1].position.end.line,\n column: 0,\n },\n }\n } else {\n refractorRoot.position = {\n start: { line: 0, column: 0 },\n end: { line: 0, column: 0 },\n }\n }\n\n const shouldHighlightLine = calculateLinesToHighlight(meta)\n const startingLineNumber = calculateStartingLine(meta)\n const codeLineArray = createLineNodes(refractorRoot.position.end.line)\n\n const falseShowLineNumbersStr = [\n 'showlinenumbers=false',\n 'showlinenumbers=\"false\"',\n 'showlinenumbers={false}',\n ]\n for (const [i, line] of codeLineArray.entries()) {\n // Default class name for each line\n line.properties.className = ['code-line']\n\n // Syntax highlight\n const treeExtract = filter(\n refractorRoot,\n (node) => node.position.start.line <= i + 1 && node.position.end.line >= i + 1\n )\n line.children = treeExtract.children\n\n // Line number\n if (\n (meta.toLowerCase().includes('showLineNumbers'.toLowerCase()) ||\n options.showLineNumbers) &&\n !falseShowLineNumbersStr.some((str) => meta.toLowerCase().includes(str))\n ) {\n line.properties.line = [(i + startingLineNumber).toString()]\n line.properties.className.push('line-number')\n }\n\n // Line highlight\n if (shouldHighlightLine(i)) {\n line.properties.className.push('highlight-line')\n }\n\n // Diff classes\n if ((lang === 'diff' || lang?.includes('diff-')) && toString(line).substring(0, 1) === '-') {\n line.properties.className.push('deleted')\n } else if ((lang === 'diff' || lang?.includes('diff-')) && toString(line).substring(0, 1) === '+') {\n line.properties.className.push('inserted')\n }\n }\n\n // Remove possible trailing line when splitting by \\n which results in empty array\n if (\n codeLineArray.length > 0 &&\n toString(codeLineArray[codeLineArray.length - 1]).trim() === ''\n ) {\n codeLineArray.pop()\n }\n\n node.children = codeLineArray\n }\n }\n}\n\nexport default rehypePrismGenerator\n","import { refractor as refractorAll } from 'refractor/lib/all.js'\nimport rehypePrismGenerator from './generator.js'\n\n/**\n * Rehype prism plugin that highlights code blocks with refractor (prismjs)\n * This supports all the languages and should be used on the server side.\n *\n * Consider using rehypePrismCommon or rehypePrismGenerator to generate a plugin\n * that supports your required languages.\n */\nconst rehypePrismAll = rehypePrismGenerator(refractorAll)\n\nexport default rehypePrismAll\n","import { refractor as refractorCommon } from 'refractor/lib/common.js'\nimport rehypePrismGenerator from './generator.js'\n\n/**\n * Rehype prism plugin that highlights code blocks with refractor (prismjs)\n * Supported languages: https://github.com/wooorm/refractor#data\n *\n * Consider using rehypePrismGenerator to generate a plugin\n * that supports your required languages.\n */\nconst rehypePrismCommon = rehypePrismGenerator(refractorCommon)\n\nexport default rehypePrismCommon\n","const rtlRange = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nconst ltrRange =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\n/* eslint-disable no-misleading-character-class */\nconst rtl = new RegExp('^[^' + ltrRange + ']*[' + rtlRange + ']')\nconst ltr = new RegExp('^[^' + rtlRange + ']*[' + ltrRange + ']')\n/* eslint-enable no-misleading-character-class */\n\n/**\n * Detect the direction of text: left-to-right, right-to-left, or neutral\n *\n * @param {string} value\n * @returns {'rtl'|'ltr'|'neutral'}\n */\nexport function direction(value) {\n const source = String(value || '')\n return rtl.test(source) ? 'rtl' : ltr.test(source) ? 'ltr' : 'neutral'\n}\n","/**\n * @typedef {import('./types.js').SelectState} SelectState\n * @typedef {import('./types.js').Node} Node\n * @typedef {import('./types.js').ElementChild} ElementChild\n * @typedef {import('./types.js').Direction} Direction\n * @typedef {import('unist-util-visit/complex-types.js').Visitor} Visitor\n */\n\nimport {direction} from 'direction'\nimport {toString} from 'hast-util-to-string'\nimport {svg} from 'property-information'\nimport {visit, EXIT, SKIP} from 'unist-util-visit'\n\n/**\n * Enter a node.\n *\n * The caller is responsible for calling the return value `exit`.\n *\n * @param {SelectState} state\n * Current state.\n *\n * Will be mutated: `exit` undos the changes.\n * @param {Node} node\n * Node to enter.\n * @returns {() => void}\n * Call to exit.\n */\n// eslint-disable-next-line complexity\nexport function enterState(state, node) {\n const schema = state.schema\n const language = state.language\n const currentDirection = state.direction\n const editableOrEditingHost = state.editableOrEditingHost\n /** @type {Direction | undefined} */\n let dirInferred\n\n if (node.type === 'element' && node.properties) {\n const lang = node.properties.xmlLang || node.properties.lang\n const type = node.properties.type || 'text'\n const dir = dirProperty(node)\n\n if (lang !== undefined && lang !== null) {\n state.language = String(lang)\n }\n\n if (schema && schema.space === 'html') {\n if (node.properties.contentEditable === 'true') {\n state.editableOrEditingHost = true\n }\n\n if (node.tagName === 'svg') {\n state.schema = svg\n }\n\n // See: .\n // Explicit `[dir=rtl]`.\n if (dir === 'rtl') {\n dirInferred = dir\n } else if (\n // Explicit `[dir=ltr]`.\n dir === 'ltr' ||\n // HTML with an invalid or no `[dir]`.\n (dir !== 'auto' && node.tagName === 'html') ||\n // `input[type=tel]` with an invalid or no `[dir]`.\n (dir !== 'auto' && node.tagName === 'input' && type === 'tel')\n ) {\n dirInferred = 'ltr'\n // `[dir=auto]` or `bdi` with an invalid or no `[dir]`.\n } else if (dir === 'auto' || node.tagName === 'bdi') {\n if (node.tagName === 'textarea') {\n // Check contents of `