anchor.diff:  ::                 - /u/MrYiff          : bug fix related to OS_VERSION variable
   ::                 - /u/cannibalkitteh  : additional registry & file cleaning locations
   ::                 - forums.oracle.com/people/mattmn : a lot of stuff from his Java removal script
  -:: Version:       1.8.3 * IMPROVEMENT: Add deletion of orphaned Java binaries from the Windows system folders. Thanks to /u/Mikkehy
  +:: Version:       1.8.4 + ADDITIONS:   Add support for removal of JRE series 9
  +::                1.8.3 * IMPROVEMENT: Add deletion of orphaned Java binaries from the Windows system folders. Thanks to /u/Mikkehy
   ::                1.8.2 * IMPROVEMENT: Expand JRE8 mask to catch versions over 99 (3-digit identifier vs. 2). Thanks to /u/flash44007
   ::                1.8.1 ! BUG FIX:     Fix crash error on unescaped "*" character
   ::                1.8.0 ! BUG FIX:     Fix uncommon failure where JRE uninstallers fail because they can't find certain files. Thanks to /u/GoogleDrummer
  
positive.code: :: This line catches any version above 99 since it's three characters instead of two. Oracle also dropped the "8" from
  :: the last part of the GUID, so instead of "2F8__" it's now "2F__", presumably to make room for the 3rd digit on the right
  %WMIC% product where "IdentifyingNumber like '{26A24AE4-039D-4CA4-87B4-2F__180___F_}'" call uninstall /nointeractive >> "%LOGPATH%\%LOGFILE%"
  
  
  :: JRE 7
  call :log "%CUR_DATE% %TIME%   JRE 7..."
  
negative.code: call :log "%CUR_DATE% %TIME%   Targeting individual JRE versions..."
  call :log "%CUR_DATE% %TIME%   This might take a few minutes. Don't close this window."
  
  :: EXPOSITION DUMP: OK, so all JRE runtimes (series 4-9) use certain GUIDs that increment with each new update (e.g. Update 66)
  :: This makes it easy to catch them through liberal use of WMI wildcards ("_" is single character, "%" is any number of characters)
  :: Additionally, JRE 6 introduced 64-bit runtimes, so in addition to the two-digit Update XX revision number, we also check for the architecture
  :: type, which always equals '32' or '64'. The first wildcard is the architecture, the second is the revision/update number.
  :: Beginning with JRE versions over 99 (JRE8 was first major version to have subversions go over 99), the GUID string "2F8__", which identified architecture, switched to "2F__", presumably to make room for the new 3rd digit in the version identifying section. You can see this in the JRE8 portion below.
  
  :: JRE 9
  call :log "%CUR_DATE% %TIME%   JRE 9..."
  :: Wildcards aren't used here (yet) because we don't know which portion of the GUID will change with the first "Update xx" release.
  :: Script will be updated when the first Update to series 9 is released by Oracle
  %WMIC% product where "IdentifyingNumber like '{DA69628A-2608-5BA9-8749-1EE90CB29D95}'" call uninstall /nointeractive >> "%LOGPATH%\%LOGFILE%"
  %WMIC% product where "name like 'Java 9%%'" uninstall /nointeractive
  
  :: JRE 8
  call :log "%CUR_DATE% %TIME%   JRE 8..."
  