Re: PSA: HTML fragment mode interaction between Chromium, Clipboard & Notepad++

Maria Sophia <[email protected]> Wed, 11 Feb 2026 18:02:09 -0500
Newsgroups alt.comp.os.windows-10,alt.comp.os.windows-11,alt.comp.microsoft.windows
Organization BWH Usenet Archive (https://usenet.blueworldhosting.com)
Message-ID <[email protected]>
  <?xml version="1.0" encoding="UTF-8" ?>
  <!-- C:\app\editor\txt\Notepad++\shortcuts.xml for Windows Notepad++ -->
  <!-- v3p9 20260211 Notepad++ is not running the macro in the order shown -->
  <!--  Notepad++ is executing macro actions in a different order -->
  <!--  than they appear in the XML so a total rewrite is needed in v4p0 -->
  <!-- v3p8 20260211 U+2060 is driving me nuts so it's the first block now -->
  <!-- v3p7 20260211 moved U+2060 up because it's the most disruptive -->
  <!-- v3p6 20260211 U+2009 & U+200B not being converted properly -->
  <!-- v3p5 20260211 fixed U+200B failing when U+200B is between ' & s -->
  <!--      A 2nd pass was duplicated after apostrophe normalization rules -->
  <!-- v3p4 20260211 added U+275E (heavy double quote right) -->
  <!-- v3p3 20260211 added U+2009 (thin space) -->
  <!-- v3p2 20260211 added seven new conversions after running testcases -->
  <!--  U+02BE  (modifier letter right half ring) -->
  <!--  U+02BF  (modifier letter left half ring) -->
  <!--  U+201E  (double low-9 quote) -->
  <!--  U+201F  (double high-reversed-9 quote) -->
  <!--  U+275D  (heavy double quote left) -->
  <!--  U+275E  (heavy double quote right) -->
  <!--  U+2015  (horizontal bar) -->
  <!--  U+2009  (thin space) -->
  <!-- v3p1 20260211 reorganized into a dozen distinct categories -->
  <!--  (1) control characters: U+000F U+0001 -->
  <!--  (2) dashes & minus signs: U+2010 U+2011 U+2012 U+2212 -->
  <!--  (3) zero-width characters: U+200C U+200B U+200D U+FEFF U+2060 -->
  <!--  (4) special spaces: U+00A0 U+2007 U+202F U+200A U+2008 U+2006 -->
  <!--  (5) apostrophe-like characters: 
            U+0F0C U+2018 U+2019 U+2032 U+02BC U+02B9 U+02C8 U+02EE 
            U+201B U+02CB U+A78C U+FF07 -->
  <!--  (6) combining marks (remove after apostrophes): 
            U+0351 U+0307 U+0331 U+0335 U+0336 U+0337 U+0338 -->
  <!--  (7) double-quote normalization: U+201C U+201D -->
  <!--  (8) dash-like & ellipsis & HTML entities: 
            U+2026 &#151; U+2014 U+2013 &zwnj; -->
  <!--  (9) bullets, math symbols, diacritics: 
            U+2022 U+8722 U+011F U+2009 U+00E1 U+0161 U+011B -->
  <!-- (10) miscellaneous symbols: 
            U+2713 ASCII hyphen ` U+2192 U+00B0 U+00A9 U+2122 U+00AE -->
  <!-- (11) invisible operators: 
            U+00AD U+2061 U+2062 U+2063 U+2064 U+180E -->
  <!-- (12) line separators: U+2028 U+2029 U+0085 -->
  <!-- v3p0 20260211 added combining marks U+0351 U+0307 U+0331 -->
  <!-- v3p1 20260211 added apostrophe-like characters U+201B U+02CB -->
  <!-- v2p9 20260211 moved U+2060 to be above apostrophe-related blocks -->
  <!-- v2p8 20260211 fixed Chromium CF_HTML paste control+A anomaly -->
  <!-- v2p7 20260211 added U+02EE modifier letter double apostrophe rule -->
  <!-- v2p6 20260211 fixed U+02C8 modifier letter vertical line) rule -->
  <!-- v2p5 20260211 fixed U+02B9 (modifier letter prime) rule -->
  <!-- v2p4 20260211 removed one of two U+000F blocks -->
  <!-- v2p3 20260211 removed two (duplicate) 1700 lines in U+0161 -->
  <!-- v2p2 20260211 fixed all zero-width blocks to replace with nothing -->
  <!-- v2p1 20260211 fixed BOM to replace with nothing -->
  <!-- v2p0 20260210 cleaned (emptied out) closing sections of the file --> 
  <!-- v1p9 20260210 ported old shortcuts.xml to improve coverage --> 
  <!-- Cleans Chromium pasted text & normalizes Unicode to ASCII -->
  <!-- Use model: paste (using control+v) & fix (using control+b) -->
  <!-- The macro should 1st break CF_HTML fragment mode (so Ctrl+A works) -->
  <!-- and then run the Unicode-to-ASCII cleanup on all the pasted text -->
  <!-- cutting (control+x) the result back into the Windows clipboard -->
  <!-- thereby leaving the Notepad++ GUI empty & ready for the next paste-->
  
  <!--
       To break Scintilla¢s CF_HTML fragment mode, we need to make any edit.
       We can insert a space & then delete that space, for example.
  -->
  
  <!-- Scintilla engine command meanings:
       1700 = begin a new search/replace operation
       1601 = set the search string (the Unicode character to find)
       1625 = clear the replacement buffer
       1602 = set the replacement string (ASCII equivalent)
       1702 = execute Replace All
       1701 = end this search/replace block
       2001 = SCI_REPLACESEL (inserts a space) 
       2326 = SCI_DELETEBACK (deletes the space)
       2013 = SCI_SELECTALL (selects everything)
       2177 = SCI_CUT (cut all)
  -->
  
  <NotepadPlus>
  <InternalCommands>
          <Shortcut id="43009" Ctrl="no" Alt="no" Shift="no" Key="0" />
      </InternalCommands>
      <Macros>
  
  <!-- When you paste from a Chromium-based app, the clipboard contains:
        CF_UNICODETEXT (plain text) & CF_HTML (HTML fragment)
        And sometimes CF_RTF where Notepad++ prefers CF_HTML if available.
  
       v2p0 fixes a Notepad++ selection issue caused by CF_HTML pastes. 
       "HTML Paste Mode" prevents the "Control+A" from working.
       "HTML paste mode" inserts HTML fragment as plain text 
       where Ctrl+A is disabled until the buffer is "normalized"  
       (until the first edit that breaks the fragment state)
  -->
  
  <!-- ASCII "control+b" Cleanup Macro -->
  <Macro name="ASCII" Ctrl="yes" Alt="no" Shift="no" Key="66">
  
  <!-- Begin Scintilla HTML-paste workaround top portion -->	
  <!-- Break Chromium CF_HTML fragment mode by adding & deleting a space-->
  <Action type="0" message="2001" wParam="32" lParam="0" sParam="" />
  <Action type="0" message="2326" wParam="0" lParam="0" sParam="" />
  <!-- Select all text before running cleanup -->
  <Action type="0" message="2013" wParam="0" lParam="0" sParam="" />
  <!-- End Scintilla HTML-paste workaround top portion -->	
  
  <!-- BEGIN CONVERSION BLOCKS -->
  
  <!-- U+2060 is driving me nuts so I'm making it the 1st block -->
  <!-- U+2060 must be placed above the apostrophe-related blocks -->
  <!-- Otherwise apostrophe block may skip over it -->
  <!-- U+2060 is disruptive as it must be placed above zero-width too -->
  <!-- Replace U+2060 (WORD JOINER) with nothing --> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2060;" /> 
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" /> 
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #1. CONTROL CHARACTERS (remove first) -->
  <!-- Replace U+000F (SHIFT-OUT control character) with nothing --> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x000F;" /> 
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" /> 
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+0001 (SOH control character) with nothing -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0001;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #2. DASHES & MINUS SIGNS (safest to remove early) -->
  <!-- Replace U+2010 (HYPHEN) with ASCII "-"  -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2010;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2011 (NON-BREAKING HYPHEN) with ASCII hyphen "-"  -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2011;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2012 (FIGURE DASH) with ASCII "-"  -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2012;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2212 (MINUS SIGN) with ASCII "-"  -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2212;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #3. ZERO-WIDTH CHARACTERS (must be BEFORE apostrophes) -->
  
  <!-- Replace U+200C (ZERO WIDTH NON-JOINER) with "" (nothing) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200C;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+200B (ZERO WIDTH SPACE) with nothing -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200B;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+200D (ZERO WIDTH JOINER) with nothing -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200D;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+FEFF (BOM) with nothing -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xFEFF;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  
  <!-- #4. SPECIAL SPACES (convert to ASCII space) -->
  <!-- Replace U+00A0 (NO-BREAK SPACE) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A0;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2007 (FIGURE SPACE) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2007;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+202F (NARROW NO-BREAK SPACE) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x202F;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+200A (HAIR SPACE) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200A;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2008 (PUNCTUATION SPACE) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2008;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2006 (SIX-PER-EM SPACE) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2006;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #5. APOSTROPHE-LIKE CHARACTERS -->
  <!-- Replace U+0F0C (TIBETAN MARK DELIMITER) with ASCII apostrophe "'"  -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0F0C;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2018 (LEFT SINGLE QUOTE) with ASCII apostrophe "'"  -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2018;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2019 (RIGHT SINGLE QUOTATION) with ASCII apostrophe "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2019;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2032 (PRIME) with ASCII apostrophe -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2032;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+02BC (MODIFIER LETTER APOSTROPHE) with ASCII apostrophe -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02BC;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+02B9 (MODIFIER LETTER PRIME) with ASCII apostrophe "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02B9;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+02C8 (MODIFIER LETTER VERTICAL) with ASCII apostrophe "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02C8;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+02EE (MODIFIER DOUBLE APOSTROPHE) with ASCII apostrophe "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02EE;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- U+201B (SINGLE HIGH-REVERSED-9 QUOTATION MARK) with apostrophe "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201B;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+02CB (MODIFIER LETTER GRAVE ACCENT) with ASCII apostrophe "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02CB;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- This is is a duplication which is after the apostrophes --> 
  <!-- When U+200B appears between two characters that were already replaced -->
  <!-- the first pass fails to remove it, so I added this duplicate -->
  <!-- Remove U+200B (ZERO-WIDTH SPACE) second pass -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200B;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #6. COMBINING MARKS (remove only after apostrophes are done) -->
  <!-- Remove U+0351 (COMBINING RIGHT HALF RING ABOVE) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0351;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Remove U+0307 (COMBINING DOT ABOVE) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0307;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Remove U+0331 (COMBINING MACRON BELOW) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0331;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  
  <!-- #7. DOUBLE-QUOTE NORMALIZATION -->
  <!-- Replace U+201C (LEFT DOUBLE QUOTE) with ASCII double quote " -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201C;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam='&quot;' />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+201D (RIGHT DOUBLE QUOTE) with ASCII double quote -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201D;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam='&quot;' />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #8. ELLIPSIS, EM DASH, EN DASH, HTML ENTITIES -->
  <!-- Replace U+2026 (HORIZONTAL ELLIPSIS) with ASCII "..." -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2026;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="..." />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace literal &#151; (HTML entity for EM DASH) with ASCII "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&amp;#151;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2014 (EM DASH) with ASCII "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2014;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2013 (EN DASH) with ASCII "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2013;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace literal &zwnj; (ZERO WIDTH NON-JOINER entity) with ASCII "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&zwnj;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #9. BULLETS, MATH SYMBOLS, LETTERS WITH DIACRITICS -->
  <!-- Replace U+2022 (BULLET) with ASCII "*" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2022;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&#x002A;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+8722 (MATHEMATICAL MINUS variant) with ASCII "&" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x8722;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&amp;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+011F (LATIN SMALL G WITH BREVE) with ASCII "g" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x11f;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="g" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+00E1 (LATIN SMALL A WITH ACUTE) with ASCII "a" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xe1;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="a" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+0161 (LATIN SMALL S WITH CARON) with ASCII "s" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x161;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="s" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+011B (LATIN SMALL E WITH CARON) with ASCII "e" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x11b;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="e" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #10. MISCELLANEOUS SYMBOLS -->
  <!-- Replace U+2713 (CHECK MARK) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2713;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace ASCII hyphen "-" with ASCII hyphen "-" (normalize) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace backtick with ASCII single quote -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="`" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace Unicode Arrow (U+2192) with ASCII dash greaterthan --> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2192;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="->" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace degree symbol with deg --> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00B0;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="deg" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace copyright symbol U??? with (C) --> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A9;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="(C)" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace Trademark (U+2122) with (TM) --> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2122;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="(TM)" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace Registered (U+00AE) with (R) -->  
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AE;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="(R)" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  
  <!-- #11. INVISIBLE OPERATORS (remove) -->
  <!-- Replace U+00AD (SOFT HYPHEN) with "" (remove completely) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AD;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2061 (FUNCTION APPLICATION) with "" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2061;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2062 (INVISIBLE TIMES) with "" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2062;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2063 (INVISIBLE SEPARATOR) with "" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2063;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2064 (INVISIBLE PLUS) with "" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2064;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+180E (MONGOLIAN VOWEL SEPARATOR) with "" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x180E;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- #12. LINE SEPARATORS -->
  <!-- Replace U+2028 (LINE SEPARATOR) with ASCII newline -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2028;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2029 (PARAGRAPH SEPARATOR) with ASCII newline -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2029;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+0085 (NEXT LINE / NEL) with ASCII newline -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0085;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+A78C (LATIN SMALL LETTER SALTILLO) with ASCII apostrophe "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xA78C;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+FF07 (FULLWIDTH APOSTROPHE) with ASCII apostrophe "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xFF07;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Remove U+0335 (COMBINING SHORT STROKE OVERLAY) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0335;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Remove U+0336 (COMBINING LONG STROKE OVERLAY) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0336;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Remove U+0337 (COMBINING SHORT SOLIDUS OVERLAY) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0337;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Remove U+0338 (COMBINING LONG SOLIDUS OVERLAY) -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0338;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2043 (HYPHEN BULLET) with ASCII "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2043;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+02BE (MODIFIER LETTER RIGHT HALF RING) w/ ASCII apostrophe -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02BE;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+02BF (MODIFIER LETTER LEFT HALF RING) w/ ASCII apostrophe -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02BF;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+201E (DOUBLE LOW-9 QUOTATION MARK) w/ ASCII double quote -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201E;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&quot;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+201F (DOUBLE HIGH-REVERSED-9 QUOTATION MARK) w/ dquote -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201F;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&quot;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+275D (HEAVY DOUBLE QUOTATION MARK ORNAMENT LEFT) w/ dquote -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x275D;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&quot;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+275E (HEAVY DOUBLE QUOTATION MARK ORNAMENT RIGHT) w/ dquote -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x275E;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="&quot;" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2015 (HORIZONTAL BAR) with ASCII hyphen -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2015;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2009 (THIN SPACE) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2009;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- Replace U+2009 (THIN SPACE) with ASCII space -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2009;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  <!-- END OF CONVERSION BLOCKS -->
  
  <!-- Begin Scintilla HTML-paste workaround bottom portion -->	
  <!-- Select all cleaned text -->
  <Action type="0" message="2013" wParam="0" lParam="0" sParam="" />
  
  <!-- Cut cleaned text to Windows clipboard -->
  <Action type="0" message="2177" wParam="0" lParam="0" sParam="" />
  <!-- End Scintilla HTML-paste workaround bottom portion -->	
  
  <!-- Notepad++ will save shortcuts.xml automatically as it
       rewrites the file whenever shortcuts/macros/plugins change.
       Some sections are required so empty sections will be recreated. 
  -->
  
  </Macro> 
    </Macros> 
    <UserDefinedCommands> 
    </UserDefinedCommands> 
  
    <PluginCommands /> 
    <ScintillaKeys /> 
  
  </NotepadPlus>