diff --git a/CHANGES.txt b/CHANGES.txt
index 5be87ef42c97c15a4f2ff5f376ccddcaee62fc6d..7392bdb68f03e6141577f475e72f943ab0534683 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,10 +1,15 @@
 Changes
 =======
 
-0.58 (Unreleased)
+0.59 (Unreleased)
 -----------------
 
 
+0.58 (2012-07-06)
+-----------------
+
+  * Agent rewrite. [Vincent Pelletier]
+
 0.57 (2012-06-22)
 -----------------
 
diff --git a/component/cloud9/buildout.cfg b/component/cloud9/buildout.cfg
index 95258281e44e0968b0e6dc0514d0f32e7fc1b091..746e21bc92cd048fef821d0f0df3daf7a7baae82 100644
--- a/component/cloud9/buildout.cfg
+++ b/component/cloud9/buildout.cfg
@@ -28,13 +28,13 @@ environment =
 # NODE_PATH=${:destination}/node_modules ${nodejs:node_location} ${:cloud9_js_location} 
 recipe = plone.recipe.command
 stop-on-error = true
-commit = 4bde3206ac0dc1e5736cb18a42851e203a6cc68f
+commit = ab689c5d3cc29d02d788506c0f1b2ab0742a0f05
 repository = https://github.com/ajaxorg/cloud9.git
 location = ${buildout:parts-directory}/${:_buildout_section_name_}
 git-binary = ${git:location}/bin/git
 npm-binary = ${nodejs:location}/bin/node ${nodejs:location}/bin/npm
-environment = export GIT_SSL_NO_VERIFY=true; export PATH=${nodejs:location}/bin:$PATH; export LDFLAGS=-L${libxml2:location}/lib;
-command = ${:environment} (${:git-binary} clone --quiet ${:repository} ${:location} && cd ${:location} && ${:git-binary} reset --hard ${:commit} && ${node-sm:location}/node_modules/.bin/sm install && ${:npm-binary} install) || (rm -fr ${:location}; exit 1)
+environment = export GIT_SSL_NO_VERIFY=true; export PATH=${nodejs:location}/bin:${node-sm:location}/node_modules/sm/bin/:$PATH; export LDFLAGS=-L${libxml2:location}/lib; export HOME=${:location};
+command = ${:environment} (${:git-binary} clone --quiet ${:repository} ${:location} && cd ${:location} && ${:git-binary} reset --hard ${:commit} && ${node-sm:location}/node_modules/.bin/sm install) || (rm -fr ${:location}; exit 1)
 update-command =
 
 [cloud9-npm]
@@ -50,4 +50,4 @@ packages =
   cloud9==0.7
 # Specify environment jsDAV (dependency of cloud9) needs libxml2
 environment = 
-  LDFLAGS=-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib
+  LDFLAGS=-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib
\ No newline at end of file
diff --git a/component/libreoffice-bin/buildout.cfg b/component/libreoffice-bin/buildout.cfg
index b624367700e7ea18372417387901631a9b215102..c3b2a558df8dcbdc6604635c976c1d81023fbed9 100644
--- a/component/libreoffice-bin/buildout.cfg
+++ b/component/libreoffice-bin/buildout.cfg
@@ -12,12 +12,12 @@ find-links =
 [libreoffice-bin]
 recipe = slapos.recipe.build
 # here, two %s are used, first one is for directory name (eg. x86_64), and second one is for filename (eg. x86-64).
-version = 3.5.4
+version = 3.5.5
 url = http://download.documentfoundation.org/libreoffice/stable/${:version}/rpm/%s/LibO_${:version}_Linux_%s_install-rpm_en-US.tar.gz
 
 # supported architectures md5sums
-md5sum_x86 = f0a09171389d54ef96458a3ec67c0201
-md5sum_x86-64 = 72662a587e98eb34d359455184bec797
+md5sum_x86 = 88434a91af56a751fad2e737c2ad6bba
+md5sum_x86-64 = a8c2c35af75807c3ed6c8d04fe6c6419
 
 # where office code can be found?
 officedir = libreoffice3.5
diff --git a/component/nodejs/buildout.cfg b/component/nodejs/buildout.cfg
index c19d668f81843504c37c75183ff0b55c954a74d9..81dddee7b86b9b760b905c5ff8354b759c7e49b3 100644
--- a/component/nodejs/buildout.cfg
+++ b/component/nodejs/buildout.cfg
@@ -18,6 +18,7 @@ configure-options =
   --openssl-includes=${openssl:location}/include
   --openssl-libpath=${openssl:location}/lib
 environment =
+  HOME=${buildout:parts-directory}/${:_buildout_section_name_}
   PATH=${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s
   PKG_CONFIG_PATH=${openssl:location}/lib/pkgconfig/
   CPPFLAGS=-I${zlib:location}/include
@@ -47,4 +48,4 @@ origin = https://github.com/isaacs/npm.git
 git-bin = ${git:location}/bin/git
 node-bin = ${nodejs-0.4:location}/bin/node
 command = (GIT_SSL_NO_VERIFY=true ${:git-bin} clone --quiet ${:origin} ${:location} && cd ${:location} && ${:git-bin} reset --hard ${:commit} && ${:location}/configure --prefix=${:location} && GIT_SSL_NO_VERIFY=true ${:git-bin} submodule update --init --recursive && ${:node-bin} cli.js install npm@1.0.106 -g -f) || (rm -fr ${:location}; exit 1)
-update-command =
+update-command =
\ No newline at end of file
diff --git a/component/slapos/buildout.cfg b/component/slapos/buildout.cfg
index 94e3573cfad6e0c6403fc60b65a12f49f20a7d61..12c37dbc14de0ca733b83159fb479f9f75fc53a0 100644
--- a/component/slapos/buildout.cfg
+++ b/component/slapos/buildout.cfg
@@ -112,47 +112,51 @@ scripts =
   slapproxy = slapos.proxy:main
 
 [versions]
-zc.buildout = 1.6.0-dev-SlapOS-004
+zc.buildout = 1.6.0-dev-SlapOS-006
+hexagonit.recipe.download = 1.5.1-dev-slapos-002
 
 # Generated by buildout-versions
 Jinja2 = 2.6
+Pygments = 1.5
 Werkzeug = 0.8.3
 buildout-versions = 1.7
 collective.recipe.template = 1.9
-hexagonit.recipe.cmmi = 1.5.0
+docutils = 0.9.1
+hexagonit.recipe.cmmi = 1.6
+ipython = 0.13
 lxml = 2.3.4
 meld3 = 0.6.8
-netaddr = 0.7.6
-slapos.core = 0.25
+netaddr = 0.7.7
+slapos.core = 0.26.1
 slapos.libnetworkcache = 0.12
 xml-marshaller = 0.9.7
 z3c.recipe.scripts = 1.0.1
 zc.recipe.egg = 1.3.2
 
 # Required by:
-# slapos.core==0.25
-Flask = 0.8
+# slapos.core==0.26.1
+Flask = 0.9
 
 # Required by:
-# hexagonit.recipe.cmmi==1.5.0
-hexagonit.recipe.download = 1.5.0
+# netaddr==0.7.7
+Sphinx = 1.1.3
 
 # Required by:
-# slapos.core==0.25
+# slapos.core==0.26.1
 netifaces = 0.8
 
 # Required by:
-# slapos.core==0.25
+# slapos.core==0.26.1
 # slapos.libnetworkcache==0.12
 # supervisor==3.0a12
-# zc.buildout==1.6.0-dev-SlapOS-004
-# zope.interface==3.8.0
+# zc.buildout==1.6.0-dev-SlapOS-006
+# zope.interface==4.0.1
 setuptools = 0.6c12dev-r88846
 
 # Required by:
-# slapos.core==0.25
+# slapos.core==0.26.1
 supervisor = 3.0a12
 
 # Required by:
-# slapos.core==0.25
-zope.interface = 3.8.0
+# slapos.core==0.26.1
+zope.interface = 4.0.1
diff --git a/setup.py b/setup.py
index 9e85e7ccde5f1eee6be584988c1d4b1c807ed18b..1cf964d9f13ebafe69d9f5b1e97a02b3acd407fb 100755
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
 import glob
 import os
 
-version = '0.58-dev'
+version = '0.59-dev'
 name = 'slapos.cookbook'
 long_description = open("README.txt").read() + "\n" + \
     open("CHANGES.txt").read() + "\n"
diff --git a/slapos/recipe/agent/__init__.py b/slapos/recipe/agent/__init__.py
index 1f1f82947c595f4b36911d25b00dd90535da4745..d9639a84d4455d9caea9c761252e2a0bc8da6b9d 100644
--- a/slapos/recipe/agent/__init__.py
+++ b/slapos/recipe/agent/__init__.py
@@ -34,76 +34,45 @@ from slapos.recipe.librecipe import GenericSlapRecipe
 import json
 import ConfigParser
 
+# XXX: BaseSlapRecipe and GenericSlapRecipe are deprecated, use
+# GenericBaseRecipe and move partition parameter fetching to software release.
 class Recipe(BaseSlapRecipe, GenericSlapRecipe):
   def install(self):
     self.path_list = []
-    self.crond = self.installCrond()
+    crond = self.installCrond()
 
     slap = slapos.slap.slap()
-    computer_id = self.computer_id
-    computer_partition_id = self.computer_partition_id
-    server_url = self.server_url
-    key_file = self.key_file
-    cert_file = self.cert_file
-    slap.initializeConnection(server_url, key_file, cert_file)
-    self.computer_partition = slap.registerComputerPartition(
-        computer_id, computer_partition_id)
-    self.parameter_dict = self.computer_partition.getInstanceParameterDict()
+    slap.initializeConnection(self.server_url, self.key_file, self.cert_file)
+    parameter_dict = slap.registerComputerPartition(
+      self.computer_id,
+      self.computer_partition_id,
+    ).getInstanceParameterDict()
 
+    # XXX: should probably expect one more (SR-originating) parameter instead
+    # of using self.work_directory .
     configuration_path = os.path.join(self.work_directory, "agent.cfg")
-    configuration = ConfigParser.SafeConfigParser()
-    configuration.add_section("agent")
-    configuration.set("agent", "portal_url", self.parameter_dict["portal_url"])
-    configuration.set("agent", "master_url", self.parameter_dict["master_url"])
-    configuration.set("agent", "report_url", self.parameter_dict["report_url"])
-    key_filepath = os.path.join(self.work_directory, "key")
-    key_file = open(key_filepath, "w")
-    key_file.write(self.parameter_dict["key"])
-    key_file.close()
-    configuration.set("agent", "key_file", key_filepath)
-    cert_filepath = os.path.join(self.work_directory, "cert")
-    cert_file = open(cert_filepath, "w")
-    cert_file.write(self.parameter_dict["cert"])
-    cert_file.close()
-    configuration.set("agent", "cert_file", cert_filepath)
-    configuration.set("agent", "maximum_software_installation_duration",
-        self.parameter_dict["maximum_software_installation_duration"])
-    configuration.set("agent", "software_live_duration",
-        self.parameter_dict["software_live_duration"])
-    configuration.set("agent", "computer_list",
-        self.parameter_dict["computer_list"])
-    configuration.set("agent", "software_list",
-        self.parameter_dict["software_list"])
-    configuration.set("agent", "log_directory", self.options["log_directory"])
-    configuration.set("agent", "state_file", self.options["state_file"])
-    state = open(self.options["state_file"], "w")
-    state.write('')
-    state.close()
-    configuration.add_section("software_uri")
-    software_list = json.loads(self.parameter_dict["software_list"])
-    for software in software_list:
-      configuration.set("software_uri", software, self.parameter_dict[software])
+    with open(configuration_path, "w") as configuration:
+      configuration.write(parameter_dict["configuration"])
+    agent_crond_path = os.path.join(crond, "agent")
+    with open(agent_crond_path, "w") as agent_crond:
+      agent_crond.write("*/5 * * * * %s -S %s --pidfile=%s --log=%s "
+        "%s 2>&1 > /dev/null\n" % (
+          self.options["python_binary"],
+          self.options["agent_binary"],
+          self.options["pidfile"],
+          self.options["log"],
+          configuration_path,
+      ))
 
-    configuration.write(open(configuration_path, "w"))
-
-    agent_crond_path = os.path.join(self.crond, "agent")
-    agent_crond = open(agent_crond_path, "w")
-    agent_crond.write("*/3 * * * * %s -S %s" % \
-      (self.options["python_binary"],
-        "%s --pidfile=%s %s" % \
-          (self.options["agent_binary"], self.options["pidfile"],
-            configuration_path)))
-    agent_crond.close()
-
-    return self.path_list + [configuration_path, key_filepath, cert_filepath, agent_crond_path]
+    return self.path_list + [configuration_path, agent_crond_path]
 
   def installCrond(self):
-    _, self.ws = self.egg.working_set()
+    _, ws = self.egg.working_set()
     timestamps = self.createDataDirectory('cronstamps')
     cron_output = os.path.join(self.log_directory, 'cron-output')
     self._createDirectory(cron_output)
     catcher = zc.buildout.easy_install.scripts([('catchcron',
-      __name__ + '.catdatefile', 'catdatefile')], self.ws, sys.executable,
+      __name__ + '.catdatefile', 'catdatefile')], ws, sys.executable,
       self.bin_directory, arguments=[cron_output])[0]
     self.path_list.append(catcher)
     cron_d = os.path.join(self.etc_directory, 'cron.d')
@@ -111,7 +80,7 @@ class Recipe(BaseSlapRecipe, GenericSlapRecipe):
     self._createDirectory(cron_d)
     self._createDirectory(crontabs)
     wrapper = zc.buildout.easy_install.scripts([('crond',
-      'slapos.recipe.librecipe.execute', 'execute')], self.ws, sys.executable,
+      'slapos.recipe.librecipe.execute', 'execute')], ws, sys.executable,
       self.wrapper_directory, arguments=[
         self.options['dcrond_binary'].strip(), '-s', cron_d, '-c', crontabs,
         '-t', timestamps, '-f', '-l', '5', '-M', catcher]
diff --git a/slapos/recipe/erp5_bootstrap/template/erp5_bootstrap.in b/slapos/recipe/erp5_bootstrap/template/erp5_bootstrap.in
index c3087f8dc581a2edc4e5f3f1d9c04a6b23c35b43..6627807adc9ecaa605a26a3822bd557162abd303 100644
--- a/slapos/recipe/erp5_bootstrap/template/erp5_bootstrap.in
+++ b/slapos/recipe/erp5_bootstrap/template/erp5_bootstrap.in
@@ -22,6 +22,9 @@ result = zope_connection.getresponse()
 
 if result.status == 204: # and (result.read() == "False"):
 
+  # Use a new connection
+  zope_connection = httplib.HTTPConnection(host)
+
   # Create the expected ERP5 instance
   zope_connection.request(
     'POST', '/manage_addProduct/ERP5/manage_addERP5Site',
@@ -32,4 +35,11 @@ if result.status == 204: # and (result.read() == "False"):
       'cmf_activity_sql_connection_string': mysql_url,
     }),
     headers=header_dict)
+  # Wait for the erp5 response, to prevent multiple requests
+  # been done by the same script.
+  result = zope_connection.getresponse()
 
+  # Read result make sure the site really finished to 
+  #created the ERP5 site.
+  result.read()
+  print "ERP5 site created."
diff --git a/slapos/recipe/erp5_update/__init__.py b/slapos/recipe/erp5_update/__init__.py
index 1f702b8904a0d1f51d1042493696f877f87a4183..a1d474175c19973f136e0ada375a1454c6152cc3 100644
--- a/slapos/recipe/erp5_update/__init__.py
+++ b/slapos/recipe/erp5_update/__init__.py
@@ -29,6 +29,7 @@ from slapos.recipe.librecipe import GenericSlapRecipe
 
 class Recipe(GenericSlapRecipe):
   def _install(self):
+    self.logger.warn('DEPRECATED: Please update your configuration to use erp5.promise and erp5.bootstrap instead.')
     conversion_server = None
     if 'cloudooo-url' in self.options and self.options['cloudooo-url']:
       parsed = urlparse.urlparse(self.options['cloudooo-url'])
diff --git a/software/agent/instance.cfg b/software/agent/instance.cfg
index 15ef5a0e46746f2dab8b5dce4aadf934555211f5..f949ed97ea1191442a16847e8a59284ac168ae86 100644
--- a/software/agent/instance.cfg
+++ b/software/agent/instance.cfg
@@ -1,6 +1,5 @@
 [buildout]
 parts =
-  rootdirectory
   instance
 
 eggs-directory = ${buildout:eggs-directory}
@@ -9,17 +8,16 @@ develop-eggs-directory = ${buildout:develop-eggs-directory}
 [instance]
 recipe = ${instance-recipe:egg}:${instance-recipe:module}
 agent_binary = ${buildout:directory}/bin/agent
+report_start = ${buildout:directory}/bin/report_start
+report_stop = ${buildout:directory}/bin/report_stop
 dcrond_binary = ${dcron:location}/sbin/crond
 python_binary = ${python2.7:location}/bin/python
-pidfile = $${buildout:directory}/agent.pid
-log_directory = $${buildout:directory}/var/log
-state_file = $${buildout:directory}/state.cfg
+pidfile = $${rootdirectory:run}/agent.pid
+log = $${rootdirectory:agentlog}/agent.log
 
 [rootdirectory]
 recipe = slapos.cookbook:mkdirectory
-etc = $${buildout:directory}/etc/
-run = $${rootdirectory:etc}/run/
-var = $${buildout:directory}/var/
-log = $${rootdirectory:var}/log/
-srv = $${buildout:directory}/srv/
-bin = $${buildout:directory}/bin/
+run = $${buildout:directory}/etc/run
+agentlog = $${buildout:directory}/var/log/agent
+srv = $${buildout:directory}/srv
+bin = $${buildout:directory}/bin
diff --git a/software/agent/software.cfg b/software/agent/software.cfg
index 68f699448a74f8bd5718192235a4ba48e4d1ddfb..da544a183b5d704a35ad5213ff8a72e05e770d16 100644
--- a/software/agent/software.cfg
+++ b/software/agent/software.cfg
@@ -1,9 +1,4 @@
 [buildout]
-
-# develop =
-#   /opt/slapdev
-#   /opt/slapos.toolbox
-
 extends =
   ../../component/dcron/buildout.cfg
   ../../component/python-2.7/buildout.cfg
@@ -31,7 +26,7 @@ eggs = ${instance-recipe:egg}
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance.cfg
 output = ${buildout:directory}/template.cfg
-md5sum = 2e1a7a68b18de68b163e98a5f92cc776
+md5sum = c7cb98594f394d05baedabe424643f6f
 mode = 0644
 
 [eggs]
@@ -41,6 +36,7 @@ eggs =
   ${lxml-python:egg}
   slapos.cookbook
   slapos.toolbox
+  erp5.util
 
 [lxml-python]
 python = python2.7
@@ -53,7 +49,7 @@ eggs =
   ${lxml-python:egg}
   slapos.core
   slapos.cookbook
-  slapos.toolbox
+  slapos.toolbox[agent]
 
 [networkcache]
 # signature certificates of the following uploaders.
diff --git a/software/cloudooo/software.cfg b/software/cloudooo/software.cfg
index 078909aa8258408447a6ecb1ebceee7b414d1df2..781b3a7eef30b3bf64c111fbb6ed07e4eeda6d7e 100755
--- a/software/cloudooo/software.cfg
+++ b/software/cloudooo/software.cfg
@@ -101,11 +101,81 @@ url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
 md5sum = b41e6607cd619648babac4c99ca87202
 mode = 640
 
+
 [networkcache]
 # signature certificates of the following uploaders.
+#   Romain Courteaud
+#   Sebastien Robin
+#   Kazuhiko Shiozaki
+#   Cedric de Saint Martin
+#   Yingjie Xu
 #   Gabriel Monnerat
-#   Rafael Monnerat
 signature-certificate-list =
+  -----BEGIN CERTIFICATE-----
+  MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE
+  CBMQRGVmYXVsdCBQcm92aW5jZTEPMA0GA1UEChMGTmV4ZWRpMB4XDTExMDkxNTA5
+  MDAwMloXDTEyMDkxNTA5MDAwMlowOTELMAkGA1UEBhMCRlIxGTAXBgNVBAgTEERl
+  ZmF1bHQgUHJvdmluY2UxDzANBgNVBAoTBk5leGVkaTCBnzANBgkqhkiG9w0BAQEF
+  AAOBjQAwgYkCgYEApYZv6OstoqNzxG1KI6iE5U4Ts2Xx9lgLeUGAMyfJLyMmRLhw
+  boKOyJ9Xke4dncoBAyNPokUR6iWOcnPHtMvNOsBFZ2f7VA28em3+E1JRYdeNUEtX
+  Z0s3HjcouaNAnPfjFTXHYj4um1wOw2cURSPuU5dpzKBbV+/QCb5DLheynisCAwEA
+  ATANBgkqhkiG9w0BAQsFAAOBgQBCZLbTVdrw3RZlVVMFezSHrhBYKAukTwZrNmJX
+  mHqi2tN8tNo6FX+wmxUUAf3e8R2Ymbdbn2bfbPpcKQ2fG7PuKGvhwMG3BlF9paEC
+  q7jdfWO18Zp/BG7tagz0jmmC4y/8akzHsVlruo2+2du2freE8dK746uoMlXlP93g
+  QUUGLQ==
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB8jCCAVugAwIBAgIJAPu2zchZ2BxoMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNV
+  BAMMB3RzeGRldjMwHhcNMTExMDE0MTIxNjIzWhcNMTIxMDEzMTIxNjIzWjASMRAw
+  DgYDVQQDDAd0c3hkZXYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrPbh+
+  YGmo6mWmhVb1vTqX0BbeU0jCTB8TK3i6ep3tzSw2rkUGSx3niXn9LNTFNcIn3MZN
+  XHqbb4AS2Zxyk/2tr3939qqOrS4YRCtXBwTCuFY6r+a7pZsjiTNddPsEhuj4lEnR
+  L8Ax5mmzoi9nE+hiPSwqjRwWRU1+182rzXmN4QIDAQABo1AwTjAdBgNVHQ4EFgQU
+  /4XXREzqBbBNJvX5gU8tLWxZaeQwHwYDVR0jBBgwFoAU/4XXREzqBbBNJvX5gU8t
+  LWxZaeQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQA07q/rKoE7fAda
+  FED57/SR00OvY9wLlFEF2QJ5OLu+O33YUXDDbGpfUSF9R8l0g9dix1JbWK9nQ6Yd
+  R/KCo6D0sw0ZgeQv1aUXbl/xJ9k4jlTxmWbPeiiPZEqU1W9wN5lkGuLxV4CEGTKU
+  hJA/yXa1wbwIPGvX3tVKdOEWPRXZLg==
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB7jCCAVegAwIBAgIJAJWA0jQ4o9DGMA0GCSqGSIb3DQEBBQUAMA8xDTALBgNV
+  BAMMBHg2MXMwIBcNMTExMTI0MTAyNDQzWhgPMjExMTEwMzExMDI0NDNaMA8xDTAL
+  BgNVBAMMBHg2MXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANdJNiFsRlkH
+  vq2kHP2zdxEyzPAWZH3CQ3Myb3F8hERXTIFSUqntPXDKXDb7Y/laqjMXdj+vptKk
+  3Q36J+8VnJbSwjGwmEG6tym9qMSGIPPNw1JXY1R29eF3o4aj21o7DHAkhuNc5Tso
+  67fUSKgvyVnyH4G6ShQUAtghPaAwS0KvAgMBAAGjUDBOMB0GA1UdDgQWBBSjxFUE
+  RfnTvABRLAa34Ytkhz5vPzAfBgNVHSMEGDAWgBSjxFUERfnTvABRLAa34Ytkhz5v
+  PzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAFLDS7zNhlrQYSQO5KIj
+  z2RJe3fj4rLPklo3TmP5KLvendG+LErE2cbKPqnhQ2oVoj6u9tWVwo/g03PMrrnL
+  KrDm39slYD/1KoE5kB4l/p6KVOdeJ4I6xcgu9rnkqqHzDwI4v7e8/D3WZbpiFUsY
+  vaZhjNYKWQf79l6zXfOvphzJ
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAO4V/jiMoICoMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
+  BAMMCENPTVAtMjMyMCAXDTEyMDIxNjExMTAyM1oYDzIxMTIwMTIzMTExMDIzWjAT
+  MREwDwYDVQQDDAhDT01QLTIzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  wi/3Z8W9pUiegUXIk/AiFDQ0UJ4JFAwjqr+HSRUirlUsHHT+8DzH/hfcTDX1I5BB
+  D1ADk+ydXjMm3OZrQcXjn29OUfM5C+g+oqeMnYQImN0DDQIOcUyr7AJc4xhvuXQ1
+  P2pJ5NOd3tbd0kexETa1LVhR6EgBC25LyRBRae76qosCAwEAAaNQME4wHQYDVR0O
+  BBYEFMDmW9aFy1sKTfCpcRkYnP6zUd1cMB8GA1UdIwQYMBaAFMDmW9aFy1sKTfCp
+  cRkYnP6zUd1cMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAskbFizHr
+  b6d3iIyN+wffxz/V9epbKIZVEGJd/6LrTdLiUfJPec7FaxVCWNyKBlCpINBM7cEV
+  Gn9t8mdVQflNqOlAMkOlUv1ZugCt9rXYQOV7rrEYJBWirn43BOMn9Flp2nibblby
+  If1a2ZoqHRxoNo2yTmm7TSYRORWVS+vvfjY=
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAIlBksrZVkK8MA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
+  BAMMCENPTVAtMzU3MCAXDTEyMDEyNjEwNTUyOFoYDzIxMTIwMTAyMTA1NTI4WjAT
+  MREwDwYDVQQDDAhDT01QLTM1NzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  ts+iGUwi44vtIfwXR8DCnLtHV4ydl0YTK2joJflj0/Ws7mz5BYkxIU4fea/6+VF3
+  i11nwBgYgxQyjNztgc9u9O71k1W5tU95yO7U7bFdYd5uxYA9/22fjObaTQoC4Nc9
+  mTu6r/VHyJ1yRsunBZXvnk/XaKp7gGE9vNEyJvPn2bkCAwEAAaNQME4wHQYDVR0O
+  BBYEFKuGIYu8+6aEkTVg62BRYaD11PILMB8GA1UdIwQYMBaAFKuGIYu8+6aEkTVg
+  62BRYaD11PILMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAMoTRpBxK
+  YLEZJbofF7gSrRIcrlUJYXfTfw1QUBOKkGFFDsiJpEg4y5pUk1s5Jq9K3SDzNq/W
+  it1oYjOhuGg3al8OOeKFrU6nvNTF1BAvJCl0tr3POai5yXyN5jlK/zPfypmQYxE+
+  TaqQSGBJPVXYt6lrq/PRD9ciZgKLOwEqK8w=
+  -----END CERTIFICATE-----
   -----BEGIN CERTIFICATE-----
   MIIB9jCCAV+gAwIBAgIJAPHoWu90gbsgMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
   BAMMCXZpZmlibm9kZTAeFw0xMjAzMTkyMzIwNTVaFw0xMzAzMTkyMzIwNTVaMBQx
@@ -119,20 +189,3 @@ signature-certificate-list =
   Yme/bhX0g51BmI6gjKJo5DoPtiXk/Y9lxwD3p7PWi+RhN+AZQ5rpo8UfwnnN059n
   yDuimQfvJjBFMVrdn9iP6SfMjxKaGk6gVmI=
   -----END CERTIFICATE-----
-  -----BEGIN PRIVATE KEY-----
-  MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMc2zhpXKIp9qvjL
-  aedq9ujY5Ys9mqMSF25zgVMg3PzhrZPZ1gObgbU3Ns8Ede7puildGxsr7gQO/F3L
-  1PgCFf+bNKIQQF+8o0SphIQGHBb6L9xMlknYzq6qqOKhUszqyrFUAZcSA6Y0AR+B
-  d5X+nQb+vzPrQk94kr92jmW7BtBPAgMBAAECgYBFzdpiOHAoNuiVzREK2dwysu2b
-  4LYytcAoH6kNK9LDeYCM8iOfl/nXOcWmvHVmhdeJbup0luwL2ARuCWJSlMiH7N9X
-  7XX1yxRWIUbko8M2MxbSp4cexvVI1A8zNvtwkBldO736FU+//G+GYQ/FKul+1640
-  DyRbaRnnfgDhvAAcAQJBAPznTEUX3LcjiB6443kQoPJlx992hH3fV+zDEDV9KwWS
-  u6LKEGFO6Lp8exZzCtCrwpjwFOYtCOHqNkRiGfL4ys8CQQDJpzkF6KpAHPPoKJ+s
-  kpibmVJh3gRt105uysNTMLzsSYOR94/AEdUx/676zS5D8OQRHjq9pJCBSMqRdgI9
-  fQKBAkAD2enZa4Ga8FmUTjB4mX458r7WclGWMR5/poDKr7tF/HQLCJSzRqZYoKin
-  MN1LTDJMbeuDjdAC0LQ+2leW0Z8VAkABJDwzZ1zHXiKXVtuIi4/nmZeYzDv0LzrX
-  b7hpWSZIpCXlhqQ+rxso3EyuSMkRQ2TXH/evKSZURQg4iJV8qZ+BAkEA48lej9PT
-  cw2o9zohoD3iMeVcM3O0tOnP+gCH//++0yKG5V2m08CFtqR6oQeA9HtQjJ7znrW2
-  wmro1zayUIH/+Q==
-  -----END PRIVATE KEY-----
-
diff --git a/software/erp5/software.cfg b/software/erp5/software.cfg
index 6416b781e83a1a632b05bdcc47c996954263072b..c065c82bcc0b8364a5642879257d1acc9ea525f5 100644
--- a/software/erp5/software.cfg
+++ b/software/erp5/software.cfg
@@ -1,345 +1,3 @@
 [buildout]
 extends =
-  ../../stack/shacache-client.cfg
-  ../../stack/erp5.cfg
-
-versions = versions
-
-# Local development
-develop =
-  ${:parts-directory}/slapos.cookbook-repository
-  ${:parts-directory}/cloudooo-repository
-
-parts +=
-# Local development
-  slapos.cookbook-repository
-  check-recipe
-  slapos.cookbook-python2.6
-  slapos.recipe.template-python2.6
-# Create instance template
-  template
-
-# XXX: Workaround of SlapOS limitation
-# Unzippig of eggs is required, as SlapOS do not yet provide nicely working
-# development / fast switching environment for whole software
-unzip = true
-
-# Local development
-[slapos.cookbook-repository]
-recipe = plone.recipe.command
-stop-on-error = true
-branch = erp5-component
-revision =
-location = ${buildout:parts-directory}/${:_buildout_section_name_}
-command = "${git:location}/bin/git" clone --branch "${:branch}" --quiet http://git.erp5.org/repos/slapos.git "${:location}" && if [ -n "${:revision}" ]; then cd "${:location}" && "${git:location}/bin/git" reset --quiet --hard "${:revision}" ; fi
-update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet && if [ -n "${:revision}" ]; then "${git:location}/bin/git" reset --hard "${:revision}"; else "${git:location}/bin/git" reset --quiet --hard @{upstream} ; fi
-
-[check-recipe]
-recipe = plone.recipe.command
-stop-on-error = true
-update-command = ${:command}
-command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
-
-[slapos.cookbook-python2.6]
-recipe = zc.recipe.egg
-eggs = slapos.cookbook
-scripts =
-python = python2.6
-ugly-depend-on = ${slapos.cookbook-repository:command} ${slapos.cookbook-repository:update-command}
-
-[slapos.recipe.template-python2.6]
-recipe = zc.recipe.egg
-eggs = slapos.recipe.template
-scripts =
-python = python2.6
-
-[template-jinja2-base]
-recipe = slapos.recipe.template:jinja2
-template = ${:_profile_base_location_}/${:filename}.in
-rendered = ${buildout:directory}/${:filename}
-# XXX: extra-context is needed because we cannot append to a key of an extended
-# section.
-extra-context =
-context =
-    key bin_directory buildout:bin-directory
-    key develop_eggs_directory buildout:develop-eggs-directory
-    key eggs_directory buildout:eggs-directory
-    ${:extra-context}
-
-[template-mariadb]
-< = template-jinja2-base
-filename = instance-mariadb.cfg
-md5sum = bcaee4e52a4332451b15fb38ecb12a2b
-extra-context =
-    key coreutils_location coreutils:location
-    key dcron_location dcron:location
-    key gettext_location gettext:location
-    key grep_location grep:location
-    key gzip_location gzip:location
-    key logrotate_location logrotate:location
-    key mariadb_location mariadb:location
-    key perl_location perl:location
-    key perl_siteprefix perl:siteprefix
-    key sed_location sed:location
-    key xtrabackup_location xtrabackup:location
-
-[template-sphinx]
-< = template-jinja2-base
-filename = instance-sphinx.cfg
-md5sum = e3975afd5220f251d6b6e7024a2ca08b
-extra-context =
-    key sphinx_location sphinx:location
-
-[template-zope]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/instance-zope.cfg.in
-md5sum = ea09a89ca79290c33de0b59a19a5490f 
-mode = 640
-
-[template-kumofs]
-< = template-jinja2-base
-filename = instance-kumofs.cfg
-md5sum = 700ee7769c89e0959dc3f052e55ada6e
-extra-context =
-    key dash_location dash:location
-    key dcron_location dcron:location
-    key gzip_location gzip:location
-    key kumo_location kumo:location
-    key logrotate_location logrotate:location
-
-[template-cloudooo]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
-md5sum = d3b3afac9099823ba2853070324a29c8
-mode = 640
-
-# Additional Configuration
-configurator_bt5_list = erp5_core_proxy_field_legacy erp5_full_text_myisam_catalog erp5_base erp5_workflow erp5_configurator erp5_configurator_standard erp5_configurator_maxma_demo erp5_configurator_ung
-
-[template-zope-conf]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/zope.conf.in
-md5sum = 599e004c18fd3461aa846ae75bd112f2
-mode = 640
-
-[template]
-< = template-jinja2-base
-# XXX: "template.cfg" is hardcoded in instanciation recipe
-filename = template.cfg
-template = ${:_profile_base_location_}/instance.cfg.in
-md5sum = f9217ba04cd1f6f7bbfb5f8d758494d1
-extra-context =
-    key apache_location apache:location
-    key aspell_location aspell:location
-    key buildout_bin_directory buildout:bin-directory
-    key coreutils_location coreutils:location
-    key dash_location dash:location
-    key dcron_location dcron:location
-    key dmtx_utils_location dmtx-utils:location
-    key erp5_location erp5:location
-    key file_location file:location
-    key fontconfig_location fontconfig:location
-    key fonts_location fonts:location
-    key freetype_location freetype:location
-    key git_location git:location
-    key graphviz_location graphviz:location
-    key grep_location grep:location
-    key gzip_location gzip:location
-    key haproxy_location haproxy:location
-    key imagemagick_location imagemagick:location
-    key libICE_location libICE:location
-    key libSM_location libSM:location
-    key libX11_location libX11:location
-    key libXau_location libXau:location
-    key libXdmcp_location libXdmcp:location
-    key libXext_location libXext:location
-    key libXrender_location libXrender:location
-    key libpng12_location libpng12:location
-    key libreoffice_bin_location libreoffice-bin:location
-    key librsvg_location librsvg:location
-    key libxcb_location libxcb:location
-    key local_bt5_repository local-bt5-repository:list
-    key logrotate_location logrotate:location
-    key mariadb_location mariadb:location
-    key openssl_location openssl:location
-    key pdftk_location pdftk:location
-    key poppler_location poppler:location
-    key sed_location sed:location
-    key template_balancer template-balancer:target
-    key template_cloudooo template-cloudooo:target
-    key template_erp5_development template-erp5-development:target
-    key template_erp5_production template-erp5-production:target
-    key template_kumofs template-kumofs:rendered
-    key template_logrotate_base template-logrotate-base:rendered
-    key template_mariadb template-mariadb:rendered
-    key template_memcached template-memcached:rendered
-    key template_production_zope template-production-zope:target
-    key template_sphinx template-sphinx:rendered
-    key template_varnish template-varnish:target
-    key template_zeo template-zeo:target
-    key template_zope template-zope:target
-    key template_zope_conf template-zope-conf:target
-    key tesseract_location tesseract:location
-    key varnish_location varnish-3.0:location
-    key w3m_location w3m:location
-    key wget_location wget:location
-    key zlib_location zlib:location
-
-[template-memcached]
-< = template-jinja2-base
-filename = instance-memcached.cfg
-md5sum = 395779dc578e2527cb0d89c5aee39f65
-extra-context =
-    key dash_location dash:location
-    key memcached_location memcached:location
-
-[template-erp5-development]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/instance-erp5-development.cfg.in
-md5sum = df405a60901b5c112093d276c5bb1998
-mode = 640
-
-[template-erp5-production]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/instance-erp5-production.cfg.in
-md5sum = eabeba496634ebcb4898c219d7d50776
-mode = 640
-
-[template-zeo]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/instance-zeo.cfg.in
-md5sum = 98ee5c8802c58cfca792813a71cebf52
-mode = 640
-
-[template-production-zope]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/instance-production-zope.cfg.in
-md5sum = b340d3f6a6eb1cd3dfaf87d00e8d6029
-mode = 640
-
-[template-balancer]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/instance-balancer.cfg.in
-md5sum = d460b32d46f56723d1d2de364610ef9f
-mode = 640
-
-[template-logrotate-base]
-< = template-jinja2-base
-filename = instance-logrotate-base.cfg
-md5sum = 58cb9b7690a56d65502cb37aba9860ef
-extra-context =
-    key dcron_location dcron:location
-    key gzip_location gzip:location
-    key logrotate_location logrotate:location
-
-[template-varnish]
-recipe = slapos.recipe.build:download
-url = ${:_profile_base_location_}/instance-varnish.cfg.in
-md5sum = 17aee2df57b121343b1fd65f4b51ce80
-mode = 640
-
-
-[networkcache]
-# signature certificates of the following uploaders.
-#   Romain Courteaud
-#   Sebastien Robin
-#   Kazuhiko Shiozaki
-#   Cedric de Saint Martin
-#   Yingjie Xu
-#   Gabriel Monnerat
-#   Rafael Monnerat
-signature-certificate-list =
-  -----BEGIN CERTIFICATE-----
-  MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE
-  CBMQRGVmYXVsdCBQcm92aW5jZTEPMA0GA1UEChMGTmV4ZWRpMB4XDTExMDkxNTA5
-  MDAwMloXDTEyMDkxNTA5MDAwMlowOTELMAkGA1UEBhMCRlIxGTAXBgNVBAgTEERl
-  ZmF1bHQgUHJvdmluY2UxDzANBgNVBAoTBk5leGVkaTCBnzANBgkqhkiG9w0BAQEF
-  AAOBjQAwgYkCgYEApYZv6OstoqNzxG1KI6iE5U4Ts2Xx9lgLeUGAMyfJLyMmRLhw
-  boKOyJ9Xke4dncoBAyNPokUR6iWOcnPHtMvNOsBFZ2f7VA28em3+E1JRYdeNUEtX
-  Z0s3HjcouaNAnPfjFTXHYj4um1wOw2cURSPuU5dpzKBbV+/QCb5DLheynisCAwEA
-  ATANBgkqhkiG9w0BAQsFAAOBgQBCZLbTVdrw3RZlVVMFezSHrhBYKAukTwZrNmJX
-  mHqi2tN8tNo6FX+wmxUUAf3e8R2Ymbdbn2bfbPpcKQ2fG7PuKGvhwMG3BlF9paEC
-  q7jdfWO18Zp/BG7tagz0jmmC4y/8akzHsVlruo2+2du2freE8dK746uoMlXlP93g
-  QUUGLQ==
-  -----END CERTIFICATE-----
-  -----BEGIN CERTIFICATE-----
-  MIIB8jCCAVugAwIBAgIJAPu2zchZ2BxoMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNV
-  BAMMB3RzeGRldjMwHhcNMTExMDE0MTIxNjIzWhcNMTIxMDEzMTIxNjIzWjASMRAw
-  DgYDVQQDDAd0c3hkZXYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrPbh+
-  YGmo6mWmhVb1vTqX0BbeU0jCTB8TK3i6ep3tzSw2rkUGSx3niXn9LNTFNcIn3MZN
-  XHqbb4AS2Zxyk/2tr3939qqOrS4YRCtXBwTCuFY6r+a7pZsjiTNddPsEhuj4lEnR
-  L8Ax5mmzoi9nE+hiPSwqjRwWRU1+182rzXmN4QIDAQABo1AwTjAdBgNVHQ4EFgQU
-  /4XXREzqBbBNJvX5gU8tLWxZaeQwHwYDVR0jBBgwFoAU/4XXREzqBbBNJvX5gU8t
-  LWxZaeQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQA07q/rKoE7fAda
-  FED57/SR00OvY9wLlFEF2QJ5OLu+O33YUXDDbGpfUSF9R8l0g9dix1JbWK9nQ6Yd
-  R/KCo6D0sw0ZgeQv1aUXbl/xJ9k4jlTxmWbPeiiPZEqU1W9wN5lkGuLxV4CEGTKU
-  hJA/yXa1wbwIPGvX3tVKdOEWPRXZLg==
-  -----END CERTIFICATE-----
-  -----BEGIN CERTIFICATE-----
-  MIIB7jCCAVegAwIBAgIJAJWA0jQ4o9DGMA0GCSqGSIb3DQEBBQUAMA8xDTALBgNV
-  BAMMBHg2MXMwIBcNMTExMTI0MTAyNDQzWhgPMjExMTEwMzExMDI0NDNaMA8xDTAL
-  BgNVBAMMBHg2MXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANdJNiFsRlkH
-  vq2kHP2zdxEyzPAWZH3CQ3Myb3F8hERXTIFSUqntPXDKXDb7Y/laqjMXdj+vptKk
-  3Q36J+8VnJbSwjGwmEG6tym9qMSGIPPNw1JXY1R29eF3o4aj21o7DHAkhuNc5Tso
-  67fUSKgvyVnyH4G6ShQUAtghPaAwS0KvAgMBAAGjUDBOMB0GA1UdDgQWBBSjxFUE
-  RfnTvABRLAa34Ytkhz5vPzAfBgNVHSMEGDAWgBSjxFUERfnTvABRLAa34Ytkhz5v
-  PzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAFLDS7zNhlrQYSQO5KIj
-  z2RJe3fj4rLPklo3TmP5KLvendG+LErE2cbKPqnhQ2oVoj6u9tWVwo/g03PMrrnL
-  KrDm39slYD/1KoE5kB4l/p6KVOdeJ4I6xcgu9rnkqqHzDwI4v7e8/D3WZbpiFUsY
-  vaZhjNYKWQf79l6zXfOvphzJ
-  -----END CERTIFICATE-----
-  -----BEGIN CERTIFICATE-----
-  MIIB9jCCAV+gAwIBAgIJAO4V/jiMoICoMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
-  BAMMCENPTVAtMjMyMCAXDTEyMDIxNjExMTAyM1oYDzIxMTIwMTIzMTExMDIzWjAT
-  MREwDwYDVQQDDAhDT01QLTIzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
-  wi/3Z8W9pUiegUXIk/AiFDQ0UJ4JFAwjqr+HSRUirlUsHHT+8DzH/hfcTDX1I5BB
-  D1ADk+ydXjMm3OZrQcXjn29OUfM5C+g+oqeMnYQImN0DDQIOcUyr7AJc4xhvuXQ1
-  P2pJ5NOd3tbd0kexETa1LVhR6EgBC25LyRBRae76qosCAwEAAaNQME4wHQYDVR0O
-  BBYEFMDmW9aFy1sKTfCpcRkYnP6zUd1cMB8GA1UdIwQYMBaAFMDmW9aFy1sKTfCp
-  cRkYnP6zUd1cMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAskbFizHr
-  b6d3iIyN+wffxz/V9epbKIZVEGJd/6LrTdLiUfJPec7FaxVCWNyKBlCpINBM7cEV
-  Gn9t8mdVQflNqOlAMkOlUv1ZugCt9rXYQOV7rrEYJBWirn43BOMn9Flp2nibblby
-  If1a2ZoqHRxoNo2yTmm7TSYRORWVS+vvfjY=
-  -----END CERTIFICATE-----
-  -----BEGIN CERTIFICATE-----
-  MIIB9jCCAV+gAwIBAgIJAIlBksrZVkK8MA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
-  BAMMCENPTVAtMzU3MCAXDTEyMDEyNjEwNTUyOFoYDzIxMTIwMTAyMTA1NTI4WjAT
-  MREwDwYDVQQDDAhDT01QLTM1NzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
-  ts+iGUwi44vtIfwXR8DCnLtHV4ydl0YTK2joJflj0/Ws7mz5BYkxIU4fea/6+VF3
-  i11nwBgYgxQyjNztgc9u9O71k1W5tU95yO7U7bFdYd5uxYA9/22fjObaTQoC4Nc9
-  mTu6r/VHyJ1yRsunBZXvnk/XaKp7gGE9vNEyJvPn2bkCAwEAAaNQME4wHQYDVR0O
-  BBYEFKuGIYu8+6aEkTVg62BRYaD11PILMB8GA1UdIwQYMBaAFKuGIYu8+6aEkTVg
-  62BRYaD11PILMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAMoTRpBxK
-  YLEZJbofF7gSrRIcrlUJYXfTfw1QUBOKkGFFDsiJpEg4y5pUk1s5Jq9K3SDzNq/W
-  it1oYjOhuGg3al8OOeKFrU6nvNTF1BAvJCl0tr3POai5yXyN5jlK/zPfypmQYxE+
-  TaqQSGBJPVXYt6lrq/PRD9ciZgKLOwEqK8w=
-  -----END CERTIFICATE-----
-  -----BEGIN CERTIFICATE-----
-  MIIB9jCCAV+gAwIBAgIJAPHoWu90gbsgMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
-  BAMMCXZpZmlibm9kZTAeFw0xMjAzMTkyMzIwNTVaFw0xMzAzMTkyMzIwNTVaMBQx
-  EjAQBgNVBAMMCXZpZmlibm9kZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
-  ozBijpO8PS5RTeKTzA90vi9ezvv4vVjNaguqT4UwP9+O1+i6yq1Y2W5zZxw/Klbn
-  oudyNzie3/wqs9VfPmcyU9ajFzBv/Tobm3obmOqBN0GSYs5fyGw+O9G3//6ZEhf0
-  NinwdKmrRX+d0P5bHewadZWIvlmOupcnVJmkks852BECAwEAAaNQME4wHQYDVR0O
-  BBYEFF9EtgfZZs8L2ZxBJxSiY6eTsTEwMB8GA1UdIwQYMBaAFF9EtgfZZs8L2ZxB
-  JxSiY6eTsTEwMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAc43YTfc6
-  baSemaMAc/jz8LNLhRE5dLfLOcRSoHda8y0lOrfe4lHT6yP5l8uyWAzLW+g6s3DA
-  Yme/bhX0g51BmI6gjKJo5DoPtiXk/Y9lxwD3p7PWi+RhN+AZQ5rpo8UfwnnN059n
-  yDuimQfvJjBFMVrdn9iP6SfMjxKaGk6gVmI=
-  -----END CERTIFICATE-----
-  -----BEGIN PRIVATE KEY-----
-  MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMc2zhpXKIp9qvjL
-  aedq9ujY5Ys9mqMSF25zgVMg3PzhrZPZ1gObgbU3Ns8Ede7puildGxsr7gQO/F3L
-  1PgCFf+bNKIQQF+8o0SphIQGHBb6L9xMlknYzq6qqOKhUszqyrFUAZcSA6Y0AR+B
-  d5X+nQb+vzPrQk94kr92jmW7BtBPAgMBAAECgYBFzdpiOHAoNuiVzREK2dwysu2b
-  4LYytcAoH6kNK9LDeYCM8iOfl/nXOcWmvHVmhdeJbup0luwL2ARuCWJSlMiH7N9X
-  7XX1yxRWIUbko8M2MxbSp4cexvVI1A8zNvtwkBldO736FU+//G+GYQ/FKul+1640
-  DyRbaRnnfgDhvAAcAQJBAPznTEUX3LcjiB6443kQoPJlx992hH3fV+zDEDV9KwWS
-  u6LKEGFO6Lp8exZzCtCrwpjwFOYtCOHqNkRiGfL4ys8CQQDJpzkF6KpAHPPoKJ+s
-  kpibmVJh3gRt105uysNTMLzsSYOR94/AEdUx/676zS5D8OQRHjq9pJCBSMqRdgI9
-  fQKBAkAD2enZa4Ga8FmUTjB4mX458r7WclGWMR5/poDKr7tF/HQLCJSzRqZYoKin
-  MN1LTDJMbeuDjdAC0LQ+2leW0Z8VAkABJDwzZ1zHXiKXVtuIi4/nmZeYzDv0LzrX
-  b7hpWSZIpCXlhqQ+rxso3EyuSMkRQ2TXH/evKSZURQg4iJV8qZ+BAkEA48lej9PT
-  cw2o9zohoD3iMeVcM3O0tOnP+gCH//++0yKG5V2m08CFtqR6oQeA9HtQjJ7znrW2
-  wmro1zayUIH/+Q==
-  -----END PRIVATE KEY-----
+  ../../stack/erp5/buildout.cfg
diff --git a/software/slaprunner/software.cfg b/software/slaprunner/software.cfg
index 6f8f84f8fde5d476422d1c1fb068f74c519ae65a..0a187978c95c6fe896fc45de01499ce908125cf8 100644
--- a/software/slaprunner/software.cfg
+++ b/software/slaprunner/software.cfg
@@ -68,11 +68,11 @@ slapos.cookbook = 0.53
 slapos.libnetworkcache = 0.12
 slapos.recipe.build = 0.9
 slapos.recipe.template = 2.4
-slapos.toolbox = 0.24
+slapos.toolbox = 0.26
 smmap = 0.8.2
 
 # Required by:
-# slapos.core==0.25
+# slapos.core==0.26.1
 Flask = 0.8
 
 # Required by:
@@ -100,7 +100,7 @@ inotifyx = 0.2.0
 
 # Required by:
 # slapos.cookbook==0.53
-# slapos.core==0.25
+# slapos.core==0.26.1
 # xml-marshaller==0.9.7
 lxml = 2.3.4
 
@@ -109,7 +109,7 @@ lxml = 2.3.4
 netaddr = 0.7.7
 
 # Required by:
-# slapos.core==0.25
+# slapos.core==0.26.1
 netifaces = 0.8
 
 # Required by:
@@ -122,7 +122,7 @@ psutil = 0.4.1
 
 # Required by:
 # slapos.cookbook==0.53
-# slapos.core==0.25
+# slapos.core==0.26.1
 # slapos.libnetworkcache==0.12
 # slapos.toolbox==0.24
 # supervisor==3.0a12
@@ -133,10 +133,10 @@ setuptools = 0.6c12dev-r88846
 
 # Required by:
 # slapos.cookbook==0.53
-slapos.core = 0.25
+slapos.core = 0.26.1
 
 # Required by:
-# slapos.core==0.25
+# slapos.core==0.26.1
 supervisor = 3.0a12
 
 # Required by:
@@ -148,5 +148,5 @@ xml-marshaller = 0.9.7
 zc.recipe.egg = 1.3.2
 
 # Required by:
-# slapos.core==0.25
+# slapos.core==0.26.1
 zope.interface = 4.0.1
diff --git a/stack/erp5.cfg b/stack/erp5/buildout.cfg
similarity index 52%
rename from stack/erp5.cfg
rename to stack/erp5/buildout.cfg
index 8a8343be8af2e085a4836258d7375140f0b0ab4c..b1871f7892b5e1e94436f376f407b74b859a12d6 100644
--- a/stack/erp5.cfg
+++ b/stack/erp5/buildout.cfg
@@ -1,8 +1,12 @@
 [buildout]
+# Local development
+develop =
+  ${:parts-directory}/slapos.cookbook-repository
+  ${:parts-directory}/cloudooo-repository
+
 extensions =
   slapos.rebootstrap
   slapos.zcbworkarounds
-  buildout-versions
   mr.developer
 
 find-links =
@@ -12,79 +16,57 @@ find-links =
     http://www.nexedi.org/static/packages/source/
     http://www.owlfish.com/software/wsgiutils/download.html
 
-# Separate from site eggs
-allowed-eggs-from-site-packages =
-include-site-packages = false
-exec-sitecustomize = false
-
-# Use only quite well working sites.
-allow-hosts =
-  *.nexedi.org
-  *.python.org
-  *.sourceforge.net
-  alastairs-place.net
-  dist.repoze.org
-  effbot.org
-  github.com
-  peak.telecommunity.com
-  psutil.googlecode.com
-  www.dabeaz.com
-  www.owlfish.com
-  launchpad.net
-  bitbucket.org
-
 extends =
 # Exact version of Zope
   http://svn.zope.org/repos/main/Zope/tags/2.12.23/versions.cfg
-  ../component/logrotate/buildout.cfg
-  ../component/dcron/buildout.cfg
-  ../component/file/buildout.cfg
-  ../component/fonts/buildout.cfg
-  ../component/ghostscript/buildout.cfg
-  ../component/git/buildout.cfg
-  ../component/graphviz/buildout.cfg
-  ../component/gzip/buildout.cfg
-  ../component/haproxy/buildout.cfg
-  ../component/hookbox/buildout.cfg
-  ../component/librsvg/buildout.cfg
-  ../component/imagemagick/buildout.cfg
-  ../component/kumo/buildout.cfg
-  ../component/libdmtx/buildout.cfg
-  ../component/libpng/buildout.cfg
-  ../component/libreoffice-bin/buildout.cfg
-  ../component/lxml-python/buildout.cfg
-  ../component/percona-toolkit/buildout.cfg
-  ../component/mariadb/buildout.cfg
-  ../component/memcached/buildout.cfg
-  ../component/mysql-python/buildout.cfg
-  ../component/pdftk/buildout.cfg
-  ../component/pil-python/buildout.cfg
-  ../component/pycrypto-python/buildout.cfg
-  ../component/pysvn-python/buildout.cfg
-  ../component/python-2.6/buildout.cfg
-  ../component/python-2.7/buildout.cfg
-  ../component/python-ldap-python/buildout.cfg
-  ../component/rdiff-backup/buildout.cfg
-  ../component/sphinx/buildout.cfg
-  ../component/stunnel/buildout.cfg
-  ../component/subversion/buildout.cfg
-  ../component/tesseract/buildout.cfg
-  ../component/varnish/buildout.cfg
-  ../component/w3-validator/buildout.cfg
-  ../component/w3m/buildout.cfg
-  ../component/xorg/buildout.cfg
-  ../component/poppler/buildout.cfg
-  ../component/xtrabackup/buildout.cfg
-  ../component/zabbix/buildout.cfg
-  ../component/sed/buildout.cfg
-  ../component/coreutils/buildout.cfg
-  ../component/grep/buildout.cfg
-  ../component/dash/buildout.cfg
-  ../component/wget/buildout.cfg
-  ../component/aspell/buildout.cfg
-  ../component/cloudooo/buildout.cfg
-
-versions = versions
+  ../../stack/slapos.cfg
+  ../../component/logrotate/buildout.cfg
+  ../../component/dcron/buildout.cfg
+  ../../component/file/buildout.cfg
+  ../../component/fonts/buildout.cfg
+  ../../component/ghostscript/buildout.cfg
+  ../../component/git/buildout.cfg
+  ../../component/graphviz/buildout.cfg
+  ../../component/gzip/buildout.cfg
+  ../../component/haproxy/buildout.cfg
+  ../../component/hookbox/buildout.cfg
+  ../../component/librsvg/buildout.cfg
+  ../../component/imagemagick/buildout.cfg
+  ../../component/kumo/buildout.cfg
+  ../../component/libdmtx/buildout.cfg
+  ../../component/libpng/buildout.cfg
+  ../../component/libreoffice-bin/buildout.cfg
+  ../../component/lxml-python/buildout.cfg
+  ../../component/percona-toolkit/buildout.cfg
+  ../../component/mariadb/buildout.cfg
+  ../../component/memcached/buildout.cfg
+  ../../component/mysql-python/buildout.cfg
+  ../../component/pdftk/buildout.cfg
+  ../../component/pil-python/buildout.cfg
+  ../../component/pycrypto-python/buildout.cfg
+  ../../component/pysvn-python/buildout.cfg
+  ../../component/python-2.6/buildout.cfg
+  ../../component/python-2.7/buildout.cfg
+  ../../component/python-ldap-python/buildout.cfg
+  ../../component/rdiff-backup/buildout.cfg
+  ../../component/sphinx/buildout.cfg
+  ../../component/stunnel/buildout.cfg
+  ../../component/subversion/buildout.cfg
+  ../../component/tesseract/buildout.cfg
+  ../../component/varnish/buildout.cfg
+  ../../component/w3-validator/buildout.cfg
+  ../../component/w3m/buildout.cfg
+  ../../component/xorg/buildout.cfg
+  ../../component/poppler/buildout.cfg
+  ../../component/xtrabackup/buildout.cfg
+  ../../component/zabbix/buildout.cfg
+  ../../component/sed/buildout.cfg
+  ../../component/coreutils/buildout.cfg
+  ../../component/grep/buildout.cfg
+  ../../component/dash/buildout.cfg
+  ../../component/wget/buildout.cfg
+  ../../component/aspell/buildout.cfg
+  ../../component/cloudooo/buildout.cfg
 
 parts =
   rdiff-backup
@@ -152,6 +134,203 @@ parts =
 # some additional utils
   slapos-toolbox
 
+# Local development
+  slapos.cookbook-repository
+  check-recipe
+  slapos.cookbook-python2.6
+  slapos.recipe.template-python2.6
+# Create instance template
+  template
+
+# Local development
+[slapos.cookbook-repository]
+recipe = plone.recipe.command
+stop-on-error = true
+branch = erp5-component
+revision =
+location = ${buildout:parts-directory}/${:_buildout_section_name_}
+command = "${git:location}/bin/git" clone --branch "${:branch}" --quiet http://git.erp5.org/repos/slapos.git "${:location}" && if [ -n "${:revision}" ]; then cd "${:location}" && "${git:location}/bin/git" reset --quiet --hard "${:revision}" ; fi
+update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet && if [ -n "${:revision}" ]; then "${git:location}/bin/git" reset --hard "${:revision}"; else "${git:location}/bin/git" reset --quiet --hard @{upstream} ; fi
+
+[check-recipe]
+recipe = plone.recipe.command
+stop-on-error = true
+update-command = ${:command}
+command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
+
+[slapos.cookbook-python2.6]
+recipe = zc.recipe.egg
+eggs = slapos.cookbook
+scripts =
+python = python2.6
+ugly-depend-on = ${slapos.cookbook-repository:command} ${slapos.cookbook-repository:update-command}
+
+[slapos.recipe.template-python2.6]
+recipe = zc.recipe.egg
+eggs = slapos.recipe.template
+scripts =
+python = python2.6
+
+[template-jinja2-base]
+recipe = slapos.recipe.template:jinja2
+template = ${:_profile_base_location_}/${:filename}.in
+rendered = ${buildout:directory}/${:filename}
+# XXX: extra-context is needed because we cannot append to a key of an extended
+# section.
+extra-context =
+context =
+    key bin_directory buildout:bin-directory
+    key develop_eggs_directory buildout:develop-eggs-directory
+    key eggs_directory buildout:eggs-directory
+    ${:extra-context}
+
+[template-mariadb]
+< = template-jinja2-base
+filename = instance-mariadb.cfg
+md5sum = 0e8e9bfc8c8a5f1bd71f5c4f346ef68b
+extra-context =
+    key coreutils_location coreutils:location
+    key dcron_location dcron:location
+    key gettext_location gettext:location
+    key grep_location grep:location
+    key gzip_location gzip:location
+    key logrotate_location logrotate:location
+    key mariadb_location mariadb:location
+    key perl_location perl:location
+    key perl_siteprefix perl:siteprefix
+    key sed_location sed:location
+    key xtrabackup_location xtrabackup:location
+
+[template-sphinx]
+< = template-jinja2-base
+filename = instance-sphinx.cfg
+md5sum = e3975afd5220f251d6b6e7024a2ca08b
+extra-context =
+    key sphinx_location sphinx:location
+
+[template-zope]
+recipe = slapos.recipe.build:download
+url = ${:_profile_base_location_}/instance-zope.cfg.in
+md5sum = de2918c8ca604f452a69108f6e31e78d
+mode = 640
+
+[template-kumofs]
+< = template-jinja2-base
+filename = instance-kumofs.cfg
+md5sum = 7e13d689de7163dcab64e8df4711cdd7
+extra-context =
+    key dash_location dash:location
+    key dcron_location dcron:location
+    key gzip_location gzip:location
+    key kumo_location kumo:location
+    key logrotate_location logrotate:location
+
+[template-tidstorage]
+recipe = slapos.recipe.build:download
+url = ${:_profile_base_location_}/instance-tidstorage.cfg.in
+md5sum = 520e39f2612a045b42c0ad914bfdc5a9
+mode = 640
+
+[template-cloudooo]
+recipe = slapos.recipe.build:download
+url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
+md5sum = 53492e520be57f4c6a9eacd107c8d446
+mode = 640
+
+[template-zope-conf]
+recipe = slapos.recipe.build:download
+url = ${:_profile_base_location_}/zope.conf.in
+md5sum = 599e004c18fd3461aa846ae75bd112f2
+mode = 640
+
+[template]
+< = template-jinja2-base
+# XXX: "template.cfg" is hardcoded in instanciation recipe
+filename = template.cfg
+template = ${:_profile_base_location_}/instance.cfg.in
+md5sum = 9704211fdbed6b23854dcc2222d387c4
+extra-context =
+    key apache_location apache:location
+    key aspell_location aspell:location
+    key buildout_bin_directory buildout:bin-directory
+    key coreutils_location coreutils:location
+    key curl_location curl:location
+    key dash_location dash:location
+    key dcron_location dcron:location
+    key dmtx_utils_location dmtx-utils:location
+    key erp5_location erp5:location
+    key file_location file:location
+    key fontconfig_location fontconfig:location
+    key fonts_location fonts:location
+    key freetype_location freetype:location
+    key git_location git:location
+    key graphviz_location graphviz:location
+    key grep_location grep:location
+    key gzip_location gzip:location
+    key haproxy_location haproxy:location
+    key imagemagick_location imagemagick:location
+    key libICE_location libICE:location
+    key libSM_location libSM:location
+    key libX11_location libX11:location
+    key libXau_location libXau:location
+    key libXdmcp_location libXdmcp:location
+    key libXext_location libXext:location
+    key libXrender_location libXrender:location
+    key libpng12_location libpng12:location
+    key libreoffice_bin_location libreoffice-bin:location
+    key librsvg_location librsvg:location
+    key libxcb_location libxcb:location
+    key local_bt5_repository local-bt5-repository:list
+    key logrotate_location logrotate:location
+    key mariadb_location mariadb:location
+    key openssl_location openssl:location
+    key pdftk_location pdftk:location
+    key poppler_location poppler:location
+    key sed_location sed:location
+    key template_cloudooo template-cloudooo:target
+    key template_erp5_development template-erp5-development:target
+    key template_erp5_production template-erp5-production:rendered
+    key template_kumofs template-kumofs:rendered
+    key template_mariadb template-mariadb:rendered
+    key template_memcached template-memcached:rendered
+    key template_sphinx template-sphinx:rendered
+    key template_tidstorage template-tidstorage:target
+    key template_varnish template-varnish:target
+    key template_zope template-zope:target
+    key template_zope_conf template-zope-conf:target
+    key tesseract_location tesseract:location
+    key varnish_location varnish-3.0:location
+    key w3m_location w3m:location
+    key wget_location wget:location
+    key zlib_location zlib:location
+
+[template-memcached]
+< = template-jinja2-base
+filename = instance-memcached.cfg
+md5sum = 44c507e9eec1003beb99f9063b5e09be
+extra-context =
+    key dash_location dash:location
+    key memcached_location memcached:location
+
+[template-erp5-development]
+recipe = slapos.recipe.build:download
+url = ${:_profile_base_location_}/instance-erp5-development.cfg.in
+md5sum = 2a4312202a3160f874c4fa3ee9155a1d
+mode = 640
+
+[template-erp5-production]
+< = template-jinja2-base
+filename = instance-erp5-production.cfg
+md5sum = 3051f3fea39d7409c417dcac26027b56
+extra-context =
+    key local_bt5_repository local-bt5-repository:list
+
+[template-varnish]
+recipe = slapos.recipe.build:download
+url = ${:_profile_base_location_}/instance-varnish.cfg.in
+md5sum = 17aee2df57b121343b1fd65f4b51ce80
+mode = 640
+
 [bt5-repository]
 # Format:
 #   <url or path> [...]
@@ -382,15 +561,12 @@ scripts =
   zodbpack
 
 [versions]
-# Use SlapOS patched zc.buildout
-zc.buildout = 1.6.0-dev-SlapOS-006
-
 # pin Acquisition and Products.DCWorkflow to Nexedi flavour of eggs
 Acquisition = 2.13.7nxd001
 Products.DCWorkflow = 2.2.3nxd002
 
 # Known version with works
-numpy = 1.3.0
+numpy = 1.6.2
 # Patched version which support python 2.6
 PyXML = 0.8.4nxd001
 # modified version that works fine for buildout installation
@@ -457,9 +633,6 @@ fpconst = 0.7.2
 gitdb = 0.5.4
 greenlet = 0.3.4
 hexagonit.recipe.cmmi = 1.5.0
-# Use patched hexagonit.recipe.download from
-# https://github.com/SlapOS/hexagonit.recipe.download
-hexagonit.recipe.download = 1.5.1-dev-slapos-001
 http-parser = 0.7.5
 huBarcode = 0.63
 inotifyx = 0.2.0
diff --git a/software/erp5/instance-cloudoo.cfg.in b/stack/erp5/instance-cloudoo.cfg.in
similarity index 75%
rename from software/erp5/instance-cloudoo.cfg.in
rename to stack/erp5/instance-cloudoo.cfg.in
index a12f1af43629d3fddc59a8055e04b9849c9a963f..692c2e06f9d1fb60312489aa677ebec4fd0ebb8c 100644
--- a/software/erp5/instance-cloudoo.cfg.in
+++ b/stack/erp5/instance-cloudoo.cfg.in
@@ -5,6 +5,8 @@
 parts =
   publish-cloudooo-connection-information
   cloudooo-instance
+  promise
+  promise-openoffice
 eggs-directory = {{ eggs_directory }}
 develop-eggs-directory = {{ develop_eggs_directory }}
 offline = true
@@ -22,8 +24,8 @@ port = 23000
 openoffice-port = 23060
 
 # Paths
-configuration-file = ${rootdirectory:etc}/cloudooo.cfg
-wrapper = ${basedirectory:services}/cloudooo
+configuration-file = ${directory:etc}/cloudooo.cfg
+wrapper = ${directory:service}/cloudooo
 
 # Paths: Data
 data-directory = ${directory:cloudooo-data}
@@ -40,25 +42,32 @@ ooo-uno-path = {{ parameter_dict['libreoffice-bin'] }}/basis-link/program
 
 [fontconfig-instance]
 recipe = slapos.cookbook:fontconfig
-conf-path = ${rootdirectory:etc}/font.conf
+conf-path = ${directory:etc}/font.conf
 font-system-folder = {{ parameter_dict['fonts'] }}
 font-folder = ${directory:font}
 url-list = {{ json.get('font_url_list', []) | join(' ') }}
-service-folder = ${basedirectory:services}
+service-folder = ${directory:service}
 onetimedownload_path = {{ bin_directory }}/onetimedownload
 
-# rest of parts are candidates for some generic stuff
-[basedirectory]
-recipe = slapos.cookbook:mkdirectory
-services = ${rootdirectory:etc}/run
+[promise]
+recipe = slapos.cookbook:check_port_listening
+path = ${directory:promise}/cloudooo
+hostname = ${cloudooo-instance:ip}
+port = ${cloudooo-instance:port}
 
-[directory]
-recipe = slapos.cookbook:mkdirectory
-cloudooo-data = ${rootdirectory:srv}/cloudooo
-font = ${rootdirectory:srv}/font
+[promise-openoffice]
+recipe = slapos.cookbook:check_port_listening
+path = ${directory:promise}/openoffice
+hostname = ${cloudooo-instance:ip}
+port = ${cloudooo-instance:openoffice-port}
 
-[rootdirectory]
+# rest of parts are candidates for some generic stuff
+[directory]
 recipe = slapos.cookbook:mkdirectory
 etc = ${buildout:directory}/etc
 srv = ${buildout:directory}/srv
+service = ${:etc}/run
+promise = ${:etc}/promise
+cloudooo-data = ${:srv}/cloudooo
+font = ${:srv}/font
 {% endif %}
diff --git a/software/erp5/instance-erp5-development.cfg.in b/stack/erp5/instance-erp5-development.cfg.in
similarity index 71%
rename from software/erp5/instance-erp5-development.cfg.in
rename to stack/erp5/instance-erp5-development.cfg.in
index 5554d4a8d138710531c3e2c150370bbc775fa19b..15aa6ebd9541cda1f0e998b690a2dbe012b9a621 100644
--- a/software/erp5/instance-erp5-development.cfg.in
+++ b/stack/erp5/instance-erp5-development.cfg.in
@@ -12,8 +12,10 @@ parts +=
   request-memcached
   request-kumofs
   basedirectory
-  erp5-update
   test-runner
+  erp5-bootstrap
+  erp5-promise
+  promise-erp5-site
 
 eggs-directory = {{ eggs_directory }}
 develop-eggs-directory = {{ develop_eggs_directory }}
@@ -23,6 +25,14 @@ offline = true
 # default site id
 site-id = erp5
 cloudooo-json =
+promise-path = ${rootdirectory:etc}/erp5promise.cfg
+bt5 = erp5_full_text_myisam_catalog
+  erp5_configurator_standard
+  erp5_configurator_maxma_demo
+  erp5_configurator_ung
+  erp5_configurator_run_my_doc
+bt5-repository-url = {{ local_bt5_repository }}
+smtp-url = smtp://localhost:25/
 
 [test-runner]
 recipe = slapos.cookbook:erp5.test
@@ -60,25 +70,21 @@ certs = ${directory:test-ca-dir}/certs
 newcerts = ${directory:test-ca-dir}/newcerts
 crl = ${directory:test-ca-dir}/crl
 
-[erp5-update]
-recipe = slapos.cookbook:erp5.update
+[erp5-bootstrap]
+recipe = slapos.cookbook:erp5.bootstrap
+runner-path = ${basedirectory:services}/erp5-bootstrap
+mysql-url =  ${request-mariadb:connection-url}
+zope-url = http://${zope-instance:user}:${zope-instance:password}@${zope-instance:ip}:${zope-instance:port}/${slap-parameter:site-id}
 
-# Configuration
-url = http://${zope-instance:user}:${zope-instance:password}@${zope-instance:ip}:${zope-instance:port}/
-mysql-url = ${request-mariadb:connection-url}
+[erp5-promise]
+recipe = slapos.cookbook:erp5.promise
+promise-path = ${slap-parameter:promise-path}
 kumofs-url = ${request-kumofs:connection-url}
 memcached-url = ${request-memcached:connection-url}
 cloudooo-url = ${request-cloudooo:connection-url}
-site-id = ${slap-parameter:site-id}
-openssl-binary = {{ openssl_location }}/bin/openssl
-cadir-path = ${erp5-certificate-authority:ca-dir}
-
-# Paths
-update-wrapper = ${basedirectory:services}/erp5-update
-
-# Defaults
-configurator-bt5-list = erp5_full_text_myisam_catalog erp5_configurator_standard erp5_configurator_maxma_demo erp5_configurator_ung erp5_configurator_ung erp5_configurator_run_my_doc
-bt5-repository-list = ${zope-instance:bt5-repository-list}
+smtp-url = ${slap-parameter:smtp-url}
+bt5 = ${slap-parameter:bt5}
+bt5-repository-url = ${slap-parameter:bt5-repository-url}
 
 [request-common]
 recipe = slapos.cookbook:request
@@ -114,7 +120,18 @@ software-type = memcached
 name = KumoFS
 software-type = kumofs
 
+[zope-instance]
+promise-path = ${slap-parameter:promise-path}
+site-id = ${slap-parameter:site-id}
+
 [directory]
 test-ca-dir = ${rootdirectory:srv}/test-ca
 test-instance-path = ${rootdirectory:srv}/test-instance
 unit-test-path = ${:test-instance-path}/unit_test
+
+[promise-erp5-site]
+recipe = slapos.cookbook:check_url_available
+path = ${basedirectory:promises}/erp5site
+url = http://${zope-instance:ip}:${zope-instance:port}/${slap-parameter:site-id}
+dash_path = {{ dash_location }}/bin/dash
+curl_path = {{ curl_location }}/bin/curl
diff --git a/software/erp5/instance-erp5-production.cfg.in b/stack/erp5/instance-erp5-production.cfg.in
similarity index 100%
rename from software/erp5/instance-erp5-production.cfg.in
rename to stack/erp5/instance-erp5-production.cfg.in
diff --git a/software/erp5/instance-kumofs.cfg.in b/stack/erp5/instance-kumofs.cfg.in
similarity index 82%
rename from software/erp5/instance-kumofs.cfg.in
rename to stack/erp5/instance-kumofs.cfg.in
index aeae682c2304d981ca5ca225b569fc75525a1dbe..ba3c3b7424c3e2374a6bc7d236a51def13deecd1 100644
--- a/software/erp5/instance-kumofs.cfg.in
+++ b/stack/erp5/instance-kumofs.cfg.in
@@ -6,6 +6,10 @@ parts =
   logrotate-entry-kumofs
   cron
   cron-entry-logrotate
+  promise-kumofs-server
+  promise-kumofs-server-listen
+  promise-kumofs-gateway
+  promise-kumofs-manager
 
 eggs-directory = {{ eggs_directory }}
 develop-eggs-directory = {{ develop_eggs_directory }}
@@ -70,6 +74,7 @@ state-file = ${rootdirectory:srv}/logrotate.status
 recipe = slapos.cookbook:mkdirectory
 log = ${rootdirectory:var}/log
 services = ${rootdirectory:etc}/run
+promise = ${rootdirectory:etc}/promise
 run = ${rootdirectory:var}/run
 backup = ${rootdirectory:srv}/backup
 
@@ -109,3 +114,26 @@ recipe = slapos.cookbook:cron.d
 name = logrotate
 frequency = 0 0 * * *
 command = ${logrotate:wrapper}
+
+# Deploy zope promises scripts
+[promise-template]
+recipe = slapos.cookbook:check_port_listening
+path = ${basedirectory:promise}/kumofs
+hostname = ${kumofs-instance:ip}
+port = ${kumofs-instance:server-listen-port}
+
+[promise-kumofs-server]
+<= promise-template
+port = ${kumofs-instance:server-port}
+
+[promise-kumofs-server-listen]
+<= promise-template
+port = ${kumofs-instance:server-listen-port}
+
+[promise-kumofs-gateway]
+<= promise-template
+port = ${kumofs-instance:gateway-port}
+
+[promise-kumofs-manager]
+<= promise-template
+port = ${kumofs-instance:manager-port}
diff --git a/software/erp5/instance-mariadb.cfg.in b/stack/erp5/instance-mariadb.cfg.in
similarity index 96%
rename from software/erp5/instance-mariadb.cfg.in
rename to stack/erp5/instance-mariadb.cfg.in
index 7079afa047451aef8e2fe6c3e104673682dcddf9..b4ee5e92a67948305ef9d1c5691c2af1a635b1f8 100644
--- a/software/erp5/instance-mariadb.cfg.in
+++ b/stack/erp5/instance-mariadb.cfg.in
@@ -8,6 +8,7 @@ parts =
   cron-entry-logrotate
   cron-entry-mariadb-backup
   binary-link
+  promise
 
 eggs-directory = {{ eggs_directory }}
 develop-eggs-directory = {{ develop_eggs_directory }}
@@ -156,6 +157,7 @@ bin = ${buildout:directory}/bin
 recipe = slapos.cookbook:mkdirectory
 log = ${rootdirectory:var}/log
 services = ${rootdirectory:etc}/run
+promise = ${rootdirectory:etc}/promise
 run = ${rootdirectory:var}/run
 backup = ${rootdirectory:srv}/backup
 
@@ -171,3 +173,8 @@ mariadb-data = ${rootdirectory:srv}/mariadb
 logrotate-backup = ${basedirectory:backup}/logrotate
 logrotate-entries = ${rootdirectory:etc}/logrotate.d
 
+[promise]
+recipe = slapos.cookbook:check_port_listening
+path = ${basedirectory:promise}/mariadb
+hostname = ${mariadb-instance:ip}
+port = ${mariadb-instance:port}
diff --git a/software/erp5/instance-memcached.cfg.in b/stack/erp5/instance-memcached.cfg.in
similarity index 71%
rename from software/erp5/instance-memcached.cfg.in
rename to stack/erp5/instance-memcached.cfg.in
index 743d2c0c43652c23b7e98dfb207fa1763bc73aaf..93bcb80208a89a329ec080c9fa686d0a48de5022 100644
--- a/software/erp5/instance-memcached.cfg.in
+++ b/stack/erp5/instance-memcached.cfg.in
@@ -9,23 +9,22 @@
 parts =
   memcached-instance
   publish-memcached-connection-information
+  promise
 
 eggs-directory = {{ eggs_directory }}
 develop-eggs-directory = {{ develop_eggs_directory }}
 offline = true
 
-[rootdirectory]
+[directory]
 recipe = slapos.cookbook:mkdirectory
 etc = ${buildout:directory}/etc
 bin = ${buildout:directory}/bin
-
-[basedirectory]
-recipe = slapos.cookbook:mkdirectory
-services = ${rootdirectory:etc}/run
+service = ${:etc}/run
+promise = ${:etc}/promise
 
 [memcached-instance]
 recipe = slapos.cookbook:generic.memcached
-wrapper_path = ${basedirectory:services}/memcached
+wrapper_path = ${directory:service}/memcached
 binary_path = {{ memcached_location }}/bin/memcached
 shell-path = {{ dash_location }}/bin/dash
 ip = ${slap-network-information:local-ipv4}
@@ -34,3 +33,10 @@ port = 11000
 [publish-memcached-connection-information]
 recipe = slapos.cookbook:publishurl
 url = memcached://${memcached-instance:ip}:${memcached-instance:port}/
+
+# Deploy zope promises scripts
+[promise]
+recipe = slapos.cookbook:check_port_listening
+path = ${directory:promise}/memcache
+hostname = ${memcached-instance:ip}
+port = ${memcached-instance:port}
diff --git a/software/erp5/instance-sphinx.cfg.in b/stack/erp5/instance-sphinx.cfg.in
similarity index 100%
rename from software/erp5/instance-sphinx.cfg.in
rename to stack/erp5/instance-sphinx.cfg.in
diff --git a/software/erp5/instance-tidstorage.cfg.in b/stack/erp5/instance-tidstorage.cfg.in
similarity index 100%
rename from software/erp5/instance-tidstorage.cfg.in
rename to stack/erp5/instance-tidstorage.cfg.in
diff --git a/software/erp5/instance-varnish.cfg.in b/stack/erp5/instance-varnish.cfg.in
similarity index 100%
rename from software/erp5/instance-varnish.cfg.in
rename to stack/erp5/instance-varnish.cfg.in
diff --git a/software/erp5/instance-zope.cfg.in b/stack/erp5/instance-zope.cfg.in
similarity index 95%
rename from software/erp5/instance-zope.cfg.in
rename to stack/erp5/instance-zope.cfg.in
index a2849db10386070c7673cff3d2f1e4510e8325d2..c14f213748d87ba3ec7fc25ee50d3d4c992087fc 100644
--- a/software/erp5/instance-zope.cfg.in
+++ b/stack/erp5/instance-zope.cfg.in
@@ -12,6 +12,8 @@ parts =
   cron-entry-logrotate
   binary-link
   bt5-erp5-link
+  promise-zope
+  promise-apache-zope-backend
 
 eggs-directory = {{ eggs_directory }}
 develop-eggs-directory = {{ develop_eggs_directory }}
@@ -243,6 +245,7 @@ tmp = ${buildout:directory}/tmp
 recipe = slapos.cookbook:mkdirectory
 log = ${rootdirectory:var}/log
 services = ${rootdirectory:etc}/run
+promises = ${rootdirectory:etc}/promise/
 run = ${rootdirectory:var}/run
 backup = ${rootdirectory:srv}/backup
 bt5-erp5 = ${rootdirectory:var}/bt5_erp5
@@ -289,3 +292,17 @@ crontabs = ${rootdirectory:etc}/crontabs
 cronstamps = ${rootdirectory:etc}/cronstamps
 logrotate-backup = ${basedirectory:backup}/logrotate
 logrotate-entries = ${rootdirectory:etc}/logrotate.d
+
+# Deploy zope promises scripts
+[promise-zope]
+recipe = slapos.cookbook:check_port_listening
+path = ${basedirectory:promises}/zope
+hostname = ${zope-instance:ip}
+port = ${zope-instance:port}
+
+[promise-apache-zope-backend]
+recipe = slapos.cookbook:check_port_listening
+path = ${basedirectory:promises}/apache-backend
+hostname = ${apache-zope-backend-instance:ip}
+port = ${apache-zope-backend-instance:port}
+
diff --git a/software/erp5/instance.cfg.in b/stack/erp5/instance.cfg.in
similarity index 96%
rename from software/erp5/instance.cfg.in
rename to stack/erp5/instance.cfg.in
index d5a8c645a60fe7fbf3bf1312eae407324ee29790..14f8cba13f72af40c935aec5342eff3ec9b0ea8c 100644
--- a/software/erp5/instance.cfg.in
+++ b/stack/erp5/instance.cfg.in
@@ -127,6 +127,9 @@ extra-context =
 [template-erp5-development-parameters]
 bin-directory = {{ bin_directory }}
 openssl = {{ openssl_location }}
+local_bt5_repository = {{ local_bt5_repository  }}
+dash = {{ dash_location }}
+curl = {{ curl_location }}
 
 [template-erp5-development]
 < = jinja2-template-base
@@ -138,7 +141,10 @@ filename = instance-erp5-development.cfg
 extra-context =
     key bin_directory template-erp5-development-parameters:bin-directory
     key openssl_location template-erp5-development-parameters:openssl
+    key curl_location template-erp5-development-parameters:curl
+    key dash_location template-erp5-development-parameters:dash
     key template_zope dynamic-template-zope:rendered
+    key local_bt5_repository template-erp5-development-parameters:local_bt5_repository
 
 [dynamic-template-erp5-production-parameters]
 local-bt5-repository = {{ local_bt5_repository }}
diff --git a/software/erp5/zope.conf.in b/stack/erp5/zope.conf.in
similarity index 100%
rename from software/erp5/zope.conf.in
rename to stack/erp5/zope.conf.in
diff --git a/stack/lamp/buildout.cfg b/stack/lamp/buildout.cfg
index 4fb56ecf62dd4711b138074e601effb0106e6753..39df34e28f624b2f95ece9fdf8534993dc63b124 100644
--- a/stack/lamp/buildout.cfg
+++ b/stack/lamp/buildout.cfg
@@ -66,7 +66,7 @@ mode = 0644
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-apache-php.cfg
 output = ${buildout:directory}/template-apache-php.cfg
-md5sum = b5fe314c3437151bb048ada9b37f9318
+md5sum = ae9c0f8c70a62f13eb948424c99d71e2
 mode = 0644
 
 [template-apache-backup]
diff --git a/stack/shacache-client.cfg b/stack/shacache-client.cfg
index a73c01c386110949325827e5bfb43b815f0d3d3e..fa5ed74249e6e6a48d73086f799557557f6f7a0c 100644
--- a/stack/shacache-client.cfg
+++ b/stack/shacache-client.cfg
@@ -1,3 +1,4 @@
+# This file is deprecated. Please use stack/slapos.cfg instead.
 [buildout]
 networkcache-section = networkcache
 
diff --git a/stack/slapos.cfg b/stack/slapos.cfg
index fe0971a48442f625ad6193cb91953c07faf948cf..9bb12a6d0aed71907f846b85a710faa3f6649fee 100644
--- a/stack/slapos.cfg
+++ b/stack/slapos.cfg
@@ -2,18 +2,13 @@
 # Software Releases or Stacks can safely extend this stack.
 
 [buildout]
-# It is good idea for developers to add explicitely this part in their profile
-parts += slapos-cookbook
+# Developers need to add explicitely this part in their software profile
+parts = slapos-cookbook
 
 # Generate list of automatically chosen eggs version
 extensions +=
   buildout-versions
 
-# Use shacache and lxml
-extends =
-  shacache-client.cfg
-  ../component/lxml-python/buildout.cfg
-  
 # Separate from site eggs
 allowed-eggs-from-site-packages =
 include-site-packages = false
@@ -30,6 +25,7 @@ allow-hosts +=
   *.python.org
   *.sourceforge.net
   alastairs-place.net
+  bitbucket.org
   dist.repoze.org
   effbot.org
   github.com
@@ -45,18 +41,128 @@ allow-hosts +=
 # development / fast switching environment for whole software
 unzip = true
 
+# Define where is defined what version of eggs we should use
 versions = versions
 
+# Define networkcache with shacache.org
+networkcache-section = networkcache
+
 # Install slapos.cookbook containing all officials recipes
 [slapos-cookbook]
 recipe = zc.recipe.egg
 eggs =
-  ${lxml-python:egg}
   slapos.cookbook
 
 [versions]
 # Use patched hexagonit.recipe.download from
 # https://github.com/SlapOS/hexagonit.recipe.download
-hexagonit.recipe.download = 1.5.1-dev-slapos-001
+hexagonit.recipe.download = 1.5.1-dev-slapos-002
 # Use SlapOS patched zc.buildout
 zc.buildout = 1.6.0-dev-SlapOS-006
+
+[networkcache]
+download-cache-url = http://www.shacache.org/shacache
+download-dir-url = http://www.shacache.org/shadir
+# signature certificates of the following uploaders.
+#   Romain Courteaud
+#   Sebastien Robin
+#   Kazuhiko Shiozaki
+#   Cedric de Saint Martin
+#   Yingjie Xu
+#   Gabriel Monnerat
+#   Rafael Monnerat
+signature-certificate-list =
+  -----BEGIN CERTIFICATE-----
+  MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE
+  CBMQRGVmYXVsdCBQcm92aW5jZTEPMA0GA1UEChMGTmV4ZWRpMB4XDTExMDkxNTA5
+  MDAwMloXDTEyMDkxNTA5MDAwMlowOTELMAkGA1UEBhMCRlIxGTAXBgNVBAgTEERl
+  ZmF1bHQgUHJvdmluY2UxDzANBgNVBAoTBk5leGVkaTCBnzANBgkqhkiG9w0BAQEF
+  AAOBjQAwgYkCgYEApYZv6OstoqNzxG1KI6iE5U4Ts2Xx9lgLeUGAMyfJLyMmRLhw
+  boKOyJ9Xke4dncoBAyNPokUR6iWOcnPHtMvNOsBFZ2f7VA28em3+E1JRYdeNUEtX
+  Z0s3HjcouaNAnPfjFTXHYj4um1wOw2cURSPuU5dpzKBbV+/QCb5DLheynisCAwEA
+  ATANBgkqhkiG9w0BAQsFAAOBgQBCZLbTVdrw3RZlVVMFezSHrhBYKAukTwZrNmJX
+  mHqi2tN8tNo6FX+wmxUUAf3e8R2Ymbdbn2bfbPpcKQ2fG7PuKGvhwMG3BlF9paEC
+  q7jdfWO18Zp/BG7tagz0jmmC4y/8akzHsVlruo2+2du2freE8dK746uoMlXlP93g
+  QUUGLQ==
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB8jCCAVugAwIBAgIJAPu2zchZ2BxoMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNV
+  BAMMB3RzeGRldjMwHhcNMTExMDE0MTIxNjIzWhcNMTIxMDEzMTIxNjIzWjASMRAw
+  DgYDVQQDDAd0c3hkZXYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrPbh+
+  YGmo6mWmhVb1vTqX0BbeU0jCTB8TK3i6ep3tzSw2rkUGSx3niXn9LNTFNcIn3MZN
+  XHqbb4AS2Zxyk/2tr3939qqOrS4YRCtXBwTCuFY6r+a7pZsjiTNddPsEhuj4lEnR
+  L8Ax5mmzoi9nE+hiPSwqjRwWRU1+182rzXmN4QIDAQABo1AwTjAdBgNVHQ4EFgQU
+  /4XXREzqBbBNJvX5gU8tLWxZaeQwHwYDVR0jBBgwFoAU/4XXREzqBbBNJvX5gU8t
+  LWxZaeQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQA07q/rKoE7fAda
+  FED57/SR00OvY9wLlFEF2QJ5OLu+O33YUXDDbGpfUSF9R8l0g9dix1JbWK9nQ6Yd
+  R/KCo6D0sw0ZgeQv1aUXbl/xJ9k4jlTxmWbPeiiPZEqU1W9wN5lkGuLxV4CEGTKU
+  hJA/yXa1wbwIPGvX3tVKdOEWPRXZLg==
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB7jCCAVegAwIBAgIJAJWA0jQ4o9DGMA0GCSqGSIb3DQEBBQUAMA8xDTALBgNV
+  BAMMBHg2MXMwIBcNMTExMTI0MTAyNDQzWhgPMjExMTEwMzExMDI0NDNaMA8xDTAL
+  BgNVBAMMBHg2MXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANdJNiFsRlkH
+  vq2kHP2zdxEyzPAWZH3CQ3Myb3F8hERXTIFSUqntPXDKXDb7Y/laqjMXdj+vptKk
+  3Q36J+8VnJbSwjGwmEG6tym9qMSGIPPNw1JXY1R29eF3o4aj21o7DHAkhuNc5Tso
+  67fUSKgvyVnyH4G6ShQUAtghPaAwS0KvAgMBAAGjUDBOMB0GA1UdDgQWBBSjxFUE
+  RfnTvABRLAa34Ytkhz5vPzAfBgNVHSMEGDAWgBSjxFUERfnTvABRLAa34Ytkhz5v
+  PzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAFLDS7zNhlrQYSQO5KIj
+  z2RJe3fj4rLPklo3TmP5KLvendG+LErE2cbKPqnhQ2oVoj6u9tWVwo/g03PMrrnL
+  KrDm39slYD/1KoE5kB4l/p6KVOdeJ4I6xcgu9rnkqqHzDwI4v7e8/D3WZbpiFUsY
+  vaZhjNYKWQf79l6zXfOvphzJ
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAO4V/jiMoICoMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
+  BAMMCENPTVAtMjMyMCAXDTEyMDIxNjExMTAyM1oYDzIxMTIwMTIzMTExMDIzWjAT
+  MREwDwYDVQQDDAhDT01QLTIzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  wi/3Z8W9pUiegUXIk/AiFDQ0UJ4JFAwjqr+HSRUirlUsHHT+8DzH/hfcTDX1I5BB
+  D1ADk+ydXjMm3OZrQcXjn29OUfM5C+g+oqeMnYQImN0DDQIOcUyr7AJc4xhvuXQ1
+  P2pJ5NOd3tbd0kexETa1LVhR6EgBC25LyRBRae76qosCAwEAAaNQME4wHQYDVR0O
+  BBYEFMDmW9aFy1sKTfCpcRkYnP6zUd1cMB8GA1UdIwQYMBaAFMDmW9aFy1sKTfCp
+  cRkYnP6zUd1cMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAskbFizHr
+  b6d3iIyN+wffxz/V9epbKIZVEGJd/6LrTdLiUfJPec7FaxVCWNyKBlCpINBM7cEV
+  Gn9t8mdVQflNqOlAMkOlUv1ZugCt9rXYQOV7rrEYJBWirn43BOMn9Flp2nibblby
+  If1a2ZoqHRxoNo2yTmm7TSYRORWVS+vvfjY=
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAIlBksrZVkK8MA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
+  BAMMCENPTVAtMzU3MCAXDTEyMDEyNjEwNTUyOFoYDzIxMTIwMTAyMTA1NTI4WjAT
+  MREwDwYDVQQDDAhDT01QLTM1NzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  ts+iGUwi44vtIfwXR8DCnLtHV4ydl0YTK2joJflj0/Ws7mz5BYkxIU4fea/6+VF3
+  i11nwBgYgxQyjNztgc9u9O71k1W5tU95yO7U7bFdYd5uxYA9/22fjObaTQoC4Nc9
+  mTu6r/VHyJ1yRsunBZXvnk/XaKp7gGE9vNEyJvPn2bkCAwEAAaNQME4wHQYDVR0O
+  BBYEFKuGIYu8+6aEkTVg62BRYaD11PILMB8GA1UdIwQYMBaAFKuGIYu8+6aEkTVg
+  62BRYaD11PILMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAMoTRpBxK
+  YLEZJbofF7gSrRIcrlUJYXfTfw1QUBOKkGFFDsiJpEg4y5pUk1s5Jq9K3SDzNq/W
+  it1oYjOhuGg3al8OOeKFrU6nvNTF1BAvJCl0tr3POai5yXyN5jlK/zPfypmQYxE+
+  TaqQSGBJPVXYt6lrq/PRD9ciZgKLOwEqK8w=
+  -----END CERTIFICATE-----
+  -----BEGIN CERTIFICATE-----
+  MIIB9jCCAV+gAwIBAgIJAPHoWu90gbsgMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
+  BAMMCXZpZmlibm9kZTAeFw0xMjAzMTkyMzIwNTVaFw0xMzAzMTkyMzIwNTVaMBQx
+  EjAQBgNVBAMMCXZpZmlibm9kZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+  ozBijpO8PS5RTeKTzA90vi9ezvv4vVjNaguqT4UwP9+O1+i6yq1Y2W5zZxw/Klbn
+  oudyNzie3/wqs9VfPmcyU9ajFzBv/Tobm3obmOqBN0GSYs5fyGw+O9G3//6ZEhf0
+  NinwdKmrRX+d0P5bHewadZWIvlmOupcnVJmkks852BECAwEAAaNQME4wHQYDVR0O
+  BBYEFF9EtgfZZs8L2ZxBJxSiY6eTsTEwMB8GA1UdIwQYMBaAFF9EtgfZZs8L2ZxB
+  JxSiY6eTsTEwMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAc43YTfc6
+  baSemaMAc/jz8LNLhRE5dLfLOcRSoHda8y0lOrfe4lHT6yP5l8uyWAzLW+g6s3DA
+  Yme/bhX0g51BmI6gjKJo5DoPtiXk/Y9lxwD3p7PWi+RhN+AZQ5rpo8UfwnnN059n
+  yDuimQfvJjBFMVrdn9iP6SfMjxKaGk6gVmI=
+  -----END CERTIFICATE-----
+  -----BEGIN PRIVATE KEY-----
+  MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMc2zhpXKIp9qvjL
+  aedq9ujY5Ys9mqMSF25zgVMg3PzhrZPZ1gObgbU3Ns8Ede7puildGxsr7gQO/F3L
+  1PgCFf+bNKIQQF+8o0SphIQGHBb6L9xMlknYzq6qqOKhUszqyrFUAZcSA6Y0AR+B
+  d5X+nQb+vzPrQk94kr92jmW7BtBPAgMBAAECgYBFzdpiOHAoNuiVzREK2dwysu2b
+  4LYytcAoH6kNK9LDeYCM8iOfl/nXOcWmvHVmhdeJbup0luwL2ARuCWJSlMiH7N9X
+  7XX1yxRWIUbko8M2MxbSp4cexvVI1A8zNvtwkBldO736FU+//G+GYQ/FKul+1640
+  DyRbaRnnfgDhvAAcAQJBAPznTEUX3LcjiB6443kQoPJlx992hH3fV+zDEDV9KwWS
+  u6LKEGFO6Lp8exZzCtCrwpjwFOYtCOHqNkRiGfL4ys8CQQDJpzkF6KpAHPPoKJ+s
+  kpibmVJh3gRt105uysNTMLzsSYOR94/AEdUx/676zS5D8OQRHjq9pJCBSMqRdgI9
+  fQKBAkAD2enZa4Ga8FmUTjB4mX458r7WclGWMR5/poDKr7tF/HQLCJSzRqZYoKin
+  MN1LTDJMbeuDjdAC0LQ+2leW0Z8VAkABJDwzZ1zHXiKXVtuIi4/nmZeYzDv0LzrX
+  b7hpWSZIpCXlhqQ+rxso3EyuSMkRQ2TXH/evKSZURQg4iJV8qZ+BAkEA48lej9PT
+  cw2o9zohoD3iMeVcM3O0tOnP+gCH//++0yKG5V2m08CFtqR6oQeA9HtQjJ7znrW2
+  wmro1zayUIH/+Q==
+  -----END PRIVATE KEY-----