<?xml version='1.0' encoding='UTF-8'?>
<units size='37'>
  <unit id='a.jre.javase' version='11.0.0' singleton='false'>
    <provides size='205'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' version='11.0.0'/>
      <provided namespace='java.package' name='java.applet' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.color' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.datatransfer' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.desktop' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.dnd' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.event' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.font' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.geom' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.im' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.im.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.image' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.image.renderable' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.print' version='0.0.0'/>
      <provided namespace='java.package' name='java.beans' version='0.0.0'/>
      <provided namespace='java.package' name='java.beans.beancontext' version='0.0.0'/>
      <provided namespace='java.package' name='java.io' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.annotation' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.instrument' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.invoke' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.management' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.module' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.ref' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.reflect' version='0.0.0'/>
      <provided namespace='java.package' name='java.math' version='0.0.0'/>
      <provided namespace='java.package' name='java.net' version='0.0.0'/>
      <provided namespace='java.package' name='java.net.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.channels' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.channels.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.charset' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.charset.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file.attribute' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.activation' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.dgc' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.registry' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.server' version='0.0.0'/>
      <provided namespace='java.package' name='java.security' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.acl' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.cert' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.interfaces' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.spec' version='0.0.0'/>
      <provided namespace='java.package' name='java.sql' version='0.0.0'/>
      <provided namespace='java.package' name='java.text' version='0.0.0'/>
      <provided namespace='java.package' name='java.text.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.time' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.chrono' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.format' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.temporal' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.zone' version='0.0.0'/>
      <provided namespace='java.package' name='java.util' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent.atomic' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent.locks' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.function' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.jar' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.logging' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.prefs' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.regex' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.stream' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.zip' version='0.0.0'/>
      <provided namespace='java.package' name='javax.accessibility' version='0.0.0'/>
      <provided namespace='java.package' name='javax.annotation.processing' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto.interfaces' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto.spec' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.metadata' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.plugins.bmp' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.plugins.jpeg' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.element' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.type' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.util' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.loading' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.modelmbean' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.monitor' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.openmbean' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.relation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.remote' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.remote.rmi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.timer' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.directory' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.ldap' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.net' version='0.0.0'/>
      <provided namespace='java.package' name='javax.net.ssl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.attribute' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.attribute.standard' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.rmi.ssl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.script' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.callback' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.kerberos' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.login' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.x500' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.cert' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.sasl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.midi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.midi.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.sampled' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.sampled.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset.serial' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.border' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.colorchooser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.filechooser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.basic' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.metal' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.multi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.nimbus' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.synth' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.table' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.html' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.html.parser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.rtf' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.tree' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.undo' version='0.0.0'/>
      <provided namespace='java.package' name='javax.tools' version='0.0.0'/>
      <provided namespace='java.package' name='javax.transaction.xa' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.keyinfo' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.spec' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.datatype' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.namespace' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.parsers' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream.events' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream.util' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.sax' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.stax' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.validation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.xpath' version='0.0.0'/>
      <provided namespace='java.package' name='org.ietf.jgss' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.bootstrap' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.css' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.events' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.html' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.ls' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.ranges' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.stylesheets' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.traversal' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.views' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.xpath' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax.ext' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax.helpers' version='0.0.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.0.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.1.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.2.0'/>
      <provided namespace='osgi.ee' name='JRE' version='1.0.0'/>
      <provided namespace='osgi.ee' name='JRE' version='1.1.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.1.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.2.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.3.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.4.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.5.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.6.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.7.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='10.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='11.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='10.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='11.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='10.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='11.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='10.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='11.0.0'/>
    </provides>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
  </unit>
  <unit id='config.a.jre.javase' version='11.0.0' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' range='11.0.0'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='config.a.jre.javase' version='11.0.0'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' range='11.0.0'/>
    </requires>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='1'>
        <instruction key='install'>

        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='a.jre.javase' version='14.0.0' singleton='false'>
    <provides size='208'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' version='14.0.0'/>
      <provided namespace='java.package' name='java.applet' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.color' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.datatransfer' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.desktop' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.dnd' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.event' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.font' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.geom' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.im' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.im.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.image' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.image.renderable' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.print' version='0.0.0'/>
      <provided namespace='java.package' name='java.beans' version='0.0.0'/>
      <provided namespace='java.package' name='java.beans.beancontext' version='0.0.0'/>
      <provided namespace='java.package' name='java.io' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.annotation' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.instrument' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.invoke' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.management' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.module' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.ref' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.reflect' version='0.0.0'/>
      <provided namespace='java.package' name='java.math' version='0.0.0'/>
      <provided namespace='java.package' name='java.net' version='0.0.0'/>
      <provided namespace='java.package' name='java.net.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.channels' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.channels.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.charset' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.charset.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file.attribute' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.activation' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.dgc' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.registry' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.server' version='0.0.0'/>
      <provided namespace='java.package' name='java.security' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.acl' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.cert' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.interfaces' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.spec' version='0.0.0'/>
      <provided namespace='java.package' name='java.sql' version='0.0.0'/>
      <provided namespace='java.package' name='java.text' version='0.0.0'/>
      <provided namespace='java.package' name='java.text.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.time' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.chrono' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.format' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.temporal' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.zone' version='0.0.0'/>
      <provided namespace='java.package' name='java.util' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent.atomic' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent.locks' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.function' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.jar' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.logging' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.prefs' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.regex' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.stream' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.zip' version='0.0.0'/>
      <provided namespace='java.package' name='javax.accessibility' version='0.0.0'/>
      <provided namespace='java.package' name='javax.annotation.processing' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto.interfaces' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto.spec' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.metadata' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.plugins.bmp' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.plugins.jpeg' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.element' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.type' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.util' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.loading' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.modelmbean' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.monitor' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.openmbean' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.relation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.remote' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.remote.rmi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.timer' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.directory' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.ldap' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.net' version='0.0.0'/>
      <provided namespace='java.package' name='javax.net.ssl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.attribute' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.attribute.standard' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.rmi.ssl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.script' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.callback' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.kerberos' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.login' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.x500' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.cert' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.sasl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.midi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.midi.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.sampled' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.sampled.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset.serial' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.border' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.colorchooser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.filechooser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.basic' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.metal' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.multi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.nimbus' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.synth' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.table' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.html' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.html.parser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.rtf' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.tree' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.undo' version='0.0.0'/>
      <provided namespace='java.package' name='javax.tools' version='0.0.0'/>
      <provided namespace='java.package' name='javax.transaction.xa' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.keyinfo' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.spec' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.datatype' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.namespace' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.parsers' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream.events' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream.util' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.sax' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.stax' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.validation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.xpath' version='0.0.0'/>
      <provided namespace='java.package' name='org.ietf.jgss' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.bootstrap' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.css' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.events' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.html' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.ls' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.ranges' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.stylesheets' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.traversal' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.views' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.xpath' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax.ext' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax.helpers' version='0.0.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.0.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.1.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.2.0'/>
      <provided namespace='osgi.ee' name='JRE' version='1.0.0'/>
      <provided namespace='osgi.ee' name='JRE' version='1.1.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.1.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.2.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.3.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.4.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.5.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.6.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.7.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='10.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='11.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='12.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='13.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='14.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='10.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='11.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='10.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='11.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='10.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='11.0.0'/>
    </provides>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
  </unit>
  <unit id='config.a.jre.javase' version='14.0.0' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' range='14.0.0'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='config.a.jre.javase' version='14.0.0'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' range='14.0.0'/>
    </requires>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='1'>
        <instruction key='install'>

        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='tooling.org.eclipse.update.feature.default' version='1.0.0' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='feature' range='0.0.0' optional='true' multiple='true' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='tooling.org.eclipse.update.feature.default' version='1.0.0'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='tooling' version='1.0.0'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='feature' range='0.0.0' optional='true' multiple='true' greedy='false'/>
    </requires>
    <filter>
      (org.eclipse.update.install.features=true)
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='uninstall'>
          uninstallFeature(feature:${artifact},featureId:default,featureVersion:default)
        </instruction>
        <instruction key='install'>
          installFeature(feature:${artifact},featureId:default,featureVersion:default)
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.application' version='4.9.3881'>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.application' version='4.9.3881'/>
    </provides>
    <requires size='13'>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.gtk.linux.x86_64.bm-milter' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.win32.win32.x86_64.bm-milter' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.win32.win32.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingorg.eclipse.equinox.launcher.win32.win32.x86_64' range='[1.1.401.v20161122-1740,1.1.401.v20161122-1740]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.cocoa.macosx.x86_64.bm-milter' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingorg.eclipse.equinox.launcher.gtk.linux.x86_64' range='[1.1.401.v20161122-1740,1.1.401.v20161122-1740]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.executable.cocoa.macosx.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingorg.eclipse.equinox.launcher' range='[1.3.201.v20161025-1711,1.3.201.v20161025-1711]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.gtk.linux.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.cocoa.macosx.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.executable.win32.win32.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingorg.eclipse.equinox.launcher.cocoa.macosx.x86_64' range='[1.1.401.v20161122-1740,1.1.401.v20161122-1740]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.executable.gtk.linux.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
    </requires>
    <touchpoint id='null' version='0.0.0'/>
  </unit>
  <unit id='tooling.source.default' version='1.0.0' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='source' range='0.0.0' optional='true' multiple='true' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='tooling.source.default' version='1.0.0'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='tooling' version='1.0.0'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='source' range='0.0.0' optional='true' multiple='true' greedy='false'/>
    </requires>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='uninstall'>
          removeSourceBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          addSourceBundle(bundle:${artifact})
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='a.jre.javase' version='9.0.0' singleton='false'>
    <provides size='248'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' version='9.0.0'/>
      <provided namespace='java.package' name='java.applet' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.color' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.datatransfer' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.desktop' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.dnd' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.event' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.font' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.geom' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.im' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.im.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.image' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.image.renderable' version='0.0.0'/>
      <provided namespace='java.package' name='java.awt.print' version='0.0.0'/>
      <provided namespace='java.package' name='java.beans' version='0.0.0'/>
      <provided namespace='java.package' name='java.beans.beancontext' version='0.0.0'/>
      <provided namespace='java.package' name='java.io' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.annotation' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.instrument' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.invoke' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.management' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.module' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.ref' version='0.0.0'/>
      <provided namespace='java.package' name='java.lang.reflect' version='0.0.0'/>
      <provided namespace='java.package' name='java.math' version='0.0.0'/>
      <provided namespace='java.package' name='java.net' version='0.0.0'/>
      <provided namespace='java.package' name='java.net.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.channels' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.channels.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.charset' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.charset.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file.attribute' version='0.0.0'/>
      <provided namespace='java.package' name='java.nio.file.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.activation' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.dgc' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.registry' version='0.0.0'/>
      <provided namespace='java.package' name='java.rmi.server' version='0.0.0'/>
      <provided namespace='java.package' name='java.security' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.acl' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.cert' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.interfaces' version='0.0.0'/>
      <provided namespace='java.package' name='java.security.spec' version='0.0.0'/>
      <provided namespace='java.package' name='java.sql' version='0.0.0'/>
      <provided namespace='java.package' name='java.text' version='0.0.0'/>
      <provided namespace='java.package' name='java.text.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.time' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.chrono' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.format' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.temporal' version='0.0.0'/>
      <provided namespace='java.package' name='java.time.zone' version='0.0.0'/>
      <provided namespace='java.package' name='java.util' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent.atomic' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.concurrent.locks' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.function' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.jar' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.logging' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.prefs' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.regex' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.spi' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.stream' version='0.0.0'/>
      <provided namespace='java.package' name='java.util.zip' version='0.0.0'/>
      <provided namespace='java.package' name='javax.accessibility' version='0.0.0'/>
      <provided namespace='java.package' name='javax.activation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.activity' version='0.0.0'/>
      <provided namespace='java.package' name='javax.annotation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.annotation.processing' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto.interfaces' version='0.0.0'/>
      <provided namespace='java.package' name='javax.crypto.spec' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.metadata' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.plugins.bmp' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.plugins.jpeg' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.imageio.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.jws' version='0.0.0'/>
      <provided namespace='java.package' name='javax.jws.soap' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.element' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.type' version='0.0.0'/>
      <provided namespace='java.package' name='javax.lang.model.util' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.loading' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.modelmbean' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.monitor' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.openmbean' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.relation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.remote' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.remote.rmi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.management.timer' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.directory' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.ldap' version='0.0.0'/>
      <provided namespace='java.package' name='javax.naming.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.net' version='0.0.0'/>
      <provided namespace='java.package' name='javax.net.ssl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.attribute' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.attribute.standard' version='0.0.0'/>
      <provided namespace='java.package' name='javax.print.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.rmi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.rmi.CORBA' version='0.0.0'/>
      <provided namespace='java.package' name='javax.rmi.ssl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.script' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.callback' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.kerberos' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.login' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.auth.x500' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.cert' version='0.0.0'/>
      <provided namespace='java.package' name='javax.security.sasl' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.midi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.midi.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.sampled' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sound.sampled.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset.serial' version='0.0.0'/>
      <provided namespace='java.package' name='javax.sql.rowset.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.border' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.colorchooser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.event' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.filechooser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.basic' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.metal' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.multi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.nimbus' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.plaf.synth' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.table' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.html' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.html.parser' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.text.rtf' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.tree' version='0.0.0'/>
      <provided namespace='java.package' name='javax.swing.undo' version='0.0.0'/>
      <provided namespace='java.package' name='javax.tools' version='0.0.0'/>
      <provided namespace='java.package' name='javax.transaction' version='0.0.0'/>
      <provided namespace='java.package' name='javax.transaction.xa' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.bind' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.bind.annotation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.bind.annotation.adapters' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.bind.attachment' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.bind.helpers' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.bind.util' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.keyinfo' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.crypto.dsig.spec' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.datatype' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.namespace' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.parsers' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.soap' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream.events' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.stream.util' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.dom' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.sax' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.stax' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.transform.stream' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.validation' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.ws' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.ws.handler' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.ws.handler.soap' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.ws.http' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.ws.soap' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.ws.spi' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.ws.spi.http' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.ws.wsaddressing' version='0.0.0'/>
      <provided namespace='java.package' name='javax.xml.xpath' version='0.0.0'/>
      <provided namespace='java.package' name='org.ietf.jgss' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CORBA' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CORBA_2_3' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CORBA_2_3.portable' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CORBA.DynAnyPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CORBA.ORBPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CORBA.portable' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CORBA.TypeCodePackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CosNaming' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CosNaming.NamingContextExtPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.CosNaming.NamingContextPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.Dynamic' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.DynamicAny' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.DynamicAny.DynAnyFactoryPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.DynamicAny.DynAnyPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.IOP' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.IOP.CodecFactoryPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.IOP.CodecPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.Messaging' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.PortableInterceptor' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.PortableInterceptor.ORBInitInfoPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.PortableServer' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.PortableServer.CurrentPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.PortableServer.POAManagerPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.PortableServer.POAPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.PortableServer.portable' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.PortableServer.ServantLocatorPackage' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.SendingContext' version='0.0.0'/>
      <provided namespace='java.package' name='org.omg.stub.java.rmi' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.bootstrap' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.css' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.events' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.html' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.ls' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.ranges' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.stylesheets' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.traversal' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.views' version='0.0.0'/>
      <provided namespace='java.package' name='org.w3c.dom.xpath' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax.ext' version='0.0.0'/>
      <provided namespace='java.package' name='org.xml.sax.helpers' version='0.0.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.0.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.1.0'/>
      <provided namespace='osgi.ee' name='OSGi/Minimum' version='1.2.0'/>
      <provided namespace='osgi.ee' name='JRE' version='1.0.0'/>
      <provided namespace='osgi.ee' name='JRE' version='1.1.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.1.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.2.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.3.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.4.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.5.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.6.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.7.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact1' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact2' version='9.0.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='1.8.0'/>
      <provided namespace='osgi.ee' name='JavaSE/compact3' version='9.0.0'/>
    </provides>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
  </unit>
  <unit id='tooling.osgi.bundle.default' version='1.0.0' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='0.0.0' multiple='true' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='tooling.osgi.bundle.default' version='1.0.0'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='tooling' version='1.0.0'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='0.0.0' multiple='true' greedy='false'/>
    </requires>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          setStartLevel(startLevel:4);
        </instruction>
        <instruction key='unconfigure'>

        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='config.a.jre.javase' version='9.0.0' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' range='9.0.0'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='config.a.jre.javase' version='9.0.0'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' range='9.0.0'/>
    </requires>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='1'>
        <instruction key='install'>

        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.configuration' version='4.9.3881'>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.configuration' version='4.9.3881'/>
    </provides>
    <requires size='12'>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.ini.cocoa.macosx.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingcocoa.macosx.x86_64org.eclipse.update.configurator' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingwin32.win32.x86_64org.eclipse.core.runtime' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.ini.win32.win32.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.config.gtk.linux.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingcocoa.macosx.x86_64org.eclipse.core.runtime' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.config.win32.win32.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.ini.gtk.linux.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.config.cocoa.macosx.x86_64' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingwin32.win32.x86_64org.eclipse.update.configurator' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolinggtk.linux.x86_64org.eclipse.update.configurator' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolinggtk.linux.x86_64org.eclipse.core.runtime' range='[4.9.3881,4.9.3881]'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
    </requires>
    <touchpoint id='null' version='0.0.0'/>
  </unit>
  <unit id='milter.executable.gtk.linux.x86_64.bm-milter' version='4.9.3881' singleton='false'>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='milter.executable.gtk.linux.x86_64.bm-milter' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          setLauncherName(name:bm-milter)
        </instruction>
        <instruction key='unconfigure'>
          setLauncherName()
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.ini.cocoa.macosx.x86_64' version='4.9.3881' singleton='false'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.ini.cocoa.macosx.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.ini' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          addJvmArg(jvmArg:-Dosgi.noShutdown=true);addJvmArg(jvmArg:-Djava.security.egd=file${#58}/dev/urandom);addJvmArg(jvmArg:-Duser.timezone=GMT);addJvmArg(jvmArg:-Djava.awt.headless=true);addJvmArg(jvmArg:-Dnet.bluemind.property.product=bm-milter);addJvmArg(jvmArg:-XstartOnFirstThread);addJvmArg(jvmArg:-Dorg.eclipse.swt.internal.carbon.smallFonts);
        </instruction>
        <instruction key='unconfigure'>
          removeJvmArg(jvmArg:-Dosgi.noShutdown=true);removeJvmArg(jvmArg:-Djava.security.egd=file${#58}/dev/urandom);removeJvmArg(jvmArg:-Duser.timezone=GMT);removeJvmArg(jvmArg:-Djava.awt.headless=true);removeJvmArg(jvmArg:-Dnet.bluemind.property.product=bm-milter);removeJvmArg(jvmArg:-XstartOnFirstThread);removeJvmArg(jvmArg:-Dorg.eclipse.swt.internal.carbon.smallFonts);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='milter.executable.win32.win32.x86_64.bm-milter' version='4.9.3881' singleton='false'>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='milter.executable.win32.win32.x86_64.bm-milter' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          setLauncherName(name:bm-milter)
        </instruction>
        <instruction key='unconfigure'>
          setLauncherName()
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='milter.executable.win32.win32.x86_64' version='4.9.3881'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='milter.executable.win32.win32.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.executable' version='4.9.3881'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.launcher.win32.win32.x86_64' range='0.0.0'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
        </filter>
      </required>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
    </filter>
    <artifacts size='1'>
      <artifact classifier='binary' id='milter.executable.win32.win32.x86_64' version='4.9.3881'/>
    </artifacts>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
  </unit>
  <unit id='milter.executable.cocoa.macosx.x86_64.bm-milter' version='4.9.3881' singleton='false'>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='milter.executable.cocoa.macosx.x86_64.bm-milter' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          setLauncherName(name:bm-milter)
        </instruction>
        <instruction key='unconfigure'>
          setLauncherName()
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.config.win32.win32.x86_64' version='4.9.3881' singleton='false'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.config.win32.win32.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.config' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          setProgramProperty(propName:eclipse.product,propValue:net.bluemind.milter.milter);setProgramProperty(propName:osgi.noShutdown,propValue:true);setProgramProperty(propName:eclipse.application,propValue:net.bluemind.milter.milter);setProgramProperty(propName:osgi.configuration.area,propValue:/var/lib/bm-milter/);
        </instruction>
        <instruction key='unconfigure'>
          setProgramProperty(propName:eclipse.product,propValue:);setProgramProperty(propName:osgi.noShutdown,propValue:);setProgramProperty(propName:eclipse.application,propValue:);setProgramProperty(propName:osgi.configuration.area,propValue:);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.ini.gtk.linux.x86_64' version='4.9.3881' singleton='false'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.ini.gtk.linux.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.ini' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          addJvmArg(jvmArg:-Dosgi.noShutdown=true);addJvmArg(jvmArg:-Djava.security.egd=file${#58}/dev/urandom);addJvmArg(jvmArg:-Duser.timezone=GMT);addJvmArg(jvmArg:-Djava.awt.headless=true);addJvmArg(jvmArg:-Dnet.bluemind.property.product=bm-milter);
        </instruction>
        <instruction key='unconfigure'>
          removeJvmArg(jvmArg:-Dosgi.noShutdown=true);removeJvmArg(jvmArg:-Djava.security.egd=file${#58}/dev/urandom);removeJvmArg(jvmArg:-Duser.timezone=GMT);removeJvmArg(jvmArg:-Djava.awt.headless=true);removeJvmArg(jvmArg:-Dnet.bluemind.property.product=bm-milter);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingorg.eclipse.equinox.launcher' version='1.3.201.v20161025-1711' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.equinox.launcher' range='1.3.201.v20161025-1711'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingorg.eclipse.equinox.launcher' version='1.3.201.v20161025-1711'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='tooling' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.equinox.launcher' range='1.3.201.v20161025-1711'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          addProgramArg(programArg:-startup);addProgramArg(programArg:@artifact);
        </instruction>
        <instruction key='unconfigure'>
          removeProgramArg(programArg:-startup);removeProgramArg(programArg:@artifact);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='milter.executable.gtk.linux.x86_64' version='4.9.3881'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='milter.executable.gtk.linux.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.executable' version='4.9.3881'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.launcher.gtk.linux.x86_64' range='0.0.0'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
        </filter>
      </required>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
    </filter>
    <artifacts size='1'>
      <artifact classifier='binary' id='milter.executable.gtk.linux.x86_64' version='4.9.3881'/>
    </artifacts>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
  </unit>
  <unit id='toolingwin32.win32.x86_64org.eclipse.core.runtime' version='4.9.3881' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='3.12.0.v20160606-1342'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingwin32.win32.x86_64org.eclipse.core.runtime' version='4.9.3881'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='toolingwin32.win32.x86_64' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='3.12.0.v20160606-1342'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          setStartLevel(startLevel:4);markStarted(started: true);
        </instruction>
        <instruction key='unconfigure'>
          setStartLevel(startLevel:-1);markStarted(started: false);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingorg.eclipse.equinox.launcher.cocoa.macosx.x86_64' version='1.1.401.v20161122-1740' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.equinox.launcher.cocoa.macosx.x86_64' range='1.1.401.v20161122-1740'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingorg.eclipse.equinox.launcher.cocoa.macosx.x86_64' version='1.1.401.v20161122-1740'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='tooling' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.equinox.launcher.cocoa.macosx.x86_64' range='1.1.401.v20161122-1740'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          addProgramArg(programArg:--launcher.library);addProgramArg(programArg:@artifact);
        </instruction>
        <instruction key='unconfigure'>
          removeProgramArg(programArg:--launcher.library);removeProgramArg(programArg:@artifact);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.config.gtk.linux.x86_64' version='4.9.3881' singleton='false'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.config.gtk.linux.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.config' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          setProgramProperty(propName:eclipse.product,propValue:net.bluemind.milter.milter);setProgramProperty(propName:osgi.noShutdown,propValue:true);setProgramProperty(propName:eclipse.application,propValue:net.bluemind.milter.milter);setProgramProperty(propName:osgi.configuration.area,propValue:/var/lib/bm-milter/);
        </instruction>
        <instruction key='unconfigure'>
          setProgramProperty(propName:eclipse.product,propValue:);setProgramProperty(propName:osgi.noShutdown,propValue:);setProgramProperty(propName:eclipse.application,propValue:);setProgramProperty(propName:osgi.configuration.area,propValue:);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.executable.gtk.linux.x86_64' version='4.9.3881' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.gtk.linux.x86_64' range='[4.9.3881,4.9.3881]'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.executable.gtk.linux.x86_64' version='4.9.3881'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.gtk.linux.x86_64' range='[4.9.3881,4.9.3881]'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='uninstall'>
          cleanupzip(source:@artifact, target:${installFolder});
        </instruction>
        <instruction key='install'>
          unzip(source:@artifact, target:${installFolder}); chmod(targetDir:${installFolder}, targetFile:bm-milter, permissions:755);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolinggtk.linux.x86_64org.eclipse.update.configurator' version='4.9.3881' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.update.configurator' range='3.3.400.v20160506-0750'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolinggtk.linux.x86_64org.eclipse.update.configurator' version='4.9.3881'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='toolinggtk.linux.x86_64' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.update.configurator' range='3.3.400.v20160506-0750'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          setProgramProperty(propName:org.eclipse.update.reconcile, propValue:false);
        </instruction>
        <instruction key='unconfigure'>
          setProgramProperty(propName:org.eclipse.update.reconcile, propValue:);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.ini.win32.win32.x86_64' version='4.9.3881' singleton='false'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.ini.win32.win32.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.ini' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          addJvmArg(jvmArg:-Dosgi.noShutdown=true);addJvmArg(jvmArg:-Djava.security.egd=file${#58}/dev/urandom);addJvmArg(jvmArg:-Duser.timezone=GMT);addJvmArg(jvmArg:-Djava.awt.headless=true);addJvmArg(jvmArg:-Dnet.bluemind.property.product=bm-milter);
        </instruction>
        <instruction key='unconfigure'>
          removeJvmArg(jvmArg:-Dosgi.noShutdown=true);removeJvmArg(jvmArg:-Djava.security.egd=file${#58}/dev/urandom);removeJvmArg(jvmArg:-Duser.timezone=GMT);removeJvmArg(jvmArg:-Djava.awt.headless=true);removeJvmArg(jvmArg:-Dnet.bluemind.property.product=bm-milter);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='milter' version='4.9.3881'>
    <update id='milter' range='0.0.0' severity='0'/>
    <properties size='3'>
      <property name='org.eclipse.equinox.p2.name' value='milter'/>
      <property name='org.eclipse.equinox.p2.type.product' value='true'/>
      <property name='org.eclipse.equinox.p2.type.group' value='true'/>
    </properties>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='milter' version='4.9.3881'/>
    </provides>
    <requires size='123'>
      <required namespace='org.eclipse.equinox.p2.iu' name='ch.qos.logback.classic' range='[1.2.10,1.2.10]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='javax.ws.rs' range='[2.0.1.v201504171603,2.0.1.v201504171603]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='tooling.org.eclipse.update.feature.default' range='[1.0.0,1.0.0]'>
        <filter>
          (org.eclipse.update.install.features=true)
        </filter>
      </required>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.context' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailmessage.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.rest.http' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.netflix.spectator.api' range='[1.0.14,1.0.14]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.lib.jackson' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.jsoup' range='[1.14.3,1.14.3]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.caches.registry' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.hornetq.client' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.fasterxml.jackson.module.jackson-module-afterburner' range='[2.13.4.bm2,2.13.4.bm2]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='sentry' range='[1.7.30.bm4,1.7.30.bm4]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailflow.rbe' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.calendar.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.lib.vertx' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.node.client' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailflow.common.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.core.runtime' range='[3.12.0.v20160606-1342,3.12.0.v20160606-1342]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.rest.common' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.node.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.sun.mail.javax.mail' range='[1.5.2,1.5.2]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.system.stateobserver' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.fasterxml.jackson.core.jackson-annotations' range='[2.13.4,2.13.4]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='javax.xml' range='[1.3.4.v201005080400,1.3.4.v201005080400]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.network.topology' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='javax.mail-api' range='[1.5.2,1.5.2]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.apache.xml.resolver' range='[1.2.0.v201005080400,1.2.0.v201005080400]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.asynchttpclient.async-http-client-netty-utils' range='[2.12.1.bm1,2.12.1.bm1]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.launcher' range='[1.3.201.v20161025-1711,1.3.201.v20161025-1711]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.application' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='javax.validation.api' range='[1.1.0.Final,1.1.0.Final]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.milter.srs' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.metrics.agent-api' range='[1.29.0,1.29.0]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.typesafe.netty.reactive-streams' range='[2.0.4.bm2,2.0.4.bm2]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mime4j.common' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.configuration' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.common' range='[3.8.0.v20160509-1230,3.8.0.v20160509-1230]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailshare.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.milter.metrics' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.hazelcast.client' range='[3.12.12,3.12.12]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.server.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='ch.qos.logback.core' range='[1.2.10,1.2.10]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='jcl.over.slf4j' range='[1.7.32,1.7.32]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.role.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.utils' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.app' range='[1.3.400.v20150715-1528,1.3.400.v20150715-1528]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.node.shared' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='tooling.source.default' range='[1.0.0,1.0.0]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.milter.action.eventforwarding' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.network.topology.consumer' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.github.ben-manes.caffeine' range='[2.9.3.bm1,2.9.3.bm1]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.common.cache.persistence' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.fasterxml.jackson.core.jackson-core' range='[2.13.4,2.13.4]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.google.guava' range='[30.1.1.bm1,30.1.1.bm1]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.java.dev.jna' range='[3.2.4,3.2.4]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.hsm.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailflow.rules' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.filehosting.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.sessions' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.user.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.addressbook.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.update.configurator' range='[3.3.400.v20160506-0750,3.3.400.v20160506-0750]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.config' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.system.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.milter' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.slf4j' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.apache.xerces' range='[2.9.0.v201101211617,2.9.0.v201101211617]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.osgi.compatibility.state' range='[1.0.200.v20160504-1419,1.0.200.v20160504-1419]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.milter.action.misc' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='log4j.over.slf4j' range='[1.7.32,1.7.32]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='io.vertx.core' range='[4.2.6.bm1,4.2.6.bm1]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.todolist.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.apache.james.apache-mime4j-dom' range='[0.7.3.bm22,0.7.3.bm22]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.sentry' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.apache.xml.serializer' range='[2.7.1.v201005080400,2.7.1.v201005080400]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.osgi' range='[3.11.3.v20170209-1843,3.11.3.v20170209-1843]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.task.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.registry' range='[3.6.100.v20160223-2218,3.6.100.v20160223-2218]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='jul.to.slf4j' range='[1.7.32,1.7.32]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.milter.action.signature' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.milter.action.journaling' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='slf4j.api' range='[1.7.32,1.7.32]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailflow.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.osgi.log' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.domain.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.apache.james.apache-mime4j-core' range='[0.7.3.bm22,0.7.3.bm22]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.reactivestreams.reactive-streams' range='[1.0.3,1.0.3]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.common.io' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.core.jobs' range='[3.8.0.v20160509-0411,3.8.0.v20160509-0411]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.lib.jutf7' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.tag.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.lib.jta' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='tooling.osgi.bundle.default' range='[1.0.0,1.0.0]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='io.netty' range='[4.1.77.bm2,4.1.77.bm2]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.systemd.notify' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.group.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.slf4j.configuration' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.core.contenttype' range='[3.5.100.v20160418-1621,3.5.100.v20160418-1621]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.directory.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.resource.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.eclipse.common' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.google.guava.failureaccess' range='[1.0.1,1.0.1]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.hazelcast' range='[3.12.12,3.12.12]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailbox.hook' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.fasterxml.jackson.core.jackson-databind' range='[2.13.4.2,2.13.4.2]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.sentry.settings' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.rest' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.container.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.common.reflect' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.metrics.registry' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.signature.commons' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.jilter' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailbox.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.asynchttpclient.async-http-client' range='[2.12.1.bm1,2.12.1.bm1]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.core.commons' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='io.vertx.web' range='[4.2.6.bm1,4.2.6.bm1]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.icalendar.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='com.beetstra.jutf7' range='[1.0.2.bm3,1.0.2.bm3]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.attachment.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='net.bluemind.mailbox.identity.api' range='[4.9.3881,4.9.3881]'/>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.preferences' range='[3.6.1.v20160815-1406,3.6.1.v20160815-1406]'/>
      <required namespace='osgi.ee' name='JavaSE' range='0.0.0'/>
    </requires>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
  </unit>
  <unit id='toolingorg.eclipse.equinox.launcher.win32.win32.x86_64' version='1.1.401.v20161122-1740' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.equinox.launcher.win32.win32.x86_64' range='1.1.401.v20161122-1740'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingorg.eclipse.equinox.launcher.win32.win32.x86_64' version='1.1.401.v20161122-1740'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='tooling' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.equinox.launcher.win32.win32.x86_64' range='1.1.401.v20161122-1740'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          addProgramArg(programArg:--launcher.library);addProgramArg(programArg:@artifact);
        </instruction>
        <instruction key='unconfigure'>
          removeProgramArg(programArg:--launcher.library);removeProgramArg(programArg:@artifact);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.config.cocoa.macosx.x86_64' version='4.9.3881' singleton='false'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.config.cocoa.macosx.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.config' version='4.9.3881'/>
    </provides>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='configure'>
          setProgramProperty(propName:eclipse.product,propValue:net.bluemind.milter.milter);setProgramProperty(propName:osgi.noShutdown,propValue:true);setProgramProperty(propName:eclipse.application,propValue:net.bluemind.milter.milter);setProgramProperty(propName:osgi.configuration.area,propValue:/var/lib/bm-milter/);
        </instruction>
        <instruction key='unconfigure'>
          setProgramProperty(propName:eclipse.product,propValue:);setProgramProperty(propName:osgi.noShutdown,propValue:);setProgramProperty(propName:eclipse.application,propValue:);setProgramProperty(propName:osgi.configuration.area,propValue:);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.executable.cocoa.macosx.x86_64' version='4.9.3881' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.cocoa.macosx.x86_64' range='[4.9.3881,4.9.3881]'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.executable.cocoa.macosx.x86_64' version='4.9.3881'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.cocoa.macosx.x86_64' range='[4.9.3881,4.9.3881]'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='uninstall'>
          cleanupzip(source:@artifact, target:${installFolder}/../);
        </instruction>
        <instruction key='install'>
          unzip(source:@artifact, target:${installFolder}/../); chmod(targetDir:${installFolder}/../MacOS/, targetFile:bm-milter, permissions:755);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingorg.eclipse.equinox.launcher.gtk.linux.x86_64' version='1.1.401.v20161122-1740' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.equinox.launcher.gtk.linux.x86_64' range='1.1.401.v20161122-1740'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingorg.eclipse.equinox.launcher.gtk.linux.x86_64' version='1.1.401.v20161122-1740'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='tooling' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.equinox.launcher.gtk.linux.x86_64' range='1.1.401.v20161122-1740'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          addProgramArg(programArg:--launcher.library);addProgramArg(programArg:@artifact);
        </instruction>
        <instruction key='unconfigure'>
          removeProgramArg(programArg:--launcher.library);removeProgramArg(programArg:@artifact);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='milter.executable.cocoa.macosx.x86_64' version='4.9.3881'>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='milter.executable.cocoa.macosx.x86_64' version='4.9.3881'/>
      <provided namespace='toolingmilter' name='milter.executable' version='4.9.3881'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.launcher.cocoa.macosx.x86_64' range='0.0.0'>
        <filter>
          (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
        </filter>
      </required>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
    </filter>
    <artifacts size='1'>
      <artifact classifier='binary' id='milter.executable.cocoa.macosx.x86_64' version='4.9.3881'/>
    </artifacts>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
  </unit>
  <unit id='toolingcocoa.macosx.x86_64org.eclipse.update.configurator' version='4.9.3881' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.update.configurator' range='3.3.400.v20160506-0750'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingcocoa.macosx.x86_64org.eclipse.update.configurator' version='4.9.3881'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='toolingcocoa.macosx.x86_64' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.update.configurator' range='3.3.400.v20160506-0750'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          setProgramProperty(propName:org.eclipse.update.reconcile, propValue:false);
        </instruction>
        <instruction key='unconfigure'>
          setProgramProperty(propName:org.eclipse.update.reconcile, propValue:);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingmilter.executable.win32.win32.x86_64' version='4.9.3881' singleton='false'>
    <hostRequirements size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.win32.win32.x86_64' range='[4.9.3881,4.9.3881]'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='1'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingmilter.executable.win32.win32.x86_64' version='4.9.3881'/>
    </provides>
    <requires size='1'>
      <required namespace='org.eclipse.equinox.p2.iu' name='milter.executable.win32.win32.x86_64' range='[4.9.3881,4.9.3881]'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
    </filter>
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
    <touchpointData size='1'>
      <instructions size='2'>
        <instruction key='uninstall'>
          cleanupzip(source:@artifact, target:${installFolder});
        </instruction>
        <instruction key='install'>
          unzip(source:@artifact, target:${installFolder});
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingcocoa.macosx.x86_64org.eclipse.core.runtime' version='4.9.3881' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='3.12.0.v20160606-1342'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingcocoa.macosx.x86_64org.eclipse.core.runtime' version='4.9.3881'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='toolingcocoa.macosx.x86_64' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='3.12.0.v20160606-1342'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=macosx)(osgi.ws=cocoa))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          setStartLevel(startLevel:4);markStarted(started: true);
        </instruction>
        <instruction key='unconfigure'>
          setStartLevel(startLevel:-1);markStarted(started: false);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolingwin32.win32.x86_64org.eclipse.update.configurator' version='4.9.3881' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.update.configurator' range='3.3.400.v20160506-0750'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolingwin32.win32.x86_64org.eclipse.update.configurator' version='4.9.3881'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='toolingwin32.win32.x86_64' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.update.configurator' range='3.3.400.v20160506-0750'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=win32)(osgi.ws=win32))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          setProgramProperty(propName:org.eclipse.update.reconcile, propValue:false);
        </instruction>
        <instruction key='unconfigure'>
          setProgramProperty(propName:org.eclipse.update.reconcile, propValue:);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
  <unit id='toolinggtk.linux.x86_64org.eclipse.core.runtime' version='4.9.3881' singleton='false'>
    <hostRequirements size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='3.12.0.v20160606-1342'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </hostRequirements>
    <properties size='1'>
      <property name='org.eclipse.equinox.p2.type.fragment' value='true'/>
    </properties>
    <provides size='2'>
      <provided namespace='org.eclipse.equinox.p2.iu' name='toolinggtk.linux.x86_64org.eclipse.core.runtime' version='4.9.3881'/>
      <provided namespace='org.eclipse.equinox.p2.flavor' name='toolinggtk.linux.x86_64' version='1.0.0'/>
    </provides>
    <requires size='2'>
      <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='3.12.0.v20160606-1342'/>
      <required namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' range='[1.0.0,2.0.0)' greedy='false'/>
    </requires>
    <filter>
      (&amp;(osgi.arch=x86_64)(osgi.os=linux)(osgi.ws=gtk))
    </filter>
    <touchpoint id='null' version='0.0.0'/>
    <touchpointData size='1'>
      <instructions size='4'>
        <instruction key='uninstall'>
          uninstallBundle(bundle:${artifact})
        </instruction>
        <instruction key='install'>
          installBundle(bundle:${artifact})
        </instruction>
        <instruction key='configure'>
          setStartLevel(startLevel:4);markStarted(started: true);
        </instruction>
        <instruction key='unconfigure'>
          setStartLevel(startLevel:-1);markStarted(started: false);
        </instruction>
      </instructions>
    </touchpointData>
  </unit>
</units>
